天天看點

iptables/netfilter原理及基本操作

簡介

防火牆(Firewall): 工作在主機或網絡邊緣,對進出的封包按事先定義的規則進行檢查,并且由比對到的規則進行處理的一組硬體或軟體,甚至可能是二者的結合

Firewall分類:主機防火牆(工作于主機邊緣);網絡防火牆(工作于網絡邊緣)

iptables:隻是防火牆規則的編寫工具,工作于使用者空間,編寫規則并發送到netfilter

netfilter:能使規則生效的防護架構,工作于核心空間

Netfilter防護原理

在核心中的TCP/IP協定棧上選擇了5個點(又稱為“卡哨”),這5個點是封包一定會流經的位置,并配置5個鈎子函數(hook_function);當有封包經過時,被鈎子函數鈎起,對規則進行檢查,并按照一定的機制(又可稱為“功能”)完成處理

原理圖

說明:上圖顯示了Netfilter的實作原理,以及其主要的4大功能:raw,mangle,nat,filter

資料包經Netfilter的過濾比對流程

圖1

<a href="http://s3.51cto.com/wyfs02/M00/23/6F/wKiom1M2R0qA-hIpAAcIr8FurZg420.jpg" target="_blank"></a>

圖2

<a href="http://s3.51cto.com/wyfs02/M01/23/6F/wKiom1M2R5nQ8yJdAA-8ENuAcv4511.jpg" target="_blank"></a>

說明1:圖1和圖2都是資料包流向的描述,個人感覺圖2更加形象,可以看出資料包經Netfilter的過濾比對流程就是針對Netfilter的4大功能,在5個卡哨間停留比對的過程

說明2:借用的網絡上的2張圖檔,版權歸原作者所有

iptables的規則

表和鍊:

四表(對應4大功能):raw,mangle,nat,filter

五鍊(對應5個卡哨):PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

表和鍊的對應關系:

raw:PREROUTING,OUTPUT

mangle:5鍊中的任意位置

nat:PREROUTING,POSTROUTING,OUTPUT

filter:INPUT,FORWARD,OUTPUT

iptables的規則比對原理

說明:iptables規則的添加需在指定表下的可用鍊上,即注意表和鍊的對應關系

iptables規則的儲存與恢複

1

2

3

4

5

<code>service iptables save</code>

<code># 規則預設會儲存在/etc/sysconfig/iptables檔案中</code>

<code># iptables啟動時,也會讀取此檔案中的内容以設定規則</code>

<code>iptables-save &gt; </code><code>/path/to/some_rulefile</code> <code># 手動導出規則檔案</code>

<code>iptables-restore &lt; </code><code>/path/from/some_rulefile</code> <code># 手動導入規則檔案</code>

遠端修改iptables規則時的小技巧

在遠端伺服器上修改iptables規則時,防範規則生效錯誤(尤其是ssh對應端口)被意外斷開連接配接的方法是:在執行任何iptables規則或腳本時,後跟一個計劃任務,指定5分鐘後清空所有規則,如

<code># 實際需執行的iptables規則在iptables.sh檔案中,若規則執行成功無錯誤,取消計劃任務即可</code>

<code>sh </code><code>/tmp/iptables</code><code>.sh ; at -f clean_up.at now+5min</code>

at計劃任務可參考:

6

7

<code>#!/bin/bash</code>

<code>iptables -t raw -F</code>

<code>iptables -t mangle -F</code>

<code>iptables -t nat -F</code>

<code>iptables -t filter -F</code>

<code>iptables -P INPUT ACCEPT</code>

<code>iptables -P OUTPUT ACCEPT</code>

本文轉自 xxrenzhe11 51CTO部落格,原文連結:http://blog.51cto.com/xxrenzhe/1386435,如需轉載請自行聯系原作者

繼續閱讀