基础语法:
iptables --help iptables v1.4.7 Usage: iptables -[AD] chain rule-specification [options] iptables -I chain [rulenum] rule-specification [options] iptables -R chain rulenum rule-specification [options] iptables -D chain rulenum [options] iptables -[LS] [chain [rulenum]] [options] iptables -[FZ] [chain] [options] iptables -[NX] chain iptables -E old-chain-name new-chain-name iptables -P chain target [options] iptables -h (print this help information)
iptables [-t] [表名(小写)] [-ADI] [链名(大写)] [rule]
查看规则
iptables -t filter -L -n --line-number
添加规则
iptables -t filter -A INPUT -s 192.168.198.1 -j ACCEPT
iptables -t filter -I INPUT 2 -s 10.1.1.2 -j ACCEPT
-I INPUT 2 :表示把这条规则添加到规则号的2的位置后面,即这条规则会在第二条规则后面添加。
-A : 默认会在最后一条规则添加规则
-I : 默认会把规则插入到所有规则前面
删除规则 ,把第input链中的第一条规则删除:
iptables -t filter -D INPUT 1
清除规则
iptables -F 清除所有已定的规则
iptables -X 清除所有自定义的链
iptables -Z 清除chain的计数与流量统计归零
保存规则,把规则保存到/etc/sysconfig/iptables文件
/etc/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables: [ OK ]
iptables结构:
表 - 链 - 规则
1 rule
2 rule
3 rule
...
规则存放在链中。
规则执行顺序:从上到下。当数据包匹配到规则后,会跳过其它规则。
例如:不允许192.168.198.1主机访问iptables主机的22端口,但允许192.168.198.0/24网段其它主机访问22端口。(环境拓扑图,在上一篇博文中)
规则设计:
1、禁止192.168.198.1 访问 iptables 22端口
2、允许192.168.198.0/24 其它主机访问 iptables 22端口
执行过程:
当192.168.198.1的主机访问iptables22端口时,进入到INPUT链中,顺序检测规则,发现第一条规则是禁止这个ip访问22端口,那么匹配成功,此时已把这个数据包丢弃,不会再向下检查允许192.168.198.0/24这个网段允许访问22端口的规则。
其它主机执行有二种情况:
网段192.168.198.0/24:与1规则不匹配,与2规则匹配成功,这时停止再向下匹配。
其它网段:与1、2规则都没有匹配成功,这时数据包会流向按默认规则(丢弃或放行)。
默认规则:
iptables -t 表名(小写) -P(大写P) 链名(大写) ACCEPT或者DROP
有二种设计方式:
1、默认规则:DROP,即写允许规则,不在允许规则中的数据包都会丢弃。
2、默认规则:ACCEPT,即写禁止规则,不在禁止规则中的数据包都会放行。
查看默认规则:
[root@fw ~]# iptables -t filter -L -n --line-number Chain INPUT (policy ACCEPT) num target prot opt source destination Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination
从上面可以看到 filter表中有三条链,分别是:INPUT 、FORWARD 、 OUPUT,他们的默认规则都是ACCEPT。((policy ACCEPT))
数据包流向如下图:
借这个网站的图一用,里面有详细说明:http://www.opsers.org/security/iptables-related-concepts-and-processes-the-packet-figure.html