1 概述bash
以下图所示,iptables共有Filter,Nat,Mangle和RAW共四个table,每一个table还有若干个chain,每一个chain中还包含若干个ruletcp
1.1 Filter table概述3d
如上所示,对于Filter table,封包的处理将分为如下三种状况:blog
1.2 规则匹配方式接口
下面咱们将以Filter Table中的INPUT Chain做为例子进行说明。如上所示,第一个被加进来的规则会存放在INPUT Chain的rule1中,以此类推。当一个封包进入,进行具体的匹配工做时,将从rule1开始依次往下匹配。当有一条rule知足匹配规则时,那么它能够决定封包的命运,不管封包是进入Local Process仍是丢弃,INPUT Chain以后全部的rule都再也不进行匹配。另外咱们能够注意到,在每一个Chain的结尾都有一个Default Policy,它的做用是在全部rule都未匹配成功的时候进行最后的裁决,它的状态不是ACCEPT,就是DROP。ip
1.3 iptables命令格式table
// 将Filter Table中的INPUT Chain列出 iptables -t filter -L INPUT // 将Filter Table中的全部内容删除 iptables -t filter -F // 将规则加入到Filter Table中的INPUT Chain iptables -t filter -A INPUT -p icmp -j ACCEPT // 把FORWARD Chain的Default Policy设置为DROP // 须要注意的是,iptables的-F参数不会影响到Default Policy的状态,若要改变Default Policy的状态 // 必定要用-P来指定 iptables -t filter -P FORWARD DROP // 在INPUT Chain中插入新的规则 iptables -t filter -I INPUT 2 -p tcp -j ACCEPT // 取代INPUT Chain内已存在的规则 iptables -t filter -R INPUT 2 -p tcp -j ACCEPT // 删除INPUT Chain内已存在的规则 iptables -t filter -D INPUT 2