Linux 的內核 Version 2.4 與 2.6 主要是使用 iptables 作為防火牆封包過濾的指令。
這種防火牆機制,本身是 Linux 核心所提供,直接經過核心來處理,效能非常好。
為什麼稱為 ip"tables" 呢? 因為這個防火牆軟體裡面有多個表格 (table) ,
每個表格都定義出自己的預設政策與規則, 且每個表格的用途都不相同。
※Filter(過濾器、與本機有關)
INPUT:主要與想要進入我們 Linux 本機的封包有關;
OUTPUT:主要與我們 Linux 本機所要送出的封包有關;
FORWARD:這個與 Linux 本機比較沒有關係, 他可以『轉遞封包』到後端的
電腦中,與下列 nat table 相關性較高。
※Nat(位址轉換、與後端有關)是 Network Address Translation 的縮寫
主要與 Linux 主機後的區域網路內電腦較有相關。
PREROUTING:在進行路由判斷之前所要進行的規則(DNAT/REDIRECT)
POSTROUTING:在進行路由判斷之後所要進行的規則(SNAT/MASQUERADE)
OUTPUT:與發送出去的封包有關
MASQUERADE 偽裝(內部 IP 偽裝成外部 IP)
※SNAT 主要是應付內部 LAN 連接到 Internet 的使用方式,至於 DNAT 則主要用在
內部主機想要架設可以讓 Internet 存取的伺服器
※Mangle(破壞者、與標記有關)
這個表格主要是與特殊的封包的路由旗標有關, 早期僅有 PREROUTING 及
OUTPUT 鏈,不過從 kernel 2.4.18 之後加入了 INPUT 及 FORWARD 鏈。 由於這
個表格與特殊旗標相關性較高,所以像咱們這種單純的環境當中,較少使用 mangle 這個表格。