基础语法:

iptables --helpiptables v1.4.7Usage: 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-numberChain 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)

数据包流向如下图:

借这个网站的图一用,里面有详细说明: