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