第 7章. 防火牆

資訊安全被一般大眾認定是一種程序而不是一種產品,然而,標準的安全性實作通常利用某種格式的既定機制來 控制存取的權限以及限制網路資源給經過授權、可被辨識且可追查紀錄的使用者。 Red Hat Enterprise Linux 中含有許多種功能強 大的工具,可用來幫助系統管理員與安全性工程師解決網路層級的存取控制問題。

除了例如 CIPE 或 IPsec (於 第6章 已討論)等 VPN 解決方案外,防火牆是網路 安全實作的核心元件之一。 許多的廠商擁有適用於所有市場層級的防火牆解決方案,泛從保護一部 PC 的 家用使用者,到保衛重要企業資訊的數據中心解決方案。 防火牆可以是單機的硬體解決方案,例如由 Cisco, Nokia 與 Sonicwall 提供的防火牆裝置。 例如 Checkpoint, McAfee 與 Symantec 等廠商,也有為家庭與 商用市場開發的專利權軟體防火牆解決方案。

除了硬體與軟體防火牆的不同處之外,防火牆作用的方式也有不同,以區分不同的解決方案。 表格 7-1 詳細列出三種不同類型的防火牆以及它們的作用方式:

方法說明優點缺點
NAT網路位址轉譯 (NAT)將內部網路的 IP 子網路放置在一個或一群外部 IP 位址以內, 偽裝所有的要求都來自單一來源,而非來自許多來源。

� 對區網中的機器來說,可以在它們不知情的情況下進行設定
� 保護一個或許多外部 IP 位址以內的許多機器與服務,可以簡化系統管理的工作
� 可以經由在 NAT 防火牆/閘道器開啟與關閉連接埠來限制往來區域網路的使用者存取

� 一旦使用者連線到防火牆之外的一項服務時,將無法防止惡意的行為發生

封包過濾器封包過濾的防火牆會讀取每一個在區網內外傳輸的數據封包,它可以根據表頭資訊來讀取與處理封包,並且依據 防火牆管理員所實作可設計的規則組來過濾封包。 Linux 核心擁有嵌入式的封包過濾功能性(透過 netfilter 核心子系統)。

� 透過 iptables 前端工具程式來自訂
� 用戶端不需要任何的自訂設定,因為所有的網路行為都於路由器層級過濾了,而不是在應用 程式層級
� 因為封包並未透過代理伺服器進行傳輸,由於直接從用戶端傳送到遠端 主機,因此網路的傳輸效能將會更快

� 無法過濾例如代理防火牆的封包內容
� 在通訊 協定階層處理封包,不過無法在應用程式階層過濾封包
� 複雜的網路架構將會 使得建立封包過濾規則更加困難,特別是含有 『IP 偽裝』 或本地端子網路以及 DMZ 網路時

代理伺服器代理防火牆會過濾從區網用戶端傳送到一部代理機器某種通訊協定或類型的所有封包,它將會代理本地用戶端 向網際網路發出要求。 一部代理機器將扮演惡意的遠端使用者與內部網路用戶端機器間的一個緩衝區。

� 給予系統管理員控制區網之外的應用程式與通訊協定的功能
� 有些代理伺服器可以快取資料,以使得用戶端可以從本地端的快取存取常用的要求資料, 而不必使用網際網路連線來要求它,這將可大大地減少非必要的頻寬用量
極i以 密切地紀錄與監控代理伺服器服務,使得可以更嚴密地控制網路中資源的使用

� 代理伺服器通常是應用程式特定的(HTTP 與 telnet 等等),或受限於通訊 協定(大部分的代理伺服器僅可使用在 TCP 連線的服務)
� 應用程式服務無法在 代理伺服器以內執行,所以您的應用程式伺服器必須使用另一種形式的網路保全方式
代理伺服器可能會導致一個網路的瓶頸,因為所有的要求與傳輸都經過單一來源,而不是引導用戶端到遠端 服務的連線

表格 7-1. 防火牆類型

7.1. Netfilter 與 IPTables

Linux 核心含有稱為 netfilter 的一個功能強大的網路連線子系統,netfilter 子系統 提供狀態或無狀態的封包過濾以及 NAT 與 IP 偽裝服務。 Netfilter 也擁有為進階路由選擇與連線狀態管理 混淆 IP 表頭資訊的能力,您可以透過 IPTables 工具程式來控制 Netfilter。

7.1.1. IPTables 概要

netfilter 的強大功能與靈活度是透過 IPTables 介面實作的,這個命令列工具與它的前輩 IPChains 的語法 類似,然而 IPTables 使用 netfilter 子系統來強化網路的連線、檢驗與處理,而 IPChains 使用複雜的規則 組來過濾來源與目的地的路徑,以及兩者的連接埠。 IPTables 擁有進階紀錄、事先與事後路徑選擇的動作、 網路位址轉譯以及連接埠轉接(port forwarding)等特色,都可在一個命令列的介面來完成。

這個部份提供關於 IPTables 的一個概要,如需關於 IPTables 的更多詳細資訊,請參考 Red Hat Enterprise Linux 參考手冊。