防火牆作為一種網路或系統之間強制實行存取控制的機制,是確保網路安全的重要手段。針對不同的需求和應用環境,可以量身定製出不同的防火牆系統。防火牆大到可由若干路由器和堡壘主機構成,也可小到僅僅是網路作業系統上一個防火牆軟體包所提供的包過濾功能。
在眾多網路防火牆產品中,Linux作業系統上的防火牆軟體特點顯著。首先是Linux作業系統作為一個類Unix網路作業系統,在系統的穩定性、健壯性及價格的低廉性方面都獨具優勢。更為重要的是,Linux不但本身的原始碼完全開放,而且系統包含了建立Internet網路環境所需要的所有服務軟體包,如Apache Web伺服器、DNS伺服器、Mail伺服器、Database伺服器等。同樣,基於Linux的防火牆軟體不但具有強大的功能,而且大部分都是開放軟體。
隨著Internet的飛速發展,安全問題越來越重要。利用Linux構建企業網深受中小企業的青睞,而利用Linux構建企業網的防火牆系統也成為眾多中小企業的理想選擇。
Linux核心從1.1版本開始,就已經具備包過濾功能。在2.0核心中,開始採用Ipfwadm來操作核心的包過濾規則。到2.2版本時,Linux核心採用了Ipchains來控制核心的包過濾規則。發展到2.4.x時,Ipchains被一個全新的包過濾管理工具Iptables所替代。新發布的 2.6版核心也在安全方面進行了改進。因此,無論擁有哪個版本的Linux核心,無論選擇哪個版本的Linux來構建自己的企業網,都可以利用現有的系統構建出一個理想實用的防火牆。
防火牆系統可分為包過濾型、應用級網關(也叫Proxy 伺服器型防火牆)和電路級網關三種基本類型。Linux提供的防火牆軟體包內建於Linux核心中,是一種基於包過濾型的防火牆實現技術。其中心思想是根據網路層IP包頭中的源地址、目的地址及包類型等資訊來控制包的流向。更徹底的過濾則是檢查包中的源連接埠、目的連接埠以及串連狀態等資訊。
本文主要介紹Linux提供的IPFW、Ipchains、Iptables這三種非常實用的防火牆和具體實現。
IPFW防火牆
IPFW是比較老的Linux核心版本提供的防火牆軟體包。該軟體包的全稱是Ipfwadm。Ipfwadm程式包提供了建立規則的能力,根據這些規則來確定允許什麼樣的包進出本網路。簡單說來,防火牆就是一對開關,一個開關允許包通過,另一個開關禁止包通過。現代防火牆系統一般都會附加審計跟蹤、加密認證、地址偽裝和VPN等多種功能。作為一個安全開關,防火牆可定義的安全性原則有兩個:
(1)一切未被允許的都被禁止;