1.什么是防火墻?
防火墻是一個或一組系統(tǒng),它在網(wǎng)絡(luò)之間執(zhí)行訪問控制策略。實現(xiàn)防火墻的實際方式各不相同,但是在原則上,防火墻可以被認(rèn)為是這樣一對機(jī)制:一種機(jī)制是攔阻傳輸流通行,另一種機(jī)制是允許傳輸流通過。一些防火墻偏重攔阻傳輸流的通行,而另一些防火墻則偏重允許傳輸流通過。了解有關(guān)防火墻的最重要的概念可能就是它實現(xiàn)了一種訪問控制策略。如果你不太清楚你需要允許或否決那類訪問,你可以讓其他人或某些產(chǎn)品根據(jù)他(它)們認(rèn)為應(yīng)當(dāng)做的事來配置防火墻,然后他(它)們會為你的機(jī)構(gòu)全面地制定訪問策略。
2.為何需要防火墻?
同其它任何社會一樣,Internet也受到某些無聊之人的困擾,這些人喜愛在網(wǎng)上做這類的事,像在現(xiàn)實中向其他人的墻上噴染涂鴉、將他人的郵箱推倒或者坐在大街上按汽車?yán)纫粯?。一些人試圖通過Internet完成一些真正的工作,而另一些人則擁有敏感或?qū)S袛?shù)據(jù)需要保護(hù)。一般來說,防火墻的目是將那些無聊之人擋在你的網(wǎng)絡(luò)之外,同時使你仍可以完成工作。
許多傳統(tǒng)風(fēng)格的企業(yè)和數(shù)據(jù)中心都制定了計算安全策略和必須遵守的慣例。在一家公司的安全策略規(guī)定數(shù)據(jù)必須被保護(hù)的情況下,防火墻更顯得十分重要,因為它是這家企業(yè)安全策略的具體體現(xiàn)。如果你的公司是一家大企業(yè),連接到Internet上的最難做的工作經(jīng)常不是費用或所需做的工作,而是讓管理層信服上網(wǎng)是安全的。防火墻不僅提供了真正的安全性,而且還起到了為管理層蓋上一條安全的毯子的重要作用。
最后,防火墻可以發(fā)揮你的企業(yè)駐Internet“大使”的作用。許多企業(yè)利用其防火墻系統(tǒng)作為保存有關(guān)企業(yè)產(chǎn)品和服務(wù)的公開信息、下載文件、錯誤修補以及其它一些文件的場所。這些系統(tǒng)當(dāng)中的幾種系統(tǒng)已經(jīng)成為Internet服務(wù)結(jié)構(gòu)(如UUnet.uu.net、whitehouse.gov、gatekeeper.dec.com)的重要組成部分,并且給這些機(jī)構(gòu)的贊助者帶來了良好的影響。
3.防火墻可以防范什么?
一些防火墻只允許電子郵件通過,因而保護(hù)了網(wǎng)絡(luò)免受除對電子郵件服務(wù)攻擊之外的任何攻擊。另一些防火墻提供不太嚴(yán)格的保護(hù)措施,并且攔阻一些眾所周知存在問題的服務(wù)。
一般來說,防火墻在配置上是防止來自“外部”世界未經(jīng)授權(quán)的交互式登錄的。這大大有助于防止破壞者登錄到你網(wǎng)絡(luò)中的計算機(jī)上。一些設(shè)計更為精巧的防火墻可以防止來自外部的傳輸流進(jìn)入內(nèi)部,但又允許內(nèi)部的用戶可以自由地與外部通信。如果你切斷防火墻的話,它可以保護(hù)你免受網(wǎng)絡(luò)上任何類型的攻擊。
防火墻的另一個非常重要的特性是可以提供一個單獨的“攔阻點”,在“攔阻點”上設(shè)置安全和審計檢查。與計算機(jī)系統(tǒng)正受到某些人利用調(diào)制解調(diào)器撥入攻擊的情況不同,防火墻可以發(fā)揮一種有效的“電話監(jiān)聽”(Phone tap)和跟蹤工具的作用。防火墻提供了一種重要的記錄和審計功能;它們經(jīng)??梢韵蚬芾韱T提供一些情況概要,提供有關(guān)通過防火墻的傳流輸?shù)念愋秃蛿?shù)量以及有多少次試圖闖入防火墻的企圖等等信息。
4.防火墻不能防范什么?
防火墻不能防范不經(jīng)過防火墻的攻擊。許多接入到Internet的企業(yè)對通過接入路線造成公司專用數(shù)據(jù)數(shù)據(jù)泄露非常擔(dān)心。不幸得是,對于這些擔(dān)心來說,一盤磁帶可以被很有效地用來泄露數(shù)據(jù)。許多機(jī)構(gòu)的管理層對Internet接入非??謶?,它們對應(yīng)當(dāng)如何保護(hù)通過調(diào)制解調(diào)器撥號訪問沒有連慣的政策。當(dāng)你住在一所木屋中,卻安裝了一扇六英尺厚的鋼門,會被認(rèn)為很愚蠢。然而,有許多機(jī)構(gòu)購買了價格昂貴的防火墻,但卻忽視了通往其網(wǎng)絡(luò)中的其它幾扇后門。要使防火墻發(fā)揮作用,防火墻就必須成為整個機(jī)構(gòu)安全架構(gòu)中不可分割的一部分。防火墻的策略必須現(xiàn)實,能夠反映出整個網(wǎng)絡(luò)安全的水平。例如,一個保存著超級機(jī)密或保密數(shù)據(jù)的站點根本不需要防火墻:首先,它根本不應(yīng)當(dāng)被接入到Internet上,或者保存著真正秘密數(shù)據(jù)的系統(tǒng)應(yīng)當(dāng)與這家企業(yè)的其余網(wǎng)絡(luò)隔離開。
防火墻不能真正保護(hù)你防止的另一種危險是你網(wǎng)絡(luò)內(nèi)部的叛變者或白癡。盡管一個工業(yè)間諜可以通過防火墻傳送信息,但他更有可能利用電話、傳真機(jī)或軟盤來傳送信息。軟盤遠(yuǎn)比防火墻更有可能成為泄露你機(jī)構(gòu)秘密的媒介!防火墻同樣不能保護(hù)你避免愚蠢行為的發(fā)生。通過電話泄露敏感信息的用戶是社會工程(social engineering)的好目標(biāo);如果攻擊者能找到內(nèi)部的一個“對他有幫助”的雇員,通過欺騙他進(jìn)入調(diào)制解調(diào)器池,攻擊者可能會完全繞過防火墻打入你的網(wǎng)絡(luò)。
5.防火墻能否防止病毒的攻擊?
防火墻不能有效地防范像病毒這類東西的入侵。在網(wǎng)絡(luò)上傳輸二進(jìn)制文件的編碼方式太多了,并且有太多的不同的結(jié)構(gòu)和病毒,因此不可能查找所有的病毒。換句話說,防火墻不可能將安全意識(security-consciosness)交給用戶一方??傊阑饓Σ荒芊乐箶?shù)據(jù)驅(qū)動的攻擊:即通過將某種東西郵寄或拷貝到內(nèi)部主機(jī)中,然后它再在內(nèi)部主機(jī)中運行的攻擊。過去曾發(fā)生過對不同版本的郵件寄送程序和幻像腳本(ghostscript)和免費PostScript閱讀器的這類攻擊。
對病毒十分憂慮的機(jī)構(gòu)應(yīng)當(dāng)在整個機(jī)構(gòu)范圍內(nèi)采取病毒控制措施。不要試圖將病毒擋在防火墻之外,而是保證每個脆弱的桌面系統(tǒng)都安裝上病毒掃描軟件,只要一引導(dǎo)計算機(jī)就對病毒進(jìn)行掃描。利用病毒掃描軟件防護(hù)你的網(wǎng)絡(luò)將可以防止通過軟盤、調(diào)制解調(diào)器和Internet傳播的病毒的攻擊。試圖御病毒于防火墻之外只能防止來自Internet的病毒,而絕大多數(shù)病毒是通過軟盤傳染上的。
盡管如此,還是有越來越多的防火墻廠商正提供“病毒探測”防火墻。這類防火墻只對那種交換Windows-on-Intel執(zhí)行程序和惡意宏應(yīng)用文檔的毫無經(jīng)驗的用戶有用。不要指望這種特性能夠?qū)羝鸬饺魏畏婪蹲饔谩?/p>
6.在防火墻設(shè)計中需要做哪些基本設(shè)計決策?
在負(fù)責(zé)防火墻的設(shè)計、制定工程計劃以及實施或監(jiān)督安裝的幸運兒面前,有許多基本設(shè)計問題等著他去解決。
首先,最重要的問題是,它應(yīng)體現(xiàn)你的公司或機(jī)構(gòu)打算如何運行這個系統(tǒng)的策略:安裝后的防火墻是為了明確地拒絕除對于連接到網(wǎng)絡(luò)至關(guān)重的服務(wù)之外的所有服務(wù),或者,安裝就緒的防火墻是為以非威脅方式對“魚貫而入”的訪問("queuing" access)提供一種計量和審計的方法。在這些選擇中存在著某種程度的偏執(zhí)狂;防火墻的最終功能可能將是行政上的結(jié)果,而非工程上的決策。
第二個問題是:你需要何種程度的監(jiān)視、冗余度以及控制水平?通過解決第一個問題,確定了可接受的風(fēng)險水平(例如你的偏執(zhí)到何種程度)后,你可以列出一個必須監(jiān)測什么傳輸、必須允許什么傳輸流通行以及應(yīng)當(dāng)拒絕什么傳輸?shù)那鍐?。換句話說,你開始時先列出你的總體目標(biāo),然后把需求分析與風(fēng)險評估結(jié)合在一起,挑出與風(fēng)險始終對立的需求,加入到計劃完成的工作的清單中。
第三個問題是財務(wù)上的問題。在此,我們只能以模糊的表達(dá)方式論述這個問題,但是,試圖以購買或?qū)嵤┙鉀Q方案的費用多少來量化提出的解決方案十分重要。例如,一個完整的防火墻的高端產(chǎn)品可能價值10萬美元,而低端產(chǎn)品可能是免費的。像在Cisco或類似的路由器上做一些奇妙的配置這類免費選擇不會花你一分錢,只需要工作人員的時間和幾杯咖啡。從頭建立一個高端防火墻可能需要幾個人工月,它可能等于價值3萬美元的工作人員工資和利潤。系統(tǒng)管理開銷也是需要考慮的問題。建立自行開發(fā)的防火墻固然很好,但重要的是使建立的防火墻不需要費用高昂的不斷干預(yù)。換句話說,在評估防火墻時,重要的是不僅要以防火墻目前的費用來評估它,而且要考慮到像支持服務(wù)這類后續(xù)費用。
出于實用目的,我們目前談?wù)摰氖蔷W(wǎng)絡(luò)服務(wù)提供商提供的路由器與你內(nèi)部網(wǎng)絡(luò)之間存在的靜態(tài)傳輸流路由服務(wù),因此基于為一事實,在技術(shù)上,還需要做出幾項決策。傳輸流路由服務(wù)可以通過諸如路由器中的過濾規(guī)則在IP層實現(xiàn),或通過代理網(wǎng)關(guān)和服務(wù)在應(yīng)用層實現(xiàn)。
需要做出的決定是,是否將暴露的簡易機(jī)放置在外部網(wǎng)絡(luò)上為telnet、ftp、news等運行代理服務(wù),或是否設(shè)置像過濾器這樣的屏蔽路由器,允許與一臺或多臺內(nèi)部計算機(jī)的通信。這兩種方式都存在著優(yōu)缺點,代理機(jī)可以提供更高水平的審計和潛在的安全性,但代價是配置費用的增加,以及可能提供的服務(wù)水平的降低(由于代理機(jī)需要針對每種需要的服務(wù)進(jìn)行開發(fā))。由來以久的易使性與安全性之間的平衡問題再次死死地困擾著我們。
7.防火墻的基本類型是什么?
在概念上,有兩種類型的防火墻:
1、網(wǎng)絡(luò)級防火墻
2、應(yīng)用級防火墻
這兩種類型的差異并不像你想像得那樣大,最新的技術(shù)模糊了兩者之間的區(qū)別,使哪個“更好”或“更壞”不再那么明顯。同以往一樣,你需要謹(jǐn)慎選擇滿足你需要的防火墻類型。
網(wǎng)絡(luò)級防火墻一般根據(jù)源、目的地址做出決策,輸入單個的IP包。一臺簡單的路由器是“傳統(tǒng)的”網(wǎng)絡(luò)級防火墻,因為它不能做出復(fù)雜的決策,不能判斷出一個包的實際含意或包的實際出處?,F(xiàn)代網(wǎng)絡(luò)級防火墻已變得越來越復(fù)雜,可以保持流經(jīng)它的接入狀態(tài)、一些數(shù)據(jù)流的內(nèi)容等等有關(guān)信息。許多網(wǎng)絡(luò)級防火墻之間的一個重要差別是防火墻可以使傳輸流直接通過,因此要使用這樣的防火墻通常需要分配有效的IP地址塊。網(wǎng)絡(luò)級防火墻一般速度都很快,對用戶很透明。
網(wǎng)絡(luò)級防火墻的例子:在這個例子中,給出了一種稱為“屏蔽主機(jī)防火墻”(screened host
firewall)的網(wǎng)絡(luò)級防火墻。在屏蔽主機(jī)防火墻中,對單個主機(jī)的訪問或從單個主機(jī)進(jìn)行訪問是通過運行在網(wǎng)絡(luò)級上的路由器來控制的。這臺單個主機(jī)是一臺橋頭堡主機(jī)(bastion host),是一個可以(希望如此)抵御攻擊的高度設(shè)防和保險的要塞。
網(wǎng)絡(luò)級防火墻的例子:在這個例子中,給出了一種所謂“屏蔽子網(wǎng)防火墻”的網(wǎng)絡(luò)級防火墻。在屏蔽子網(wǎng)防火墻中,對網(wǎng)絡(luò)的訪問或從這個網(wǎng)絡(luò)中進(jìn)行訪問是通過運行在網(wǎng)絡(luò)級上的路由器來控制的。除了它實際上是由屏蔽主機(jī)組成的網(wǎng)絡(luò)外,它與被屏蔽主機(jī)的作用相似。
應(yīng)用級防火墻一般是運行代理服務(wù)器的主機(jī),它不允許傳輸流在網(wǎng)絡(luò)之間直接傳輸,并對通過它的傳輸流進(jìn)行記錄和審計。由于代理應(yīng)用程序是運行在防火墻上的軟件部件,因此它處于實施記錄和訪問控制的理想位置。應(yīng)用級防火墻可以被用作網(wǎng)絡(luò)地址翻譯器,因為傳輸流通過有效地屏蔽掉起始接入原址的應(yīng)用程序后,從一“面”進(jìn)來,從另一面出去。在某些情況下,設(shè)置了應(yīng)用級防火墻后,可能會對性能造成影響,會使防火墻不太透明。早期的應(yīng)用級防火墻,如那些利用TIS防火墻工具包構(gòu)造的防火墻,對于最終用戶不很透明,并需要對用戶進(jìn)行培訓(xùn)。應(yīng)用級防火墻一般會提供更詳盡的審計報告,比網(wǎng)絡(luò)級防火墻實施更保守的安全模型。
應(yīng)用級防火墻舉例:這此例中,給出了一個所謂“雙向本地網(wǎng)關(guān)”(dual homed gateway)的應(yīng)用級防火墻。雙向本地網(wǎng)關(guān)是一種運行代理軟件的高度安全主機(jī)。它有兩個網(wǎng)絡(luò)接口,每個網(wǎng)絡(luò)上有一個接口,攔阻通過它的所有傳輸流。
防火墻未來的位置應(yīng)當(dāng)處于網(wǎng)絡(luò)級防火墻與應(yīng)用級防火墻之間的某一位置。網(wǎng)絡(luò)級防火墻可能對流經(jīng)它們的信息越來越“了解”(aware),而應(yīng)用級防火墻可能將變得更加“低級”和透明。最終的結(jié)果將是能夠?qū)νㄟ^的數(shù)據(jù)流記錄和審計的快速包屏蔽系統(tǒng)。越來越多的防火墻(網(wǎng)絡(luò)和應(yīng)用層)中都包含了加密機(jī)制,使它們可以在Internet上保護(hù)流經(jīng)它們之間的傳輸流。具有端到端加密功能的防火墻可以被使用多點Internet接入的機(jī)構(gòu)所用,這些機(jī)構(gòu)可以將Internet作為“專用骨干網(wǎng)”,無需擔(dān)心自己的數(shù)據(jù)或口令被偷看。
8.什么是“單故障點”?應(yīng)當(dāng)如何避免出現(xiàn)這種故障?
安全性取決于一種機(jī)制的結(jié)構(gòu)具有單故障點。運行橋頭堡主機(jī)的軟件存在錯誤。應(yīng)用程序存在錯誤。控制路由器的軟件存在錯誤。使用所有這些組件建造設(shè)計安全的網(wǎng)絡(luò),并以冗余的方式使用它們才有意義。
如果你的防火墻結(jié)構(gòu)是屏蔽子網(wǎng),那么,你有兩臺包過濾路由器和一臺橋頭堡主機(jī)。(參見本節(jié)的問題2)Internet訪問路由器不允許傳輸流從Internet進(jìn)入你的專用網(wǎng)絡(luò)。然而,如果你不在橋頭堡主機(jī)以及(或)阻塞(choke)路由器上與其它任何機(jī)制一道執(zhí)行這個規(guī)則(rule)的話,那么只要這種結(jié)構(gòu)中的一個組件出現(xiàn)故障或遭到破壞就會使攻擊者進(jìn)入防火墻內(nèi)部。另一方面,如果你在橋頭堡主機(jī)上具有冗余規(guī)則,并在阻塞路由器上也有冗余規(guī)則,那么攻擊者必須對付三種機(jī)制。
此外,如果這臺橋頭堡主機(jī)或阻塞路由器使用規(guī)則來攔阻外部訪問進(jìn)入內(nèi)部網(wǎng)絡(luò)的話,你可能需要讓它觸發(fā)某種報警,因為你知道有人進(jìn)入了你的訪問路由器。
9.如何才能將所有的惡意的傳輸攔在外面?
對于重點在于安全而非連接性的防火墻來說,你應(yīng)當(dāng)考慮缺省攔阻所有的傳輸,并且只特別地根據(jù)具體情況允許你所需要的服務(wù)通過。
如果你將除特定的服務(wù)集之外的所有東西都擋在外面,那么你已經(jīng)使你的任務(wù)變得很容易了。你無需再為周圍的每樣產(chǎn)品和每件服務(wù)的各種安全問題擔(dān)心了,你只需關(guān)注特定產(chǎn)品和服務(wù)存在的各種安全問題。:-)
在啟動一項服務(wù)之前,你應(yīng)當(dāng)考慮下列問題:
*這個產(chǎn)品的協(xié)議是人們熟知的公開協(xié)議嗎?
*為這個協(xié)議提供服務(wù)的應(yīng)用程序的應(yīng)用情況是否可供公開檢查?
*這項服務(wù)和產(chǎn)品是否為人們熟知?
*使用這項服務(wù)會怎樣改變防火墻的結(jié)構(gòu)?攻擊者會從不同的角度看待這些嗎?攻擊者能利用這點進(jìn)入我的內(nèi)部網(wǎng)絡(luò),或者會改變我的DMZ中主機(jī)上的東西嗎?
在考慮上述問題時,請記住下列忠告:
*“不為人所知的安全性根本不安全。許多未公開的協(xié)議都被那些壞家伙研究并破解過。
?。獰o論營銷人員說些什么,不是所有的協(xié)議或服務(wù)在設(shè)計時考慮了安全性。事實上,真正在設(shè)計時考慮了安全性的協(xié)議或服務(wù)數(shù)量很少。
*甚至在考慮過安全性的情況下,并不是所有的機(jī)構(gòu)都擁有合格的負(fù)責(zé)安全的人員。在那些沒有稱職負(fù)責(zé)安全的人員的機(jī)構(gòu)中,不是所有的機(jī)構(gòu)都愿意請稱職的顧問參與工程項目。這樣做的結(jié)果是那些其它方面還稱職的、好心腸的開發(fā)者會設(shè)計出不安全的系統(tǒng)。
*廠商越不愿意告訴你他們系統(tǒng)的真正工作原理,它就越有可能可存安全性(或其它)問題。只有有什么東西需要隱瞞的廠商才有理由隱瞞他們的設(shè)計和實施情況。
10.有哪些常見的攻擊?應(yīng)當(dāng)如何保護(hù)系統(tǒng)不受它們的攻擊呢?
每個站點與其它站點遭受攻擊的類型都略有不同。但仍有一些共同之處。
SMTP會話攻擊(SMTP Session Hijacking)
在這種攻擊中,垃圾郵件制造者將一條消息復(fù)制成千上萬份,并按一個巨大的電子郵件地址清單發(fā)送這條消息。由于這些地址清單常常很糟糕,并且為了加快垃圾制造者的操作速度,許多垃圾制造者采取了將他們所有的郵件都發(fā)送到一臺SMTP服務(wù)器上作法,由這臺服務(wù)器負(fù)責(zé)實際發(fā)送這些郵件。
當(dāng)然,彈回(bounces)消息、對垃圾制造者的抱怨、咒罵的郵件和壞的PR都涌入了曾被用作中繼站的站點。這將著實要讓這個站點破費一下了,其中大部分花費被用到支付以后清除這些信息的人員費用上。
《防止郵件濫用系統(tǒng)傳輸安全性建議》(The Mail Abuse Prevention System Transport Security Initiative)中對這個問題作了詳盡的敘述,以及如何對每個寄信人進(jìn)行配置防止這種攻擊。
利用應(yīng)用程序中的錯誤(bugs)
不同版本的web服務(wù)器、郵件服務(wù)器和其它Internet服務(wù)軟件都存在各種錯誤,因此,遠(yuǎn)程(Internet)用戶可以利用錯誤做從造成對計算機(jī)的控制到引起應(yīng)用程序癱瘓等各種后果。
只運行必要的服務(wù)、用最新的補丁程序修補程序以及使用應(yīng)用過一段時間的產(chǎn)品可以減少遭遇這種風(fēng)險的可能。
利用操作系統(tǒng)中的錯誤
這類攻擊一般也是由遠(yuǎn)程用戶發(fā)起的。相對于IP網(wǎng)絡(luò)較新的操作系統(tǒng)更易出現(xiàn)問題,而很成熟的操作系統(tǒng)有充分的時間來發(fā)現(xiàn)和清除存在的錯誤。攻擊者經(jīng)??梢允贡还舻脑O(shè)備不斷重新引導(dǎo)、癱瘓、失去與網(wǎng)絡(luò)通信的能力,或替換計算機(jī)上的文件。
因此,盡可能少地運行操作系統(tǒng)服務(wù)可以有助于防范對系統(tǒng)的攻擊。此外,在操作系統(tǒng)前端安裝一個包過濾器也可以大大減少受這類攻擊的次數(shù)。
當(dāng)然,選擇一個穩(wěn)定的操作系統(tǒng)也同樣會有幫助。在選擇操作系統(tǒng)時,不要輕信“好貨不便宜”這類說法。自由軟件操作系統(tǒng)常常比商用操作系統(tǒng)更強(qiáng)健。
11.我必須滿足用戶要求的各種要求嗎?
對這個問題的答案完全有可能是“不”。對于需要什么,不需要什么,每個站點都有自己的策略,但是,重要的是記住作為一家機(jī)構(gòu)的看門人的主要工作之一是教育。用戶需要流視頻、實時聊天,并要求能夠向請求在內(nèi)部網(wǎng)絡(luò)上的活數(shù)據(jù)庫進(jìn)行交互查詢的外部客戶提供服務(wù)。
這意味著完成任何這類事情都會給機(jī)構(gòu)造成風(fēng)險,而造成的風(fēng)險往往比想像中沿著這條路走下去的“價值”的回報更高。多數(shù)用戶不愿使自己的機(jī)構(gòu)遭受風(fēng)險。他們只看一看商標(biāo),閱讀一下廣告,他們也愿意做上述那些事。重要的是了解用戶真正想干些什么,幫助他們懂得他們可以以更安全的方式實現(xiàn)他們的真正目的。
你不會總受到歡迎,你可以甚至?xí)l(fā)現(xiàn)自己收到了難以置信愚蠢的命令,讓你做一些諸如“打開所有的口子”這樣的事,但不要為此擔(dān)心。在這種時刻,明智的做法是將你的交換數(shù)據(jù)全都保存起來,這樣當(dāng)一個十二歲的小孩闖入網(wǎng)絡(luò)時,你至少能夠使你自己遠(yuǎn)離混亂局面。
12.如何才能通過自己的防火墻運行Web/HTTP?
有三種辦法做到這點:
1、如果你使用屏蔽路由器的話,允許“建立起的”連接經(jīng)過路由器接入到防火墻外。
2、使用支持SOCKS的Web客戶機(jī),并在你的橋頭堡主機(jī)上運行SOCKS。
3、運行橋頭堡主機(jī)上的某種具有代理功能的Web服務(wù)器。一些可供選擇的代理服務(wù)器包括Squid、Apache、Netscape Proxy和TIS防火墻工具包中的http-gw。這些選件中的多數(shù)還可以代理其它協(xié)議(如gopher和ftp),并可緩存捕獲的對象。后者一般會提高用戶的性能,使你能更有效地使用到Internet的連接。基本上所有的Web客戶機(jī)(Mozilla、Internet Explorer、Lynx等等)都具有內(nèi)置的對代理服務(wù)器的支持。
13.在使用防火墻時,怎樣使用DNS呢?
一些機(jī)構(gòu)想隱藏DNS名,不讓外界知道。許多專家認(rèn)為隱藏DNS名沒有什么價值,但是,如果站點或企業(yè)的政策強(qiáng)制要求隱藏域名,它也不失為一種已知可行的辦法。你可能必須隱藏域名的另一條理由是你的內(nèi)部網(wǎng)絡(luò)上是否有非標(biāo)準(zhǔn)的尋址方案。不要自欺欺人的認(rèn)為,如果隱藏了你的DNS名,在攻擊者打入你的防火墻時,會給攻擊者增加困難。有關(guān)你的網(wǎng)絡(luò)的信息可以很容易地從網(wǎng)絡(luò)層獲得。假如你有興趣證實這點的話,不妨在LAN上“ping”一下子網(wǎng)廣播地址,然后再執(zhí)行“arp -a”。還需要說明的是,隱藏DNS中的域名不能解決從郵件頭、新聞文章等中“泄露”主機(jī)名的問題。
這種方法是許多方法中的一個,它對于希望向Internet隱瞞自己的主機(jī)名的機(jī)構(gòu)很有用。這種辦法的成功取決于這樣一個事實:即一臺機(jī)器上的DNS客戶機(jī)不必與在同一臺機(jī)器上的DNS服務(wù)器對話。換句話說,正是由于在一臺機(jī)器上有一個DNS服務(wù)器,因此,將這部機(jī)器的DNS客戶機(jī)活動重定向到另一臺機(jī)器上的DNS服務(wù)器沒有任何不妥(并且經(jīng)常有好處)。
首先,你在可以與外部世界通信的橋頭堡主機(jī)上建立DNS服務(wù)器。你建立這臺服務(wù)器使它宣布對你的域名具有訪問的權(quán)力。事實上,這臺服務(wù)器所了解的就是你想讓外部世界所了解的:你網(wǎng)關(guān)的名稱和地址、你的通配符MX記錄等等。這臺服務(wù)器就是“公共”服務(wù)器。
然后,在內(nèi)部機(jī)器上建立一臺DNS服務(wù)器。這臺服務(wù)器也宣布對你的域名具有權(quán)力;與公共服務(wù)器不同,這臺服務(wù)器“講的是真話”。它是你的“正常”的命名服務(wù)器,你可以在這臺服務(wù)器中放入你所有的“正常”DNS名。你再設(shè)置這臺服務(wù)器,使它可以將它不能解決的查詢轉(zhuǎn)發(fā)到公共服務(wù)器(例如,使用Unix機(jī)上的/etc/
named.boot中的“轉(zhuǎn)發(fā)器”行(forwarder line))。
最后,設(shè)置你所有的DNS客戶機(jī)(例如,Unix機(jī)上的/etc/resolv.conf文件)使用內(nèi)部服務(wù)器,這些DNS客戶機(jī)包括公共服務(wù)器所在機(jī)器上的DNS客戶機(jī)。這是關(guān)鍵。
詢問有關(guān)一臺內(nèi)部主機(jī)信息的內(nèi)部客戶機(jī)向內(nèi)部服務(wù)器提出問題,并得到回答;詢問有關(guān)一部外部主機(jī)信息的內(nèi)部客戶機(jī)向內(nèi)部服務(wù)器查詢,內(nèi)部客戶機(jī)再向公共服務(wù)器進(jìn)行查詢,公共服務(wù)器再向Internet查詢,然后將得到的答案再一步一步傳回來。公共服務(wù)器上的客戶機(jī)也以相同的方式工作。但是,一臺詢問關(guān)于一臺內(nèi)部主機(jī)信息的外部客戶機(jī),只能從公共服務(wù)器上得到“限制性”的答案。
這種方式假定在這兩臺服務(wù)器之間有一個包過濾防火墻,這個防火墻允許服務(wù)器相互傳遞DNS,但除此之外,限制其它主機(jī)之間的DNS。
這種方式中的另一項有用的技巧是利用你的IN-ADDR.AROA域名中通配符PTR記錄。這將引起對任何非公共主機(jī)的“地址到名稱”(address-to-name)的查找返回像“unknown.YOUR.DOMAIN”這樣的信息,而非返回一個錯誤。這就滿足了像ftp.uu.net匿名FTP站點的要求。這類站點要求得到與它們通信的計算機(jī)的名字。當(dāng)與進(jìn)行DNS交叉檢查的站點通信時,這種方法就不靈了。在交叉檢查中,主機(jī)名要與它的地址匹配,地址也要與主機(jī)名匹配。
14.怎樣才能穿過防火墻使用FTP?
一般來說,可以通過使用像防火墻工具包中的ftp-gw這類代理服務(wù)器,或在有限的端口范圍允許接入連接到網(wǎng)絡(luò)上(利用如“建立的”屏蔽規(guī)則這樣的規(guī)則來限制除上述端口外的接入),使FTP可以穿過防火墻工作。然后,修改FTP客戶機(jī),使其將數(shù)據(jù)端口連接在允許端口范圍內(nèi)的一個端口上。這樣做需要能夠修改在內(nèi)部主機(jī)上的
FTP客戶機(jī)應(yīng)用。
在某些情況下,如果FTP的下載是你所希望支持的,你不妨考慮宣布FTP為“死協(xié)議”(dead protocol),并且讓戶通過Web下載文件。如果你選擇FTP-via-Web方式,用戶將不能使用FTP向外傳輸文件,這可能會造成問題,不過這取決你試圖完成什么。
另一個不同的辦法是使用FTP "PASV"選項來指示遠(yuǎn)程FTP服務(wù)器允許客戶機(jī)開始連接。PASV方式假設(shè)遠(yuǎn)程系統(tǒng)上的FTP服務(wù)器支持這種操作。(詳細(xì)說明請參看RFC1579)
另一些站點偏愛建立根據(jù)SOCKS庫鏈接的FTP程序的客戶機(jī)版本。
15.怎樣才能穿過防火墻使用telnet?
利用像防火墻工具包中的tn-gw這類應(yīng)用代理,或簡單地配置一臺路由器使它利用像“建立的”屏蔽規(guī)則等策略允許接出,一般都可以支持使用telnet。應(yīng)用代理可以以運行在橋頭堡主機(jī)上的獨立代理的形式,或以SOCKS服務(wù)器和修改的客戶機(jī)的形式存在。
16.怎樣才能穿過防火墻使用RealAudio?
RealNetworks中含有關(guān)于如何使穿過防火墻RealAudio的一些說明。在沒有清楚地了解做哪些改動,了解新的改動將帶來什么樣的風(fēng)險的情況下,就改動你的防火墻,是很不明智的。
17.如何才能使web服務(wù)器作為專用網(wǎng)絡(luò)上的一個數(shù)據(jù)庫的前端呢?
實現(xiàn)這點的最佳途徑是通過特定的協(xié)議在web服務(wù)器與數(shù)據(jù)庫服務(wù)器之間允許很有限的連接。特定的協(xié)議只支持你將使用的功能的級別。允許原始SQL或其它任何可為攻擊者利用來進(jìn)行定制提?。╡xtractions)的東西,一般來說不是一個好主意。
假設(shè)攻擊者能夠進(jìn)入你的web服務(wù)器,并以web服務(wù)器同樣的方式進(jìn)行查詢。難道沒有一種機(jī)制能提取web服務(wù)器不需要的像信用卡信息這樣的敏感信息嗎?攻擊者難道不能發(fā)出一次SQL選擇,然后提取你整個的專用數(shù)據(jù)庫嗎?
同其它所有應(yīng)用一樣,“電子商務(wù)”應(yīng)用從一開始設(shè)計時就充分考慮到了安全問題,而不是以后再想起來“增加”安全性。應(yīng)當(dāng)從一個攻擊者的角度,嚴(yán)格審查你的結(jié)構(gòu)。假設(shè)攻擊者了解你的結(jié)構(gòu)的每一個細(xì)節(jié)。現(xiàn)在,再問問自己,想要竊取你的數(shù)據(jù)、進(jìn)行非授權(quán)的改動或做其它任何你不想讓做的事的話,應(yīng)當(dāng)做些什么。你可能會發(fā)現(xiàn),不需要增加任何功能,只需做出一些設(shè)計和實施上的決策就可大大地增加安全性。
下面是一些如何做到這點的想法:
以一般的原則,從數(shù)據(jù)庫中提取你所需要的數(shù)據(jù),使你不用對包含攻擊者感興趣的信息的整個數(shù)據(jù)庫進(jìn)行查詢。對你允許在web服務(wù)器與數(shù)據(jù)庫之間傳輸流實行嚴(yán)格的限制和審計。