1.1 IPTABLES
1、什么是Netfilter/iptales?
Netfilter是表(iptables)的容器,這樣解釋大家肯定還是不清楚吧
舉個例子,如果把Netfilter看成是某小區的一棟樓。那么表(iptables)就是樓里的其中一套房子。這套房子“表”屬於這棟樓“Netfilter”
2、什么是表(tables)?
表(tables)是鏈的容器,即所有的鏈(chains)都屬於其對應的表(tables)
3、什么是鏈(chains)?
鏈(chains)是規則(policys)的容器。
1.2 IPTABLES
1、容器:包含或者說屬於的關系
2、Netfilter/iptables是表的容器,iptables包含的4個表
(filter,NAT,MANGLE,RAW)
3、iptables的表(tables)又是鏈的容器
鏈chains:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
4、鏈chains是規則容器:
5、規則Policy:一條條過濾的語句。
1.3 iptables工作流程
前面介紹已經提到,iptables是采用數據包過濾機制工作的,所以它會對請求的數據包的包頭數據進行分析,並根據我們預先設定的規則進行匹配來確定是否可以進入主機。
數據包的流向是從左向右的:
小結:
1、防火牆是層層過濾的,實際是按照配置規則的順序從上到下,從前到后進行過濾的。
2、如果匹配上規則,即明確表明是阻止還是通過,數據包就不在向下進行匹配新規則了。
3、如果所有規則中沒有明確表明是阻止還是通過,也就是沒有匹配規則,向下進行匹配,直到匹配默認規則得到明確的阻止還是通過。
4、防火牆默認規則是所有的規則執行完才會執行的。
5、匹配上了拒絕規則也是匹配,這點要多注意。
1.4 iptables表(iptables)和鏈(chains)
描述完iptables術語后,相信大家對iptables的表和鏈有了初步的了解。默認情況下,Iptables根據功能和表的定義划分包含三個表,filter,nat,mangle,其中每個表又包含不同的操作鏈
下面的表格展示了表和鏈的對應關系:
1.5 iptables表和鏈工作的流程圖
下面的這張圖清晰的描繪了netfilter對包的處理流程
簡化版為:
強調:上圖可以用北京地鐵1,2號線來描述:
1號線:主要是NAT功能
企業案例:1)局域網上網共享(路由和網關),NAT POSTROUTING
2) 外部IP和端口映射為內部IP和端口(DMZ功能),NAT PREROUTING
2號線:主要是filter功能,即防火牆功能FILTER INPUT FORWARD
企業案例:
1)主要應用就是服務器防火牆
1.6 更多iptables知識請參看