偽裝與防火牆

目錄

43.1. 使用 iptables 過濾封包
43.2. 偽裝基本原則
43.3. 防火牆基本原則
43.4. SUSEfirewall2
43.5. 如需更多資訊

只要 Linux 用於網路環境,您可以使用允許操作網路封包的核心功能,讓內部和外部網路區域之間保持區隔。Linux netfilter 結構提供建立有效防火牆的方法,將不同的網路分開。利用 iptables (規則集定義的一般表格結構) 的幫助,準確地控制允許傳遞網路介面的封包。這類封包過濾器只要透過 SuSEfirewall2 及對應 YaST 模組的協助即可輕鬆設定。

使用 iptables 過濾封包

元件 netfilter 與 iptables 負責過濾及操作網路封包,以及網路位址轉譯 (NAT,Network Address Translation)。過濾準則和任何與其關聯的動作以鏈結方式儲存,在個別網路封包抵達時必須相互符合。符合的鏈結儲存於表格內。iptables 指令允許您變更這些表格和規則集。

Linux 核心維護三個表格,每個針對封包過濾器的特定功能種類:

filter

此表格保存一組過濾器規則,因為它以更嚴格的方式執行封包過濾 (packet filtering)機制,例如,決定封包是否允許通過 (ACCEPT) 或放棄 (DROP)。

nat

此表格定義對封包之來源和目標位址的任何變更。使用這些功能也可以讓您執行「偽裝」(masquerading),這是 NAT 用來連結私有網路與網際網路的一種特殊方式。

mangle

此表格中的規則可以操作儲存於 IP 標頭中的值 (如服務類型)。

圖形 43.1. iptables:封包的可能路徑

iptables:封包的可能路徑

這些表格包含數個符合封包的預先定義鏈結:

PREROUTING

此鏈結套用到內送封包。

INPUT

此鏈結套用到預定送到系統內部程序的封包。

FORWARD

此鏈結套用到僅透過系統路由的封包。

OUTPUT

此鏈結套用到來自於從系統本身的封包。

POSTROUTING

此鏈結套用到所有外送封包。

圖形 43.1 「iptables:封包的可能路徑」說明網路封包在指定系統上傳送的路徑。為了簡化的緣故,圖中將表格列為鏈結的各部份,但是實際上,這些鏈結是在表格本身內。

所有可能情況中最簡單的一種,系統本身預定的內送封包抵達 eth0 介面。封包先參照 mangle 表的 PREROUTING 鏈結,然後再參照 nat 表的 PREROUTING 鏈結。下一個步驟有關封包的路由,決定封包的實際目標是系統本身的程序。傳遞 manglefilter 表的 INPUT 鏈結後,封包最後會到達其目標,也就是確定符合 filter 表的規則。