眾所周知,Linux可以作為一個優秀的防火墻軟件使用。無論是結合Web或FTP網站使用,還是作為內部LAN的前端服務器,Linux都能夠為構造滿足用戶特殊需求的防火墻提供必需的工具。
ipchains內建于Linux內核,它是一個在系統之間拒絕、接受、路由數據包的基本防火墻工具。由于有了ipchains,再加上Linux操作系統固有的低成本優勢,對于LAN或者連接Inte.net的企業網防火墻來說,Linux無疑是一種價廉物美的選擇。
防火墻類型
Linux內核定義了三種類型的防火墻通信過濾,把不同的規則應用到各種通信方式就形成了功能極其廣泛的防火墻。三種基本類型如下:
輸入防火墻(Input Firewall):所有傳入的數據在接收之前都經過輸入防火墻規則檢查。
輸出防火墻(Output Firewall):所有傳出的數據在發送之前都經過輸出防火墻規則檢查。
轉發防火墻(Forwarding Firewall):所有轉發的數據在發送之前都經過轉發防火墻規則檢查。
用戶可以自己定義規則(或稱為“鏈”,即chains),其作用相當于對三種基本防火墻規則的擴展。
防火墻策略
所有這三種規則類型以及用戶定義的附加規則都有默認的策略,默認策略控制系統如何處理到達防火墻的特殊數據包。用戶既可以對任何規則使用標準策略,也可以轉入另一個用戶定義的規則進一步處理。這些標準的策略為:
ACCEPT(接受):允許數據包通過防火墻。
REJECT(駁回):丟棄數據包,并發送一個ICMP錯誤消息給該數據包的發送者。這里的ICMP是指Internet Control Message Protocol,即Internet控制消息協議。
DENY(拒絕):直接丟棄數據包,不向發送者提供任何錯誤信息。
MASQ(偽裝):偽裝(Masquerade)數據包,使其看起來就像來自本地系統一樣。當Linux用作路由器時這種策略尤其有用。
REDIRECT(轉發):不管數據包的目的地是哪里,把它轉發到本地系統的指定端口。
RETURN(返回):該策略只對用戶定義規則有效,它是指直接返回調用鏈。如果在某種內核鏈上應用該策略,意味著脫離該鏈并用該鏈的默認策略取代。
構造規則鏈
ipchains構造規則鏈的方法相當簡單,而且非常靈活。對于任何一個鏈,用戶可以指定一系列選項,包括:
協議類型(TCP,UDP,ICMP或者ALL)。
數據包源地址(格式為:address[/mask] [port[:port]])。
數據包目標地址(格式與源地址相同)。
目標端口號(格式為:port[:port]])。
ICMP包類型(ICMP消息的種類有很多,可以將規則指定到某種特定的類型)。
規則所應用的接口(例如eth0)。
還有其他一些選項,通過它們可以指定不同類型TCP包的優先級。例如,賦予FTP包比IRC(Internet Relay Chat)包更高的優先級。又如,為某些鏈提供日志記錄;設置更加詳細的選項,如包類型、大小等等。
鑒于ipchains豐富的功能和選項的繁多,構建防火墻可能很簡單,也可能異常復雜,這與具體的需求有關。簡單的防火墻可以只由4到5個命令組成;復雜的防火墻可以由數百個ipchanins命令組成,鎖定一切,只在用戶需要的時候打開特定的服務和端口。
構建好的防火墻是一項非常復雜的工作,我們強烈建議讀者參閱的Linux Firewall Design Toolkit。它提供了一個簡潔而詳盡的防火墻在線設計界面,即使不熟悉如何使用ipchains也可用它來生成直接可以使用的防火墻腳本。
防火墻腳本實例
下面是一個簡單的防火墻腳本。
ipchains -A input -i eth0 -s 192.168.0.0/16 -j REJECT
ipchains -A input -d 192.168.1.5 25 -j ACCEPT
ipchains -A input -d 192.168.1.5.110 -j ACCEPT
ipchains -A input -d 192.168.0.0/16 -syn -j REJECT
該腳本把一些規則添加到輸入規則鏈。第一個規則的意思是,任何到達外部接口的數據包,如果其源地址裝扮成來自內部網絡(192.168),則丟棄它,這是因為有人試圖進行欺騙。接下來兩個規則的意思是,接收所有目標地址為192.168.1.5(這是一個郵件服務器,在端口25提供SMTP服務,在端口110提供POP3服務)。最后一個規則的意思是,拒絕所有其他設置了SYN位的傳入TCP連接(設置SYN位表示試圖初始化一個連接)。
結束語
無論是為Linux服務器提供防火墻,還是為內部LAN提供防火墻/路由器,ipchains都能夠提供強大的過濾能力。一個配置完善的防火墻所帶來的安全和保護是無價的。Linux具有任何希望構造防火墻的人所需要的靈活性和實力,而且它還獨具成本低廉的優點。