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