目前常用的防火墻有兩種結(jié)構(gòu):即子網(wǎng)過(guò)濾結(jié)構(gòu)的防火墻和主機(jī)過(guò)濾的防火墻。對(duì)于這兩種結(jié)構(gòu)的防火墻我們所提供的基本服務(wù)包括:終端訪(fǎng)問(wèn)、文件傳輸、電子郵件、Usenet新聞、www(萬(wàn)維網(wǎng))瀏覽以及域名服務(wù)DNS。
一、子網(wǎng)過(guò)濾結(jié)構(gòu)的防火墻
子網(wǎng)過(guò)濾結(jié)構(gòu)的防火墻有雙路由器和單路由器等不同形式的結(jié)構(gòu),也可以使用兩個(gè)雙端口的路由器或者一個(gè)三端口的路由器。對(duì)于單路由器子網(wǎng)過(guò)濾結(jié)構(gòu)與雙路由器子網(wǎng)過(guò)濾結(jié)構(gòu)的防火墻工作原理是一樣的,其效果都很好,但單路由器子網(wǎng)過(guò)濾結(jié)構(gòu)在價(jià)格上要便宜一些。我們從使用雙路由器子網(wǎng)過(guò)濾結(jié)構(gòu)為例,因?yàn)樗诟拍钌弦?jiǎn)單一些。
雙路由器結(jié)構(gòu)的子網(wǎng)過(guò)濾結(jié)構(gòu)防火墻結(jié)構(gòu)如圖1所示。這種結(jié)構(gòu)提供了良好的安全性(包括多層次冗余),而且已被大多數(shù)用戶(hù)采用。
1)參數(shù)網(wǎng)絡(luò)——將堡壘主機(jī)與內(nèi)部網(wǎng)絡(luò)隔離開(kāi)來(lái),這樣,即使堡壘主機(jī)出現(xiàn)安全缺口,也不會(huì)馬上影響內(nèi)部網(wǎng)絡(luò);
2)外部路由器——將屏蔽連接到外部世界。如有可能,外部路由器也提供對(duì)堡壘主機(jī)、內(nèi)部路由器和內(nèi)部網(wǎng)絡(luò)的某些保護(hù);
3)內(nèi)部路由器——保護(hù)內(nèi)部網(wǎng)絡(luò),使之不受來(lái)自外部世界、及來(lái)自堡壘主機(jī)(當(dāng)堡壘主機(jī)被侵襲后)的攻擊;
4)堡壘主機(jī)——作為屏蔽與外界的主要接觸點(diǎn)。除了構(gòu)成防火墻本身的機(jī)器外,假定在內(nèi)部網(wǎng)絡(luò)中的計(jì)算機(jī)(內(nèi)部主機(jī))還擔(dān)任如下角色(任意一臺(tái)內(nèi)部計(jì)算機(jī)都可能擔(dān)負(fù)如下的任意一種、甚至全部的任務(wù)):
郵件服務(wù)器;
Usenet新聞服務(wù)器;
DNS域名服務(wù)器;
各種因特網(wǎng)服務(wù)的客戶(hù)。
每一種內(nèi)部服務(wù)都可直接提供(通過(guò)包過(guò)濾)或間接提供(通過(guò)運(yùn)行在堡壘主機(jī)上的代理服務(wù)器)。
提供服務(wù)的條件:
假定系統(tǒng)中的內(nèi)部用戶(hù)是可信的,他們不會(huì)故意去試圖繞過(guò)防火墻,并且也沒(méi)有必要去監(jiān)視和記錄他們的因特網(wǎng)活動(dòng);
在屏蔽的內(nèi)部網(wǎng)和參數(shù)網(wǎng)中,使用的是被授權(quán)賦予的正確的IP地址,并且已通過(guò)恰當(dāng)?shù)穆酚蓙?lái)引導(dǎo)(即屏蔽被授予地址,而且被網(wǎng)絡(luò)服務(wù)供應(yīng)商恰當(dāng)?shù)芈酚珊屯ǜ娴揭蛱鼐W(wǎng)),如果沒(méi)有這樣的授權(quán)地址,那么唯一的選擇是通過(guò)代理服務(wù),因?yàn)椴荒茉试S具有未授權(quán)IP地址的包被發(fā)到因特網(wǎng)上,即使它們已被發(fā)出了,相應(yīng)的回答也沒(méi)辦法返回;
假定參數(shù)網(wǎng)和內(nèi)部網(wǎng)使用了不同的網(wǎng)絡(luò)號(hào)碼,從而可以很容易地檢測(cè)出偽造的包。
二、主機(jī)過(guò)濾結(jié)構(gòu)的防火墻
主機(jī)過(guò)濾結(jié)構(gòu)的防火墻,它沒(méi)有參數(shù)網(wǎng)絡(luò),也沒(méi)有內(nèi)部路由器,通常也沒(méi)有堡壘主機(jī),而是由一臺(tái)路由器和一臺(tái)服務(wù)主機(jī)組成的。由一臺(tái)服務(wù)主機(jī)向內(nèi)部和外部客戶(hù)提供因特網(wǎng)服務(wù),路由器則用來(lái)保護(hù)內(nèi)部網(wǎng)絡(luò)和控制對(duì)它的訪(fǎng)問(wèn)。我們把這種結(jié)構(gòu)稱(chēng)之為服務(wù)主機(jī)而不是堡壘主機(jī),是因?yàn)樗ǔ_€要擔(dān)任其它許多角色。比如,它可能是郵件服務(wù)器、Usenet新聞服務(wù)器和本站點(diǎn)的DNS服務(wù)器,它還可能是文件服務(wù)器、打印服務(wù)器等等,甚至它可能是本站點(diǎn)的唯一一臺(tái)計(jì)算機(jī)。
把主機(jī)過(guò)濾結(jié)構(gòu)的防火墻與子網(wǎng)過(guò)濾結(jié)構(gòu)的防火墻進(jìn)行比較,就不難發(fā)現(xiàn)主機(jī)過(guò)濾結(jié)構(gòu)是一種安全性能低、價(jià)格便宜的一種選擇,主機(jī)過(guò)濾結(jié)構(gòu)通常被費(fèi)用有限的比較小的站點(diǎn)采用。
服務(wù)主機(jī)也是本站點(diǎn)的郵件服務(wù)器、新聞服務(wù)器和域名服務(wù)器,但它不是本站點(diǎn)的唯一機(jī)器;
與子網(wǎng)過(guò)濾結(jié)構(gòu)的防火墻相同,內(nèi)部用戶(hù)是可信賴(lài)的,他們不會(huì)主動(dòng)去試圖繞過(guò)防火墻,也沒(méi)有特別的需要去監(jiān)視或記錄他們的因特網(wǎng)活動(dòng);
本站點(diǎn)中使用的是被授權(quán)賦予的合法IP地址,并且由服務(wù)提供商正確地路由和通告到因特網(wǎng)的其余部分。
下面我們來(lái)討論主機(jī)過(guò)濾結(jié)構(gòu)的防火墻應(yīng)當(dāng)提供那些基本的因特網(wǎng)服務(wù)。
Telnet:通過(guò)包過(guò)濾可以安全、方便地提供Telnet。本例將按此方法做。在前一節(jié)里我們?cè)?jīng)討論過(guò),在較大型的配置中,通過(guò)代理服務(wù)來(lái)提供Telnet,盡管有其優(yōu)點(diǎn),但通常來(lái)講太昂貴了,在主機(jī)過(guò)濾結(jié)構(gòu)中則顯得更加笨拙。類(lèi)似地,在較大配置中難于提供進(jìn)入的Telnet服務(wù),在這里還這樣做簡(jiǎn)直等于自取滅亡,因?yàn)檫@將危及服務(wù)主機(jī),實(shí)際上就是危及了整個(gè)網(wǎng)絡(luò)系統(tǒng)。因此,我們不提供外部用戶(hù)進(jìn)入的Telnet服務(wù)。
FTP:與子網(wǎng)過(guò)濾結(jié)構(gòu)一樣,如果我們的內(nèi)部FTP客戶(hù)程序支持被動(dòng)模式FTP,那么通過(guò)包過(guò)濾就可以安全、方便地提供FTP服務(wù)。如果想要支持禁止使用被動(dòng)模式的FTP客戶(hù)程序,那么就需要在服務(wù)主機(jī)上建立FTP代理服務(wù)器。如果需要,可以支持被動(dòng)模式和普通模式的FTP客戶(hù)程序,但對(duì)一個(gè)較小的站點(diǎn)來(lái)講就沒(méi)有必要。對(duì)較小的站點(diǎn)而言,最好只提供其中的某一種,而不是試圖兩樣都提供。在此例中,我們僅支持被動(dòng)模式的FTP。
注意,為了使用在服務(wù)主機(jī)上的FTP代理服務(wù)器,用戶(hù)的過(guò)濾路由器必須允許這樣的TCP連接,它們?cè)醋酝獠肯到y(tǒng)的23號(hào)端口,目的端口是服務(wù)主機(jī)的大于1023的端口。對(duì)一個(gè)通常的堡壘主機(jī),這不成問(wèn)題,因?yàn)槠渌?wù)不使用這個(gè)端口。然而,對(duì)服務(wù)主機(jī)而言就可能不是這樣,這些端口也有可能保留做其它用途。
在任何配置中,進(jìn)入的用戶(hù)FTP與進(jìn)入的Telnet走的是同樣的路,在Telnet服務(wù)中我們已經(jīng)決定禁止外部用戶(hù)進(jìn)入的Telnet,同樣也要禁止外部用戶(hù)進(jìn)入的FTP。為什么?因?yàn)樵谧泳W(wǎng)過(guò)濾結(jié)構(gòu)中,當(dāng)進(jìn)入的匿名FTP到達(dá)堡壘主機(jī)時(shí),其風(fēng)險(xiǎn)是可以承受的,然而,進(jìn)入的匿名FTP到達(dá)服務(wù)主機(jī)時(shí),這種服務(wù)所造成的危險(xiǎn)是不可估量的,因?yàn)檫@里可能有機(jī)密數(shù)據(jù)和對(duì)內(nèi)部網(wǎng)絡(luò)的安全訪(fǎng)問(wèn)權(quán)限,所以我們也必須禁止它。
SMTP:在主機(jī)過(guò)濾結(jié)構(gòu)中,可能只有一種辦法來(lái)建立SMTP服務(wù)。進(jìn)入的郵件應(yīng)當(dāng)通過(guò)DNSMX記錄被引導(dǎo)到服務(wù)主機(jī)上,外出郵件應(yīng)當(dāng)通過(guò)服務(wù)主機(jī)發(fā)出。事實(shí)上沒(méi)有其它更合適的辦法。正如我們?cè)谏厦嫠懻摰哪菢樱屵M(jìn)入郵件直接到達(dá)所有的內(nèi)部機(jī)器是不適宜的。同樣,一旦已將進(jìn)入郵件通過(guò)一個(gè)單一的點(diǎn)引導(dǎo)進(jìn)來(lái),那么要將外出郵件通過(guò)那里發(fā)出,比把郵件直接發(fā)出實(shí)際上更容易(注意不是指更安全)。
NNTP:與SMTP一樣,在主機(jī)過(guò)濾結(jié)構(gòu)中也許只有一種建立NNTP的辦法,這就是用另外一臺(tái)內(nèi)部機(jī)器作為Usenet新聞服務(wù)器,并且允許NNTP服務(wù)直接通向它。我們將把服務(wù)主機(jī)當(dāng)作新聞服務(wù)器。然而,最好是干脆放棄新聞服務(wù),當(dāng)然,這取決于新聞服務(wù)會(huì)給機(jī)器帶來(lái)多大的負(fù)載,以及服務(wù)主機(jī)的重要程度。
HTTP:正如在前面例子中所說(shuō)的那樣,HTTP可以通過(guò)包過(guò)濾直接提供,或者通過(guò)代理服務(wù)器間接地提供。然而,最有意義的還是通過(guò)帶有緩沖的代理服務(wù)器,比如CERNHTTP服務(wù)器來(lái)間接地提供HTTP服務(wù)。這樣做的理由是:由于緩沖的作用,性能也就提高了。
在此例中,假定將要通過(guò)運(yùn)行在服務(wù)主機(jī)上的一個(gè)CERN代理服務(wù)器來(lái)提供HTTP服務(wù)。由于風(fēng)險(xiǎn)的原因(這種風(fēng)險(xiǎn)由于服務(wù)主機(jī)的敏感位置而進(jìn)一步復(fù)雜化了),只提供本地用戶(hù)向外的服務(wù),對(duì)外部來(lái)的客戶(hù)將關(guān)閉此項(xiàng)服務(wù)。
DNS:與其它大多數(shù)服務(wù)一樣,在主機(jī)過(guò)濾結(jié)構(gòu)中,實(shí)際上只有一個(gè)比較合適的地方可以安放DNS服務(wù)器,即放在服務(wù)主機(jī)上。