◆防火墻策略:一套具體的iptables命令或一套iptables命令執(zhí)行的高級設計目標。
◆防火墻規(guī)則或數(shù)據(jù)包過濾規(guī)則:防火墻策略的獨立組件-獨立的iptables命令重復。
建立包過濾規(guī)則的第一步是精確地判斷你希望你的防火墻做什么-也就是用公式表達你的高標準的防火墻策略,例如:如果我為工作站創(chuàng)建一個本地防火墻腳本,我的邏輯策略看起來象下面這樣:
1、允許出站DNS查詢,通過HTTP和HTTPS進行網(wǎng)上沖浪,通過IMAP檢索E-mail,從本地系統(tǒng)到整個外部網(wǎng)絡的出站SSH和出站FTP傳輸。
2、允許從我地下室的其他工作站到本系統(tǒng)的入站SSH連接。
3、阻止任何其它的出入站內容。
跳過這一定義你高標準策略的重要一步就如編寫軟件前沒有先定義需求一樣。
我建議無論你對策略做出什么決定,你都應該將其象限制一樣要是可行的,許多年以前Marcus Ranum就非常簡明地指出了設計防火墻的指導原則:"不能清楚地允許就是禁止",這個道理相當簡單,因為你認為只要不是必須的網(wǎng)絡傳輸,是不允許被濫用的,盡管如此并不意味著某些攻擊者就不能濫用它了。
因此,每個防火墻策略都必須使用一個阻止規(guī)則結束,阻止所有未在前面策略語句特殊指出的通訊。
這不僅在網(wǎng)絡/企業(yè)防火墻策略上是真理,在個人/本地防火墻上也一樣,在個人防火墻上一個常犯的錯誤是允許所有的出站傳輸,假設所有本地的進程都是受信任的,如果你的系統(tǒng)被一個蠕蟲、木馬或病毒感染,這個假設將被擊穿。
在一個如被感染的事件中,你或許不想惡意軟件能使用你的系統(tǒng)發(fā)送垃圾郵件,特別是分布式拒絕服務攻擊等等,因此,優(yōu)先限制的不僅只有入站(來自外部)網(wǎng)絡傳輸,而且還有出站(來自內部/本地)傳輸,即使是在桌面或服務器系統(tǒng)的本地防火墻策略也應該如此。
另外一個重要的防火墻設計原則是無論什么時候都將類似的危險組織在一起,換句話說,系統(tǒng)和網(wǎng)絡有不同的信任等級和不同的暴露危險的等級,它們都應該用網(wǎng)絡防火墻進行互相隔離。