linux iptables 如何将配置文件中的规则导入当前规则

linux iptables 如何将配置文件中的规则导入当前规则,第1张

说的做吧,我尽量解释清楚。

/etc/init.d/iptables start 启动iptables

初始化iptables,删除之前的规则

iptables -F

iptables -X

iptables -Z

iptables -F -t nat

iptables -X -t nat

iptables -Z -t nat

允许SSH进入,要不然等下就连不上去了

iptables -A INPUT -p TCP --dport 22 -j ACCEPT

设置默认出入站的规则

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

载入相应的模块

modprobe ip_tables

modprobe iptable_nat

modprobe ip_nat_ftp

modprobe ip_conntrack

modprobe ip_conntrack_ftp

配置默认的转发规则

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

iptables -t nat -P OUTPUT ACCEPT

允许内网连接

iptables -A INPUT -i 内网网卡名(比如eth1) -j ACCEPT

启用转发功能

echo "1" >/proc/sys/net/ipv4/ip_forward

配置源NAT,允许内网通过主机nat上网,即所谓的网络共享

iptables -t nat -A POSTROUTING -s 内网网卡名 -o 外网网卡名 -j MASQUERADE

把FTP服务器映射到外网

iptables -t nat -A PREROUTING -p tcp -d 58.222.1.3 --dport 21 -j DNAT --to 192.168.0.211:21

结束,别忘了保存

service iptables save

192.168.0.211的网关应该设成这成主机192.168.0.1。这样就行了。

/etc/sysconfig/iptables 是iptables启动时默认载入的配置文件

开发67端口,只需要该文件的:RH-Firewall-1-INPUT - [0:0]链中加入一条指令:

(iptables 不用写入) -A INPUT -dport 67 -j ACCEPT

这里只匹配数据包的目标端口,不做协议匹配,也就说所有通过到达该端口的数据包都会被通过

要做其他如协议的匹配,加入 -p 协议名 即可。

=======================================

另外要提出的是:

直接 vi /etc/sysconfig/iptables 和在终端输入iptables命令的区别:

/etc/sysconfig/iptables 是默认配置文件,每次iptables在启动时都会载入里面的规则,但载入之后,实际上该文件没有什么用处。也就是只有载入的时候有用。

在/etc/sysconfig/iptables-config 里面的IPTABLES_SAVE_ON_STOP=no 这一句的"no"改为"yes"这样每次服务在停止之前会自动将现有的规则保存在 /etc/sysconfig/iptables 这个文件中去.等同于每次在停止iptables时 首先会执行一个命令# iptables-save /etc/sysconfig/iptables

使用iptables命令输入,规则立即生效,但并不是立即写入/etc/sysconfig/iptables文件,只有执行# iptables-save /etc/sysconfig/iptables 之后,现有规则才会被保存到/etc/sysconfig/iptables文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8725909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存