歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

人人都可以使用的Linux防火牆

需要一個個人防火牆、一個企業internet網關還是這兩者之間的什麼東西嗎?iptables可以完全滿足你的需要!

在任何通用的Linux操作系統中,內核包括了一些非常強大且非常靈活的防火牆代碼,這個代碼叫做Netfilter,不過我們大都通過用戶空間命令iptables來引用它,Netfilter/iptables允許你的Linux內核檢查所有通過你系統的網絡通訊,基於一套非常豐富的標准來判定通訊是做什麼的。

用iptables建立Linux防火牆是一個大的話題—已經有完整的書籍介紹它(Suehring, S., and Ziegler, R. Linux Firewalls, 3rd edition. Upper Saddle River, NJ: Novell Press, 2005),事實上,防火牆工程師本身是一個職業(實際上,我就是干這行的),因此,沒有人能在一篇雜志文章中告訴你你需要知道的用iptables建立防火牆的每件事情。

但是我能提供iptables能做什麼事情的一個概述,一些用於Linux防火牆設計的合理原則,建立不同類型防火牆的方便工具的描述,以及更多關於Linux防火牆的詳細信息。

Linux防火牆的類型

防火牆,或更精確地說數據包過濾器,可以用於許多方面,它可以用於本地單獨的服務器和桌面系統提供主機級別的保護,阻止基於網絡的攻擊,用於網絡結構層保護整個網絡,阻止來自其他網絡的攻擊,以及重定向甚至改變網絡數據包。

Linux防火牆可以做成基於Linux的專用硬件設備,如一台有多個網絡接口的PC或一台普通的、單個接口的工作站或服務器。許多商業防火牆設備也是基於Linux/iptables的,與你想象的相反,如果部署在強大的硬件上,基於PC的Linux防火牆也能表現得相當好。

那些組成Linux防火牆的元素,它們為兩個不同的角色服務,防火牆裝置和基於PC的多接口防火牆被我叫做網絡防火牆使用,它們作為專用的網絡設備,邏輯上與IP路由器相當,路由器管理不同網絡之間的通訊。(技術上,防火牆是路由器,它們僅挑剔路過它們的內容),網絡防火牆也常常完成網絡地址轉換(NAT)功能,典型地,它們允許沒有internet ip地址的主機能夠訪問互聯網。

然後,介紹下被我稱為本地防火牆—工作站或服務器的主要功能根本不是防火牆,但是它們需要保護它們自己,據我看來,任何連接到互聯網的計算機,無論是服務器還是工作站,都應該運行一個本地防火牆策略,至於Linux系統,我們還沒有借口不使用Linux內置的Netfilter/iptables功能,而且,這是最容易創建的防火牆腳本類型,本文稍後會進行展示。

防火牆設計原則

在我們開始討論Linux防火牆工具前,我們應該先了解一下一些常見的防火牆設計原則,無論你用iptables保護一個獨立的主機還是整個網絡這些原則都是(或應該是)同等有效的。

首先,這裡有一些術語:

◆數據包過濾器:檢查單個網絡數據包,與一套規則進行對比,並按照規則進行處理。
◆防火牆策略:一套具體的iptables命令或一套iptables命令執行的高級設計目標。
◆防火牆規則或數據包過濾規則:防火牆策略的獨立組件—獨立的iptables命令重復。

建立包過濾規則的第一步是精確地判斷你希望你的防火牆做什麼—也就是用公式表達你的高標准的防火牆策略,例如:如果我為工作站創建一個本地防火牆腳本,我的邏輯策略看起來象下面這樣:

1、允許出站DNS查詢,通過HTTP和HTTPS進行網上沖浪,通過IMAP檢索E-mail,從本地系統到整個外部網絡的出站SSH和出站FTP傳輸。
2、允許從我地下室的其他工作站到本系統的入站SSH連接。
3、阻止任何其它的出入站內容。

跳過這一定義你高標准策略的重要一步就如編寫軟件前沒有先定義需求一樣。

我建議無論你對策略做出什麼決定,你都應該將其象限制一樣要是可行的,許多年以前Marcus Ranum就非常簡明地指出了設計防火牆的指導原則:“不能清楚地允許就是禁止”,這個道理相當簡單,因為你認為只要不是必須的網絡傳輸,是不允許被濫用的,盡管如此並不意味著某些攻擊者就不能濫用它了。

因此,每個防火牆策略都必須使用一個阻止規則結束,阻止所有未在前面策略語句特殊指出的通訊。

這不僅在網絡/企業防火牆策略上是真理,在個人/本地防火牆上也一樣,在個人防火牆上一個常犯的錯誤是允許所有的出站傳輸,假設所有本地的進程都是受信任的,如果你的系統被一個蠕蟲、木馬或病毒感染,這個假設將被擊穿。

在一個如被感染的事件中,你或許不想惡意軟件能使用你的系統發送垃圾郵件,特別是分布式拒絕服務攻擊等等,因此,優先限制的不僅只有入站(來自外部)網絡傳輸,而且還有出站(來自內部/本地)傳輸,即使是在桌面或服務器系統的本地防火牆策略也應該如此。

另外一個重要的防火牆設計原則是無論什麼時候都將類似的危險組織在一起,換句話說,系統和網絡有不同的信任等級和不同的暴露危險的等級,它們都應該用網絡防火牆進行互相隔離。

 

Copyright © Linux教程網 All Rights Reserved