版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
防火墻技術(shù)10.1防火墻的概念、原理10.2防火墻技術(shù)(層次)10.3防火墻體系結(jié)構(gòu)10.4包過濾技術(shù)10.5堡壘主機(Bastion)10.6應(yīng)用網(wǎng)關(guān)和代理服務(wù)器參考文獻思考題
防火墻(firewall)原是汽車中一個部件的名稱。在汽車中,利用防火墻把乘客和引擎隔開,以便汽車引擎一旦著火,防火墻不但能保護乘客安全,同時還能讓司機繼續(xù)控制引擎。在電腦中,防火墻是一種設(shè)備,可使個別網(wǎng)路不受公共部分(因特網(wǎng))的影響。后來,將防火墻電腦簡稱為“防火墻”,它分別連接受保護網(wǎng)絡(luò)和因特網(wǎng)。
防火墻作為網(wǎng)絡(luò)防護的第一道防線,它由軟件或/和硬件設(shè)備組合而成,它位于企業(yè)或網(wǎng)絡(luò)群體計算機與外界通道(Internet)的邊界,限制著外界用戶對內(nèi)部網(wǎng)絡(luò)的訪問以及管理內(nèi)部用戶訪問外界網(wǎng)絡(luò)的權(quán)限。
防火墻是一種必不可少的安全增強點,它將不可信網(wǎng)絡(luò)同可信任網(wǎng)絡(luò)隔離開(如圖10-1所示)。防火墻篩選兩個網(wǎng)絡(luò)間所有的連接,決定哪些傳輸應(yīng)該被允許哪些應(yīng)該被禁止。這取決于網(wǎng)絡(luò)制定的某一形式的安全策略。
圖10-1防火墻示意圖
防火墻是放置在兩個網(wǎng)絡(luò)之間的一些組件,這組組件具有下列性質(zhì):
(1)雙向通信必須通過防火墻;
(2)防火墻本身不會影響信息的流通;
(3)只允許本身安全策略授權(quán)的通信信息通過。
從誕生到現(xiàn)在,防火墻已經(jīng)歷了四個發(fā)展階段:基于路由器的防火墻、用戶化的防火墻工具套、建立在通用操作系統(tǒng)上的防火墻、具有安全操作系統(tǒng)的防火墻。目前,防火墻供應(yīng)商提供的大部分都是具有安全操作系統(tǒng)的軟硬件結(jié)合的防火墻。
10.1防火墻的概念、原理
防火墻是在內(nèi)部網(wǎng)和外部網(wǎng)之間實施安全防范的系統(tǒng)??烧J(rèn)為它是一種訪問控制機制,用于確定哪些內(nèi)部服務(wù)對外開放,以及允許哪些外部服務(wù)對內(nèi)部開放。它可以根據(jù)網(wǎng)絡(luò)傳輸?shù)念愋蜎Q定IP包是否可以進出企業(yè)網(wǎng)、防止非授權(quán)用戶訪問企業(yè)內(nèi)部、允許使用授權(quán)機器的用戶遠程訪問企業(yè)內(nèi)部、管理企業(yè)內(nèi)部人員對Internet的訪問。防火墻的組成可用表達式說明如下:
防火墻?=?過濾器?+?安全策略(網(wǎng)關(guān))
防火墻通過逐一審查收到的每個數(shù)據(jù)包,判斷它是否有相匹配的過濾規(guī)則(用表格的形式表示,包括Match,Action,Trace,Target四個條件項)。即按表格中規(guī)則的先后順序以及每條規(guī)則的條件逐項進行比較,直到滿足某一條規(guī)則的條件,并作出規(guī)定的動作(中止或向前轉(zhuǎn)發(fā)),從而來保護網(wǎng)絡(luò)的安全。
防火墻主要提供以下四種服務(wù):
(1)服務(wù)控制:確定可以訪問的網(wǎng)絡(luò)服務(wù)類型。
(2)方向控制:特定服務(wù)的方向流控制。
(3)用戶控制:內(nèi)部用戶、外部用戶所需的某種形式的認(rèn)證機制。
(4)行為控制:控制如何使用某種特定的服務(wù)。
10.2防火墻技術(shù)(層次)
第一代防火墻出現(xiàn)在大約十年前,它是一種簡單的包過濾路由器形式。當(dāng)今,有多種防火墻技術(shù)供網(wǎng)絡(luò)安全管理員選擇。防火墻一般可以分為以下幾種:包過濾型防火墻、應(yīng)用網(wǎng)關(guān)型防火墻、電路級網(wǎng)關(guān)防火墻、狀態(tài)檢測型防火墻、自適應(yīng)代理型防火墻。下面具體分析各種防火墻技術(shù)。
10.2.1包過濾防火墻(TCP、IP)
包是網(wǎng)絡(luò)上信息流動的基本單位。它由數(shù)據(jù)負載和協(xié)議頭兩個部分組成。包過濾作為最早、最簡單的防火墻技術(shù),正是基于協(xié)議頭的內(nèi)容進行過濾。術(shù)語“包過濾”通過將每一輸入/輸出包中發(fā)現(xiàn)的信息同訪問控制規(guī)則相比較來決定阻塞或放行包。通過檢查數(shù)據(jù)流中每一個數(shù)據(jù)包的源地址、目的地址、所用端口、協(xié)議狀態(tài)等因素,或它們的組合來確定是否允許該數(shù)據(jù)包通過。如果包在這一測試中失敗,將在防火墻處被丟棄。包過濾防火墻如圖10-2所示。
圖10-2包過濾防火墻
考慮包過濾路由器同守衛(wèi)的類比。當(dāng)裝載有包的運輸卡車到達時,“包過濾”守衛(wèi)快速的察看包的住戶地址是否正確,檢查卡車的標(biāo)識(證件)以確保它也是正確的,接著送卡車通過關(guān)卡傳遞包。雖然這種方法比沒有關(guān)卡更安全,但是它還是比較容易通過并且會使整個內(nèi)部網(wǎng)絡(luò)暴露于危險之中。
包過濾防火墻是最快的防火墻,這是因為它們的操作處于網(wǎng)絡(luò)層并且只是粗略檢查特定的連接的合法性。例如,HTTP通常為Web服務(wù)連接使用80號端口。如果公司的安全策略允許內(nèi)部職員訪問網(wǎng)站,包過濾防火墻可能設(shè)置允許所有的連接通過80號這一缺省端口。不幸的是,像這樣的假設(shè)會造成實質(zhì)上的安全危機。當(dāng)包過濾防火墻假設(shè)來自80端口的傳輸通常是標(biāo)準(zhǔn)Web服務(wù)連接時,它對于應(yīng)用層實際所發(fā)生的事件的能見度為零。任何意識到這一缺陷的人都可通過在80端口上綁定其它沒有被認(rèn)證的服務(wù),從而進入私有網(wǎng)絡(luò)而不會被阻塞。
許多安全專家也批評包過濾防火墻,因為端點之間可以通過防火墻建立直接連接。一旦防火墻允許某一連接,就會允許外部源直接連接到防火墻后的目標(biāo),從而潛在的暴露了內(nèi)部網(wǎng)絡(luò),使之容易遭到攻擊。
10.2.2應(yīng)用代理防火墻(ApplicationLayer)
在包過濾防火墻出現(xiàn)不久,許多安全專家開始尋找更好的防火墻安全機制。他們相信真正可靠的安全防火墻應(yīng)該禁止所有通過防火墻的直接連接—在協(xié)議棧的最高層檢驗所有的輸入數(shù)據(jù)。為測試這一理論,DARPA(DefenseAdvancedResearchProjectsAgency)同在華盛頓享有較高聲望的以可信信息系統(tǒng)著稱的高級安全研究機構(gòu)簽訂了合同,以開發(fā)安全的“應(yīng)用級代理”防火墻。這一研究最終造就了Gauntlet(/),它是第一代為DARPA和美國國防部的最高標(biāo)準(zhǔn)設(shè)計的商業(yè)化應(yīng)用級代理防火墻。
應(yīng)用級代理防火墻模式提供了十分先進的安全控制機制,如圖10-3所示。它通過在協(xié)議棧的最高層(應(yīng)用層)檢查每一個包從而提供足夠的應(yīng)用級連接信息。因為在應(yīng)用層中它有足夠的能見度,應(yīng)用級代理防火墻能很容易看見前面提及的每一個連接的細節(jié)從而實現(xiàn)各種安全策略。例如,這種防火墻很容易識別重要的應(yīng)用程序命令,象FTP的“put”上傳請求和“get”下載請求。
圖10-3應(yīng)用代理防火墻
應(yīng)用級代理防火墻也具有內(nèi)建代理功能的特性—在防火墻處終止客戶連接并初始化一條到受保護內(nèi)部網(wǎng)絡(luò)的新連接。這一內(nèi)建代理機制提供額外的安全,這是因為它將內(nèi)部和外部系統(tǒng)隔離開來,從外面只看到代理服務(wù)器,而看不到任何內(nèi)部資源,而且代理服務(wù)器只允許被代理的服務(wù)通過。使得系統(tǒng)外部的黑客要探測防火墻內(nèi)部系統(tǒng)變得更加困難。
考慮前面安全守衛(wèi)的類比,和剛才在輸入包中查找地址不同的是,“應(yīng)用級代理”安全守衛(wèi)打開每個包并檢查其中內(nèi)容并將發(fā)送者的信任書同已明確建立的評價標(biāo)準(zhǔn)相對比。如果每個傳輸包都通過了這種細致的檢查,那么守衛(wèi)簽署傳送標(biāo)記,并在內(nèi)部送一份可信快遞以傳遞該包到合適的住戶,卡車及司機無法進入。這種安全檢查不僅更可靠,而且司機看到內(nèi)部網(wǎng)絡(luò)。盡管這些額外的安全機制將花費更多處理時間,但可疑行為絕不會被允許通過“應(yīng)用級代理”安全守衛(wèi)。
代理服務(wù)安全性高,可以過濾多種協(xié)議,通常認(rèn)為它是最安全的防火墻技術(shù)。其不足主要是不能完全透明地支持各種服務(wù)、應(yīng)用,一種代理只提供一種服務(wù)。另外需要消耗大量的CPU資源,導(dǎo)致相對低的性能。
10.2.3電路級網(wǎng)關(guān)型防火墻(SessionLayer)
電路級起一定的代理服務(wù)作用。它監(jiān)視兩主機建立連接時的握手信息,從而判斷該會話請求是否合法,如圖10-4所示。一旦會話連接有效,該網(wǎng)關(guān)僅復(fù)制、傳遞數(shù)據(jù)。它在IP層代理各種高層會話,具有隱藏內(nèi)部網(wǎng)絡(luò)信息的能力,且透明性高。但由于其對會話建立后所傳輸?shù)木唧w內(nèi)容不再作進一步地分析,因此安全性稍低。
圖10-4電路級防火墻
電路級網(wǎng)關(guān)不允許進行端點到端點的TCP連接,而是建立兩個TCP連接。一個在網(wǎng)關(guān)和內(nèi)部主機上的TCP用戶程序之間,另一個在網(wǎng)關(guān)和外部主機的TCP用戶程序之間。一旦建立兩個連接,網(wǎng)關(guān)通常就只是把TCP數(shù)據(jù)包從一個連接轉(zhuǎn)送到另一個連接中去而不檢驗其中的內(nèi)容。其安全功能就是確定哪些連接是允許的。
它和包過濾型防火墻有一個共同特點,都是依靠特定的邏輯來判斷是否允許數(shù)據(jù)包通過,但包過濾型防火墻允許內(nèi)外計算機系統(tǒng)建立直接聯(lián)系,而電路級網(wǎng)關(guān)無法IP直達。
電路級網(wǎng)關(guān)實現(xiàn)的一個例子就是SOCKS(/)。第五版的SOCKS是IETF認(rèn)可的、標(biāo)準(zhǔn)的、基于TCP/IP的網(wǎng)絡(luò)代理協(xié)議。SOCKS包括兩個部件:SOCKS服務(wù)器和SOCKS客戶端。SOCKS服務(wù)器在應(yīng)用層實現(xiàn),而SOCKS客戶端的實現(xiàn)位于應(yīng)用層和傳輸層之間。SOCKS協(xié)議的基本目的就是讓SOCKS服務(wù)器兩邊的主機能夠互相訪問,而不需要直接的IP互聯(lián)(Reachability),如圖10-5所示。圖10-5SOCKS協(xié)議層次
1.SOCKS代理服務(wù)器概念
當(dāng)一個應(yīng)用程序客戶需要連接到一個應(yīng)用服務(wù)器,客戶先連接到SOCKS代理服務(wù)器。代理服務(wù)器代表客戶連接到應(yīng)用服務(wù)器,并在客戶和應(yīng)用服務(wù)器之間中繼(relay)數(shù)據(jù)。對于應(yīng)用服務(wù)器來說,代理服務(wù)器就是客戶。
2.SOCKS模型
SOCKS協(xié)議有兩個版本—SOCKSv4和SOCKSv5。
SOCKSv4協(xié)議完成以下三個功能:
(1)發(fā)起連接請求。
(2)建立代理電路。
(3)中繼應(yīng)用數(shù)據(jù)。
SOCKSv5協(xié)議在第四版基礎(chǔ)上增加了認(rèn)證功能。
3.SOCKS控制流
圖10-6給出了SOCKv5的協(xié)議控制流模型。虛線范圍內(nèi)表示的是SOCKv4的功能。SOCKSv5對第四版功能的增強主要包括:
(1)強認(rèn)證。另定義了兩種協(xié)議用于支持SOCKSv5的認(rèn)證方法,分別是用戶名/口令認(rèn)證(rfc1929)和GSS-API(通用安全服務(wù)API)認(rèn)證(rfc1961)。
(2)認(rèn)證方法協(xié)商。應(yīng)用客戶和SOCKSv5服務(wù)器可以就使用的認(rèn)證方法進行協(xié)商。
(3)地址解析代理。SOCKSv5內(nèi)置的地址解析代理簡化了DNS管理和IP地址隱藏和轉(zhuǎn)換。SOCKSv5可以為客戶解析名字。
(4)基于UDP應(yīng)用程序的代理。
4.使用SOCKS的原因
利用SOCKSv5所具有的強大而靈活的協(xié)議框架,支持SOCKSv5的應(yīng)用程序有很多優(yōu)勢,例如,透明的網(wǎng)絡(luò)訪問、容易支持認(rèn)證和加密方法、快速開發(fā)新的網(wǎng)絡(luò)應(yīng)用、簡化網(wǎng)絡(luò)安全策略管理和支持雙向代理。
圖10-6SOCKS協(xié)議控制流
10.2.4狀態(tài)包檢測(Stateful-inspection)
為了克服基本狀態(tài)包過濾模式所帶有的明顯安全問題,一些包過濾防火墻廠商提出了所謂的狀態(tài)包檢測概念。上面提到的包過濾技術(shù)簡單的查看每一個單一的輸入包信息,而狀態(tài)包檢測模式增加了更多的包和包之間的安全上下文檢查以達到與應(yīng)用級代理防火墻相類似的安全性能。狀態(tài)包檢測防火墻在網(wǎng)絡(luò)層攔截輸入包,并利用足夠的企圖連接的狀態(tài)信息以做出決策(通過對高層的信息進行某種形式的邏輯或數(shù)學(xué)運算),如圖10-7所示。
這些包在操作系統(tǒng)內(nèi)核的私有檢測模塊中檢測。安全決策所需的狀態(tài)相關(guān)信息在檢測模塊中檢測,然后保留在為評價后續(xù)連接企圖的動態(tài)狀態(tài)表(庫)中。被檢查通過的包發(fā)往防火墻內(nèi)部,允許直接連接內(nèi)部、外部主機系統(tǒng)。
狀態(tài)包檢測防火墻工作在協(xié)議棧的較低層,通過防火墻的所有數(shù)據(jù)包都在低層處理,而不需要協(xié)議棧的上層來處理任何數(shù)據(jù)包,因此減少了高層協(xié)議頭的開銷,執(zhí)行效率也大大提高了。另外,一旦一個連接在防火墻中建立起來,就不用再對該連接進行更多的處理,這樣,系統(tǒng)就可以去處理其它連接,執(zhí)行效率可以得到進一步的提高。
圖10-7狀態(tài)包檢測防火墻
盡管狀態(tài)包檢測防火墻方法顯著的增強了簡單包過濾防火墻的安全,但它仍然不能提供和前面提及的應(yīng)用級檢測相似的充足能見度。狀態(tài)包檢測防火墻不依靠與應(yīng)用層有關(guān)的代理,而是依靠某種算法來識別進出的應(yīng)用層數(shù)據(jù)。這些算法通過已知合法數(shù)據(jù)包的模式來比較進出數(shù)據(jù)包,這樣從理論上就能比應(yīng)用級代理在過濾數(shù)據(jù)包上更加有效。但應(yīng)用級代理防火墻對最高層的協(xié)議棧內(nèi)容有足夠的能見度,從而可以準(zhǔn)確的知道它的意圖,而狀態(tài)包檢測防火墻必須在沒有這些信息的情況下做出安全決策。
例如,當(dāng)應(yīng)用級代理防火墻廠商聲稱支持微軟SQLServer,你就知道任何到內(nèi)部SQLServer服務(wù)器的遠程連接必須在應(yīng)用層通過專門的微軟SQL代理接受全面的檢測。而對于狀態(tài)包檢測防火墻,允許遠程用戶訪問防火墻后面的SQL數(shù)據(jù)庫是肯定要冒更大安全風(fēng)險的。
假設(shè)我們的安全守衛(wèi)是狀態(tài)包檢測守衛(wèi)。這次當(dāng)包到來時,和僅簡單的檢查地址所不同的是,守衛(wèi)檢測貨物單看是否包內(nèi)有任何東西是被禁止的。雖然它比簡單的包過濾好,但它還是不如真正打開包檢測它的內(nèi)容安全。如果包看起來是可接受的,守衛(wèi)打開關(guān)卡,允許運貨卡車進入。
狀態(tài)包檢測防火墻的安全比應(yīng)用級代理要少。應(yīng)用級代理防火墻本質(zhì)上提供了比包過濾防火墻更多的安全,不管它是有狀態(tài)的還是無狀態(tài)的。帶有狀態(tài)檢測的包過濾防火墻仍然允許外部用戶直接訪問內(nèi)網(wǎng)系統(tǒng)和應(yīng)用程序,而這些程序和系統(tǒng)可能配置在擁有眾所周知的安全弱點的操作系統(tǒng)上。應(yīng)用級代理通過一個自身具有有限、明確的任務(wù)集代理來限制訪問應(yīng)用程序或計算機系統(tǒng),從而掩蓋了這些同樣的弱點。
10.3防火墻體系結(jié)構(gòu)
目前,防火墻的體系結(jié)構(gòu)一般有以下幾種:
(1)雙重宿主主機體系結(jié)構(gòu);
(2)被屏蔽主機體系結(jié)構(gòu);
(3)被屏蔽子網(wǎng)體系結(jié)構(gòu)。
10.3.1雙重宿主主機體系結(jié)構(gòu)(DualHomedHost)
雙重宿主主機體系結(jié)構(gòu)是圍繞具有雙重宿主的計算機而構(gòu)筑的,該計算機至少有兩個網(wǎng)絡(luò)接口(NIC)。這樣的主機可以充當(dāng)與這些接口相連的網(wǎng)絡(luò)之間的路由器,它能夠從一個網(wǎng)絡(luò)接口到另一個網(wǎng)絡(luò)接口轉(zhuǎn)發(fā)IP數(shù)據(jù)包。然而,實現(xiàn)雙重宿主主機的防火墻體系結(jié)構(gòu)禁止這種轉(zhuǎn)發(fā)功能。因而,IP數(shù)據(jù)包從一個網(wǎng)絡(luò)(例如,因特網(wǎng))并不是直接發(fā)送到其它網(wǎng)絡(luò)(例如,內(nèi)部的、被保護的網(wǎng)絡(luò))。防火墻內(nèi)部的系統(tǒng)能與雙重宿主主機通信,同時防火墻外部的系統(tǒng)(在因特網(wǎng)上)能與雙重宿主主機通信,但是這些系統(tǒng)不能直接互相通信。它們之間的IP通信被完全阻止。
雙重宿主主機的防火墻體系結(jié)構(gòu)是相當(dāng)簡單的:雙重宿主主機位于兩者之間,并且被分別連接到因特網(wǎng)和內(nèi)部網(wǎng)絡(luò),如圖10-8所示。
圖10-8雙宿主防火墻體系結(jié)構(gòu)
10.3.2屏蔽主機體系結(jié)構(gòu)(ScreenedHost)
雙重宿主主機體系結(jié)構(gòu)提供來自與多個網(wǎng)絡(luò)相連的主機的服務(wù)(但是路由關(guān)閉,否則從一塊網(wǎng)卡到另外一塊網(wǎng)卡的通信會繞過代理服務(wù)軟件),而被屏蔽主機體系結(jié)構(gòu)使用一個單獨的路由器來提供與內(nèi)部網(wǎng)絡(luò)相連主機(堡壘)的服務(wù)。在這種體系結(jié)構(gòu)中,主要的安全措施有數(shù)據(jù)包過濾,如圖10-9所示。
在屏蔽路由器上的數(shù)據(jù)包過濾是按這樣一種方法設(shè)置的,即堡壘主機(Bastionhost),它是因特網(wǎng)上的主機能連接到內(nèi)部網(wǎng)絡(luò)系統(tǒng)的橋梁(例如,傳送進來的電子郵件),而且僅有某些特定類型的連接被允許通過。任何外部系統(tǒng)試圖訪問內(nèi)部系統(tǒng)或者服務(wù)必須首先連接到這臺堡壘主機上。因此,堡壘主機需要擁有高等級的安全。數(shù)據(jù)包過濾也允許堡壘主機開放可允許的連接到外部世界(什么是“可允許”將由用戶的站點的安全策略決定)。
圖10-9屏蔽主機防火墻體系結(jié)構(gòu)
在屏蔽路由器中數(shù)據(jù)包過濾配置可以按下列之一執(zhí)行:
(1)允許其它的內(nèi)部主機為了某些服務(wù)與因特網(wǎng)上的主機連接(即允許那些已經(jīng)由數(shù)據(jù)包過濾的服務(wù))。
(2)不允許來自內(nèi)部主機的所有連接(強迫主機經(jīng)由堡壘主機使用代理服務(wù))。
用戶可以針對不同的服務(wù)混合使用這些手段;某些服務(wù)可以被允許直接經(jīng)由數(shù)據(jù)包過濾,而其它服務(wù)可以被允許僅僅間接地經(jīng)過代理。這完全取決于用戶實行的安全策略。
因為這種體系結(jié)構(gòu)允許數(shù)據(jù)包從因特網(wǎng)向內(nèi)部網(wǎng)的訪問,所以,它的設(shè)計比沒有外部數(shù)據(jù)包能到達內(nèi)部網(wǎng)絡(luò)的雙重宿主主機體系結(jié)構(gòu)要更冒風(fēng)險。因為路由器提供的服務(wù)非常有限,實施起來比較容易。
10.3.3屏蔽子網(wǎng)結(jié)構(gòu)(ScreenedSubnetArchitectures)
屏蔽子網(wǎng)結(jié)構(gòu)通過進一步增加隔離內(nèi)外網(wǎng)的邊界網(wǎng)絡(luò)(perimeternetwork)為屏蔽主機結(jié)構(gòu)增添了額外的安全層。這個邊界網(wǎng)絡(luò)有時候被稱為非軍事區(qū)(DeMilitarizedZone)。堡壘主機是最脆弱、最易受攻擊的部位,通過隔離堡壘主機的邊界網(wǎng)絡(luò),便可減輕堡壘主機被攻破所造成的后果。因為此處堡壘主機不再是整個網(wǎng)絡(luò)的關(guān)鍵點,它們給入侵者一些訪問,而不是全部。最簡單的屏蔽子網(wǎng)結(jié)構(gòu)(如圖10-10所示)有兩個屏蔽路由器,一個連接外網(wǎng)與邊界網(wǎng)絡(luò),另一個連接邊界網(wǎng)絡(luò)與內(nèi)網(wǎng)。為了攻進內(nèi)網(wǎng),入侵者必須通過兩個屏蔽路由器。即使黑客能夠攻破堡壘主機,他還須通過內(nèi)部屏蔽路由器。
圖10-10屏蔽子網(wǎng)防火墻體系結(jié)構(gòu)
10.4包過濾技術(shù)
包過濾器是最原始的防火墻。包過濾器根據(jù)每個包頭部內(nèi)的信息來決定是否要將包繼續(xù)傳輸,從而增強安全性。理論上,包過濾器可以被配置為根據(jù)協(xié)議包頭的任何部分進行判斷,但是大部分的過濾器被配置成只過濾最有用的數(shù)據(jù)域,主要是:
(1)
IP地址;
(2)協(xié)議類型;
(3)
TCP/UDP頭信息。
10.4.1創(chuàng)建包過濾規(guī)則
在確定包過濾的配置規(guī)則之前,需要作如下決定:
(1)打算提供何種網(wǎng)絡(luò)服務(wù),并以何種方向(從內(nèi)部網(wǎng)絡(luò)到外部網(wǎng)絡(luò),或者從外部網(wǎng)絡(luò)到內(nèi)部網(wǎng)絡(luò))提供這些服務(wù)。
(2)是否限制內(nèi)部主機與因特網(wǎng)進行連接。
(3)因特網(wǎng)上是否存在某些可信任主機,它們需要以什么形式訪問內(nèi)部網(wǎng)。
對于不同的包過濾產(chǎn)品,用來生成規(guī)則的信息也不同,但通常都包括以下信息:
(1)接口和方向。包是流入還是離開網(wǎng)絡(luò),這些包通過哪種接口。
(2)源和目的IP地址。檢查包從何而來(源IP地址)、發(fā)往何處(目的IP地址)。
(3)
IP選項。檢查所有選項字段,特別是要阻止源路由(sourcerouting)。
(4)高層協(xié)議。使用IP包的上層協(xié)議類型,例如TCP還是UDP。
(5)?TCP包的ACK位檢查。這一字段可幫助確定是否有、及以何種方向建立連接。
(6)
ICMP的報文類型。可以阻止某些刺探網(wǎng)絡(luò)信息的企圖。
(7)
TCP和UDP包的源和目的端口。此信息幫助確定正在使用的是哪些服務(wù)。
創(chuàng)建包過濾器的規(guī)則時,有如下幾條重要的約定:
首先,由主機或網(wǎng)絡(luò)用來允許或拒絕訪問的一些規(guī)則要使用IP地址,而不使用主機名或域名。雖然進行IP地址和域名欺騙都不是非常難的事,但在很多攻擊中,一個IP地址欺騙常常是不容易做到的,因為黑客想要真正得到響應(yīng)并非易事。然而只要黑客能夠訪問DNS數(shù)據(jù)庫,進行域名欺騙卻是很容易的事。這時,域名看起來很熟悉,但它對應(yīng)的地址卻不是我們所期望的。
不要回應(yīng)所有從外部網(wǎng)絡(luò)接口來的ICMP代碼,因為它們很可能給黑客暴露信息,特別是哪種包可以流入網(wǎng)絡(luò),哪種包不可以流入網(wǎng)絡(luò)的信息。對某些包返回ICMP代碼可能等于告訴黑客,在某個地方確實有一個包過濾器在工作。在這種情況下,對黑客來說有信息總比沒有好。防火墻的主要功能之一就是隱藏內(nèi)部網(wǎng)絡(luò)的信息。黑客通過對信息的篩選處理,可以發(fā)現(xiàn)什么服務(wù)不在運行,而最終發(fā)現(xiàn)什么服務(wù)在運行。如果不返回ICMP代碼,就可限制黑客得到可用的信息。
要丟棄所有通過外部網(wǎng)絡(luò)適配器流入,而其源地址是來自受保護網(wǎng)絡(luò)的包。這很可能是有人試圖利用這些包進行地址欺騙達到通過網(wǎng)絡(luò)安全關(guān)口的目的。要記住防火墻不能防止網(wǎng)絡(luò)內(nèi)部的攻擊。
10.4.2IP頭信息
通常,包過濾器只根據(jù)包的頭部信息來操作。由于在每個包里有多個不同的協(xié)議頭,所以需要檢查那些對包過濾非常重要的協(xié)議頭。大多數(shù)包過濾器不使用以太幀的頭部信息。幀里的源地址和其它信息沒有太大用處,因為這是本地局域網(wǎng)上系統(tǒng)的MAC硬件地址,或者是包通過因特網(wǎng)的最近一個路由器的硬件地址。
接下來是協(xié)議棧中IP包的頭部信息。IP包的頭部信息很有限。頭部信息中有三種信息在包過濾中很重要:
(1)
IP地址,包括源和目的地址;
(2)協(xié)議類型,例如TCP、UDP、ICMP;
(3)?IP選項,例如源路由選擇。
顯然源和目的地址是最有用的。如果防火墻只允許因特網(wǎng)上一定數(shù)量的主機通過,可以采用基于源地址過濾的方法。相反亦然,可以對網(wǎng)絡(luò)內(nèi)部產(chǎn)生的包進行過濾,只允許某些特定目的地址的包通過防火墻到達因特網(wǎng)。
10.4.3TCP頭信息
TCP是因特網(wǎng)服務(wù)使用最普遍的協(xié)議。例如,Telnet、FTP、SMTP、NNTP和HTTP都是以TCP為基礎(chǔ)的服務(wù)。TCP提供端點之間可靠的雙向連接。進行TCP連接就象打電話一樣,必須先撥號,建立連接之后,你才能和被叫的用戶之間建立可靠的連接。
TCP的可靠性在于它對應(yīng)用層的三個保證:
(1)目標(biāo)將按發(fā)送的順序接收應(yīng)用程序數(shù)據(jù)。
(2)目標(biāo)將接收所有應(yīng)用程序數(shù)據(jù)。
(3)目標(biāo)將不重復(fù)接收任何應(yīng)用程序數(shù)據(jù)。
TCP寧愿取消一個連接也不違反其中一個保證。例如,如果來自會話中的TCP數(shù)據(jù)包在傳輸中丟失,TCP層在將數(shù)據(jù)上交給應(yīng)用層之前安排重新傳輸那些數(shù)據(jù)包。如果一些數(shù)據(jù)不能恢復(fù),那么TCP層將取消連接并向應(yīng)用層報告,而不是向應(yīng)用層提交有殘缺的數(shù)據(jù)。
這些保證在設(shè)置期間(連接的兩端必須在它們能實際傳輸數(shù)據(jù)之前交換啟動信息)和維持性能(連接的兩端必須跟蹤連接的狀態(tài),來決定向另一端重新傳送什么數(shù)據(jù)以彌補對話中發(fā)生的錯誤)方面產(chǎn)生一定的開銷。
TCP的雙向體現(xiàn)在:一旦連接建立,服務(wù)器能在同一連接中對客戶進行應(yīng)答(捎帶技術(shù))。你不必建立一條從客戶到服務(wù)器用于詢問或者命令的連接,以及另一條從服務(wù)器返回到客戶用于回答的連接。
如果你試圖阻止TCP連接,僅阻止連接的第一個數(shù)據(jù)包就足夠了。沒有第一個數(shù)據(jù)包(它包含建立連接的信息),接收端不會把之后的數(shù)據(jù)重新組裝成數(shù)據(jù)流,連接也就不存在。第一個數(shù)據(jù)包可以被識別是因為在它的報頭中ACK位沒有被設(shè)置;其它連接中所有的數(shù)據(jù)包不論它去往什么方向,它的ACK位都將被設(shè)置。
理解這些“建立連接”的TCP數(shù)據(jù)包可讓我們對內(nèi)部客戶和外部服務(wù)器之間的連接進行控制。你可以僅允許建立連接的TCP數(shù)據(jù)包(其ACK位沒有設(shè)置)出站而不能入站。建立連接的數(shù)據(jù)包將允許從內(nèi)部客戶到外部服務(wù)器去,但是不允許從外部的客戶進來到內(nèi)部服務(wù)器。入侵者不能只在他們的建立連接中打開“ACK”位破壞這個機制,因為缺少ACK位將認(rèn)定這些數(shù)據(jù)包是建立連接的數(shù)據(jù)包。
圖10-11表示了ACK在一個TCP連接的部分?jǐn)?shù)據(jù)包上是如何設(shè)置的。
圖10-11TCP數(shù)據(jù)包上的ACK位
僅僅依靠地址進行數(shù)據(jù)過濾在實際運用中是不可行的,因為目標(biāo)主機上往往運行著多種網(wǎng)絡(luò)服務(wù)。比方說,我們不想讓用戶采用Telnet的方式連到系統(tǒng),但這絕不等于我們非得同時禁止他們使用SMTP/POP郵件服務(wù)器?所以說,在地址之外我們還要對服務(wù)器的TCP/UDP端口進行過濾。
1.端口和套接字
端口用來標(biāo)識連接端點的應(yīng)用程序。由于一臺計算機可能同時有多個應(yīng)用程序使用TCP協(xié)議棧,因而需要一種方法來區(qū)分各個包發(fā)往的應(yīng)用程序。例如,己經(jīng)和遠程計算機建立了Telnet會話,又想要上傳文件到那臺計算機。Telnet并不能傳輸文件,所以必須打開一個FTP連接。由于兩個連接使用的IP包的源和目的地址都相同,于是就可以用端口區(qū)分相應(yīng)的應(yīng)用程序。
把地址和端口結(jié)合起來,就可以唯一地標(biāo)識一條連接。這種數(shù)字的組合名字我們稱為套接字(socket)。在圖10-12中,兩臺計算機之間建立了兩個連接會話,一個是Telnet(端口23),另外一個是FTP(端口20)。FTP實際上使用了兩個端口,一個是用于發(fā)送數(shù)據(jù)的端口20,一個是交換命令信息的端口21。很明顯這些端口號對包過濾器來說非常有用。相對而言,如果僅僅基于包的源或目的地址來拒絕和允許該包,就會造成要么允許全部連接要么拒絕全部連接的后果,而端口號可幫助我們有選擇地拒絕或允許個別服務(wù)。
盡管我們可能不想讓用戶使用Telnet登錄到一個遠程計算機(或者相反),但可能不關(guān)心他們是否通過匿名FTP會話交換文件。在包過濾規(guī)則中使用端口號可以同時拒絕或允許各種網(wǎng)絡(luò)服務(wù)。
圖10-12套接字(由一個地址和一個端口號組成)唯一標(biāo)識一條網(wǎng)絡(luò)連接
2.端口過濾規(guī)則創(chuàng)建
有了這些信息我們就可以很好地創(chuàng)建包過濾規(guī)則了。一條好的包過濾規(guī)則可以同時指定源和目的端口。一些老的路由器不允許指定源端口,這可能導(dǎo)致防火墻的很大的安全漏洞。例如,創(chuàng)建幾個允許流入和流出SMTP連接的例子,這樣Email可以進行傳送。在第一個例子中,規(guī)則中只允許目的端口,如表10-1所示。
在這個例子中,可以看到規(guī)則l和規(guī)則3允許端口25的流入和流出連接,該端口通常被SMTP使用。規(guī)則l允許外部計算機向內(nèi)部網(wǎng)絡(luò)的服務(wù)器端口25發(fā)送數(shù)據(jù)。規(guī)則2允許網(wǎng)絡(luò)內(nèi)部的服務(wù)器回應(yīng)外部SMTP請求,并且假定它使用大于1024的端口號,因為規(guī)則允許大于或等于端口1024的連接。
規(guī)則3和4允許反方向的SMTP連接,內(nèi)部網(wǎng)絡(luò)的SMTP服務(wù)器可以向外部網(wǎng)絡(luò)的SMTP服務(wù)器的端口25建立連接。最后一條規(guī)則5,不允許其它任何連接。這些過濾規(guī)則看起來非常好,允許兩個方向的SMTP連接,并且保證了內(nèi)部局域網(wǎng)的安全。但這是錯誤的。當(dāng)創(chuàng)建包過濾規(guī)則時,需要同時觀察所有的規(guī)則,而不是一次只觀察一條或兩條。在這個例子中,規(guī)則2和規(guī)則4允許大于端口1023的所有服務(wù),不論是流入還是流出方向。黑客可以利用這一個漏洞去做各種事情,包括與特洛伊木馬程序通信。
要修補這些規(guī)則,需要能夠除了指定目的端口之外,還要能夠指定源端口。讓我們看下一個改進以后的例子,如表10-2所示。
在這一個例子中,規(guī)則2和規(guī)則4不再允許兩端口都大于1023的連接。相反,在連接的一端,這些連接被綁定到SMTP端口25上。
10.4.4UDP端口過濾
現(xiàn)在回過頭來看看怎么解決UDP問題。UDP包沒有ACK位所以不能進行ACK位過濾。UDP是發(fā)出去就不管的“不可靠”通信。這種類型的服務(wù)通常用于廣播、路由、多媒體等廣播形式的通信任務(wù)。NFS、DNS、WINS、NetBIOS-over-TCP/IP和NetWare/IP都使用UDP??磥碜詈唵蔚目尚修k法就是不允許建立入站UDP連接,防火墻設(shè)置為只許轉(zhuǎn)發(fā)來自內(nèi)部接口的UDP包,來自外部接口的UDP包則不轉(zhuǎn)發(fā)。
現(xiàn)在的問題是,比方說,DNS域名解析請求就使用UDP協(xié)議,如果你提供DNS服務(wù),至少得允許一些內(nèi)部請求穿越防火墻。還有,IRC這樣的客戶程序也使用UDP,如果要讓你的用戶使用它,就同樣要讓他們的UDP包進入網(wǎng)絡(luò)。我們能做的就是對那些從本地到可信任站點之間的連接進行限制。但是,什么叫可信任,如果黑客采取地址欺騙的方法不又回到老路上去了嗎?
有些新型路由器可以通過“記憶”出站UDP包來解決這個問題:如果入站UDP包匹配最近出站UDP包的目標(biāo)地址和端口號就讓它進來。如果在內(nèi)存中找不到匹配的UDP包就只好拒絕它了,如圖10-13所示。
圖10-13UDP動態(tài)數(shù)據(jù)包過濾
但是,我們?nèi)绾未_信產(chǎn)生數(shù)據(jù)包的外部主機就是內(nèi)部客戶機希望通信的服務(wù)器呢?如果黑客詐稱DNS服務(wù)器的地址,那么他在理論上當(dāng)然可以從DNS的UDP端口發(fā)起攻擊,只要你允許DNS查詢和解析包進入網(wǎng)絡(luò)這個問題就必然存在。辦法是采用代理服務(wù)器。
所謂代理服務(wù)器,顧名思義就是代表你的網(wǎng)絡(luò)和外界打交道的服務(wù)器。代理服務(wù)器不允許存在任何網(wǎng)絡(luò)內(nèi)外的直接連接。它本身就提供公共和專用的DNS、郵件服務(wù)器等多種功能。代理服務(wù)器重寫數(shù)據(jù)包而不是簡單地將其轉(zhuǎn)發(fā)了事。給人的感覺就是網(wǎng)絡(luò)內(nèi)部的主機都站在了網(wǎng)絡(luò)的邊緣,但實際上他們都躲在代理的后面,露面的不過是代理這個假面具。
10.4.5無狀態(tài)操作和有狀態(tài)檢查
使用源和目的端口對建立TCP連接的規(guī)則十分有用,因為TCP是面向連接的協(xié)議,UDP是一個無連接的協(xié)議。每一個UDP包是獨立的,在進行請求/響應(yīng)時,從每個包的頭部不可能確定一個流入包是不是前一個UDP包的響應(yīng)包。一條簡單的包過濾規(guī)則不可能控制使用UDP包的服務(wù)。
簡單的包過濾器,又稱為無狀態(tài)包過濾器,是在一個包接一個包的基礎(chǔ)上決定過濾的,無法創(chuàng)建依據(jù)一個包與另一個包的關(guān)系來進行過濾的規(guī)則。
動態(tài)包過濾技術(shù),也稱為有狀態(tài)檢查,是通過在內(nèi)存中保持一個對流入和流出包進行匹配的表而在更高層次上實施包過濾的概念。保留的信息通常包括源和目的地址以及源和目的端口。
每當(dāng)一個可信任的內(nèi)部主機與一個不可信任的外部主機建立一個TCP套接字時,同連接同步(SYN)包一起傳輸?shù)倪€有套接字信息(IP地址和端口)。當(dāng)SYN包被路由通過狀態(tài)檢查包過濾器時,過濾器將在它的狀態(tài)表中建立一個包含目標(biāo)套接字和響應(yīng)套接字的條目,然后將包發(fā)送到不可信任的網(wǎng)絡(luò)上。當(dāng)響應(yīng)返回時,過濾器簡單地在它的狀態(tài)表中查找包的源套接字和目標(biāo)套接字,如果查明它與希望的響應(yīng)匹配,就讓這個包通過。如果在狀態(tài)表中沒有這個條目,包就被放棄,因為它不是內(nèi)部網(wǎng)絡(luò)請求的。圖10-14表示的有狀態(tài)包過濾器的建立階段。圖10-14一個狀態(tài)檢查包過濾器允許返回的數(shù)據(jù)
當(dāng)TCP關(guān)閉連接數(shù)據(jù)包被發(fā)送通過過濾器時,或者在一段延遲之后,這段延遲通常是幾分鐘,過濾器就將這個條目從狀態(tài)表中刪除。這就保證了釋放的連接不會在狀態(tài)表中留下“漏洞”。
10.5堡壘主機(Bastion)
術(shù)語堡壘主機通常是指那些在安全方面能夠達到普通工作站所不能達到程度的計算機系統(tǒng)。這樣一個計算機系統(tǒng)會最大程度利用底層操作系統(tǒng)所提供的資源保護、審計和認(rèn)證機制等功能,并且對完成既定任務(wù)所不需要的應(yīng)用和服務(wù)都將從計算機系統(tǒng)中刪除,這樣就減少了成為受害目標(biāo)的機會。
同時,堡壘主機不保留用戶賬戶,軟件運行所必須的或主機管理員所需的服務(wù)都以最小特權(quán)為原則運行。
堡壘主機是最顯露的主機,因此也應(yīng)當(dāng)是最安全的主機。設(shè)計和構(gòu)筑堡壘主機有兩條基本原則:盡量簡單;隨時做好堡壘主機被損害的準(zhǔn)備。堡壘主機越簡單,它的安全越有保證。但即便如此,也沒有絕對安全的計算機系統(tǒng),入侵仍有可能發(fā)生。因此我們有理由強調(diào):如果堡壘主機被損害該怎么辦?
堡壘主機可以用于各種各樣的防火墻體系結(jié)構(gòu)當(dāng)中,而且堡壘主機的數(shù)量可以依照站點的具體需求及資源而定。通常在防火墻體系結(jié)構(gòu)當(dāng)中,我們使用一臺路由器來連接LAN和因特網(wǎng),而這個路由器可以完成數(shù)據(jù)包過濾功能。包過濾器是LAN和因特網(wǎng)之間的第一道防線,在那臺包過濾路由器之后,是一臺或幾臺堡壘主機為內(nèi)部網(wǎng)的用戶提供所需的代理服務(wù)。
通過堡壘主機可提供的服務(wù)很多,配置也不一樣,見圖10-15。但總的可以分成以下四類:
(1)安全的服務(wù):如果使用,可以通過包過濾器提供。
(2)提供的服務(wù)不安全,但可以采取安全措施彌補:在堡壘主機上提供。
(3)提供的服務(wù)不安全,也無法保證它的安全:盡量廢除這些服務(wù)。如果確實需要,專門提供一臺犧牲品主機。
(4)不使用的或者不與因特網(wǎng)連接的服務(wù):盡量廢除。
圖10-15堡壘主機可以運行各種各樣的因特網(wǎng)服務(wù)
堡壘主機應(yīng)該使用最安全的方式來配置它,當(dāng)然我們也必須使它能夠完成它自己的工作。安全總是用戶需求和網(wǎng)絡(luò)中潛在威脅的平衡產(chǎn)物,千萬不要忘記在因特網(wǎng)上每天都有新的威脅產(chǎn)生,不要忽視堡壘主機的配置過程。如果擁有一個商業(yè)的防火墻產(chǎn)品,請仔細閱讀廠商提供的文檔,特別是與操作系統(tǒng)相關(guān)的配置。
為加強作為堡壘主機的計算機系統(tǒng)的安全性,應(yīng)該著重考慮以下幾點:
(1)重新安裝一個安全版本的操作系統(tǒng)。
(2)關(guān)閉不必要的服務(wù)。
(3)刪除終端用戶的應(yīng)用程序,但這些應(yīng)用程序必須與堡壘主機的防火墻功能無關(guān)。
(4)使用操作系統(tǒng)的資源保護機制牢固控制對所有文件
和目錄的訪問。
(5)配置詳細的審計和安全日志。
(6)運行安全檢查程序以確定安全基準(zhǔn)。
10.6應(yīng)用網(wǎng)關(guān)和代理服務(wù)器
包過濾器工作在網(wǎng)絡(luò)傳輸層,通過檢查IP和其它協(xié)議的頭部信息來實現(xiàn)過濾。而代理服務(wù)器工作在應(yīng)用層,它能提供多種服務(wù)。網(wǎng)絡(luò)中所有的包必須經(jīng)過代理服務(wù)器來建立一個特別的連接,因而代理服務(wù)器提供了客戶和服務(wù)器之間的通路。另一個經(jīng)常用來表示代理服務(wù)器的專業(yè)術(shù)語是應(yīng)用網(wǎng)關(guān)(ApplicationGateway)。
與包過濾器中內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)傳輸?shù)氖窍嗤腎P包不同,代理服務(wù)器并不傳輸實際的包。它接收客戶的請求,然后代表客戶向服務(wù)器發(fā)出實際的請求。在客戶和服務(wù)器之間沒有實際的IP包經(jīng)過。代理服務(wù)器位于連接的中間,它分別向客戶和服務(wù)器通話來保持它們的連接。
包過濾器和代理服務(wù)器的主要區(qū)別之一就是代理服務(wù)器能夠理解各種高層應(yīng)用。包過濾器只能基于包頭部中的有限信息,通過編程來決定通過或者丟棄網(wǎng)絡(luò)包;而代理服務(wù)器是與特定的應(yīng)用相關(guān),它根據(jù)用戶想要執(zhí)行的功能,編程決定是允許或者拒絕對一個服務(wù)器的訪問。
在圖10-16中可以看到代理服務(wù)器是怎樣來阻塞內(nèi)部網(wǎng)和因特網(wǎng)之間實際的IP通信的。一個想要瀏覽某個Web頁面的用戶從工作站向因特網(wǎng)中的該頁面發(fā)出一個請求,因為用戶的瀏覽器被設(shè)置為向代理服務(wù)器發(fā)送HTTP請求,因此這個請求不會直接傳送到這個實際的Web服務(wù)器。
圖10-16代理服務(wù)器隔開了客戶同Web服務(wù)器的直接通信
實際上,代理服務(wù)器從它連接到本地網(wǎng)絡(luò)的網(wǎng)絡(luò)適配器接收請求,然而它并不將包含該請求的IP包路由(或者轉(zhuǎn)發(fā))到因特網(wǎng)中實際的目標(biāo)服務(wù)器。運行于代理服務(wù)器中的代理應(yīng)用程序根據(jù)一系列被管理員確認(rèn)的規(guī)則來決定是否允許該請求。如果允許,代理服務(wù)器就生成一個對該頁面的請求,并使用其它的(連接到因特網(wǎng)上的)網(wǎng)絡(luò)適配器地址作為請求的源地址。當(dāng)因特網(wǎng)上的Web服務(wù)器接收到該請求后,它只能認(rèn)為代理服務(wù)器是請求該頁面的客戶,然后它就將數(shù)據(jù)發(fā)送回代理服務(wù)器。
當(dāng)代理服務(wù)器接收到所請求的Web頁面以后,它并不是將這個IP包發(fā)往最初的請求客戶,而是對返回的數(shù)據(jù)進行一些管理員設(shè)置的檢查。如果通過了檢查,代理服務(wù)器就用它的本地網(wǎng)絡(luò)適配器地址創(chuàng)建一個新的IP包,將頁面數(shù)據(jù)發(fā)送到客戶。
正如我們看到的,阻塞IP通信并不是使用代理服務(wù)器的唯一好處。它可以針對請求類型執(zhí)行某些檢查,并檢查返回數(shù)據(jù)的內(nèi)容。另外,根據(jù)設(shè)置的一系列規(guī)則,我們可以讓代理服務(wù)器接受或拒絕某些數(shù)據(jù)。
對于允許客戶通過防火墻訪問的每一種網(wǎng)絡(luò)服務(wù),可能都需要一個獨立的代理服務(wù)器應(yīng)用程序。標(biāo)準(zhǔn)的代理應(yīng)用程序?qū)τ诘湫偷腡CP/IP應(yīng)用,例如FTP、Telnet以及像HTTP這樣流行的服務(wù)已經(jīng)足夠。不過對于新的服務(wù)或者那些很少使用的服務(wù),可能找不到代理軟件。
代理服務(wù)器的工作是雙向的??梢允褂么矸?wù)器來控制網(wǎng)絡(luò)內(nèi)部哪些用戶可以建立因特網(wǎng)請求,也可以使用它來決定哪些外部客戶或者主機可以向內(nèi)部網(wǎng)絡(luò)發(fā)送服務(wù)請求。在這兩種情況下,這兩個網(wǎng)絡(luò)之間都沒有直接的IP包通過。
10.6.1網(wǎng)絡(luò)地址轉(zhuǎn)換器
網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)是一個很流行的代理服務(wù)。防火墻的重要功能之一就是對外部網(wǎng)絡(luò)隱藏內(nèi)部網(wǎng)絡(luò)的信息。這些信息包括TCP/IP地址和網(wǎng)絡(luò)中工作站和服務(wù)器之間的確認(rèn)數(shù)據(jù)。為了隱藏主機信息,當(dāng)NAT代表內(nèi)部網(wǎng)絡(luò)的客戶在因特網(wǎng)上建立連接時,它使用自己的IP地址(或者某個IP地址范圍)。在受保護的網(wǎng)絡(luò)里,客戶之間使用分配的真實IP地址進行通信。當(dāng)一個請求被送往防火墻時,NAT應(yīng)用程序?qū)⒃吹刂纷侄翁鎿Q為它自己的地址。當(dāng)應(yīng)答返回到NAT應(yīng)用程序時,它將它自己的目標(biāo)地址字段替換為最初建立請求的客戶的地址。
實現(xiàn)NAT的地址映射有許多方法:
(1)一些NAT使用靜態(tài)地址分配(StaticTranslation,也稱為端口轉(zhuǎn)發(fā),PortForwarding),它們用NAT為內(nèi)部網(wǎng)絡(luò)的客戶綁定一個固定IP地址。
(2)使用動態(tài)地址分配(DynamicTranslation,也稱為自動模式,隱藏模式或IP偽裝)的NAT為訪問外部網(wǎng)絡(luò)的客戶分配1個IP地址。在客戶會話結(jié)束,或者超過某一時限后,合法的外部網(wǎng)絡(luò)地址會返回到地址池,等待下次分配,實現(xiàn)IP地址的復(fù)用。
NAT可以工作在單向方式,當(dāng)初始化外出的會話時,NAT為內(nèi)部網(wǎng)絡(luò)客戶分配一個網(wǎng)絡(luò)地址。它也可以工作在雙向方式,以便進入的目的IP地址可以被修改,從而發(fā)送數(shù)據(jù)包到處于內(nèi)部網(wǎng)絡(luò)的服務(wù)器。
1.基本NAT
到目前為止,所討論的有關(guān)網(wǎng)絡(luò)地址轉(zhuǎn)換的概念(靜態(tài)和動態(tài)分配)都是指基本NAT。這要求給NAT分配一個或多個有效因特網(wǎng)地址,以便用這些地址為內(nèi)部網(wǎng)絡(luò)用戶建立連接。這意味著在任何時刻,分配給NAT使用的有效IP地址應(yīng)該不小于連往外部網(wǎng)絡(luò)的會話數(shù)。如果給NAT分配10個可以使用的IP地址,那么在內(nèi)部網(wǎng)絡(luò)就只能有10個客戶同時向外部網(wǎng)絡(luò)建立連接。
圖10-17顯示了這樣一個例子。這里,分配給工作站A的網(wǎng)絡(luò)地址是。當(dāng)它請求建立因特網(wǎng)連接時,NAT從它的地址池中使用來建立實際的連接。
當(dāng)工作站B和C發(fā)出連接請求時,NAT使用地址池中接下來的兩個地址。然而,當(dāng)工作站D嘗試一個因特網(wǎng)連接時,NAT沒有可以使用的地址,因此它的請求會失敗。如果使用靜態(tài)NAT,工作站D的因特網(wǎng)連接請求永遠都不會成功。如果使用動態(tài)NAT,在一個工作站將它的地址返回到地址池以后,工作站D的連接請求就會成功。
圖10-17網(wǎng)絡(luò)地址翻譯
2.網(wǎng)絡(luò)地址端口轉(zhuǎn)換
如果使用的外出連接數(shù)是有限的,那么對于該網(wǎng)絡(luò)使用基本NAT可能是理想的。如果同時有許多用戶向外部建立連接,而NAT又沒有足夠多的有效IP地址,那么這種方法就不行了。前面章節(jié)介紹了套接字的概念,IP地址和端口號的組合被用于唯一地表示一個TCP或者UDP通信終端。一般的標(biāo)準(zhǔn)(并不一定要遵守)是將端口0~1023保留為服務(wù)器使用,客戶或者其它的應(yīng)用程序可以使用1024以上的端口。
例如,在一個TCP連接中,客戶會發(fā)送一個請求到服務(wù)器,在這個請求的頭部包含目標(biāo)IP地址和端口號信息以及客戶自己的源IP地址和端口號。端口號并不需要相互對應(yīng),它們只是唯一地標(biāo)識一個連接,以便主機能夠跟蹤是哪一個應(yīng)用程序在與其它主機上的哪個應(yīng)用程序進行通信。
客戶使用的目的地端口號通常被目標(biāo)服務(wù)器解釋為用戶所要求的某種服務(wù)。例如,Telnet服務(wù)器一般監(jiān)聽端口23。不過客戶發(fā)送包的源端口可以改變,重要的只是讓Telnet服務(wù)器知道用戶的端口號是多少,并在服務(wù)器發(fā)送應(yīng)答報文給客戶時使用該端口號。
你可能己經(jīng)明白接下來會討論什么。為了擴大允許的外部連接數(shù),而不需要增加分配給NAT的IP地址數(shù),一種新的稱為網(wǎng)絡(luò)地址端口轉(zhuǎn)換(networkaddressporttranslation,NAPT)的NAT能夠替換客戶的IP地址和源端口號。使用這種方法,通過改變源端口號,一個有效的因特網(wǎng)地址能夠為LAN中的多個客戶提供服務(wù)。NAPT服務(wù)器維護一張將客戶的連接轉(zhuǎn)換為外部IP地址和為該IP地址分配的唯一端口號的表,這樣就可以確定各個用戶的連接了。
下面我們來看一個例子。假設(shè)內(nèi)部主機要與外部主機5建立一條Web連接。主機利用某個可用的端口,例如1234,向主機5:80發(fā)送一個TCP包。
路由器/防火墻(內(nèi)部地址,外部地址)接收到這個包以后在翻譯表中記錄:
Source ::1234
PublicHost :5:80
Translation ::13344
然后使用翻譯后的地址和端口在因特網(wǎng)上傳輸該TCP包,因此5:80接收到來自:13344(防火墻外部地址)發(fā)出的連接請求。返回的響應(yīng)也就發(fā)送給:13344。防火墻接收到這個包以后在它的翻譯表中搜索匹配的套接字,證實這個包確實是一個內(nèi)部主機發(fā)出的請求。如果沒有發(fā)現(xiàn)匹配項,這個包丟棄并記錄下來。
最后防火墻用內(nèi)部源客戶的套接字參數(shù)進行替換,并將這個包發(fā)送到內(nèi)部網(wǎng)絡(luò)的最終客戶。圖10-18表示了整個過程。
圖10-18網(wǎng)絡(luò)端口地址翻譯
NAT所改變的其它數(shù)據(jù)
除了改變源IP地址并可能改變源端口號以外,別忘了其它一些字段也需要修改。它們是包頭部的校驗和字段。修改IP地址就需要重新計算校驗和,否則會導(dǎo)致該包在接收端被丟棄。
使用NAT的結(jié)果是可以使用一個因特網(wǎng)IP地址來代表內(nèi)部網(wǎng)絡(luò)的大量客戶。
10.6.2內(nèi)容屏蔽和阻塞
屏蔽因特網(wǎng)訪問是近年來一個很熱門的話題,它允許管理員阻塞內(nèi)部網(wǎng)絡(luò)的用戶對某些站點的訪問。一些產(chǎn)品允許詳細指明要阻塞的網(wǎng)站,而另一些產(chǎn)品阻塞網(wǎng)絡(luò)通信的內(nèi)容,可以設(shè)置要阻塞的詞語或者數(shù)據(jù)。畢竟,對于一個商業(yè)網(wǎng)絡(luò)來說,老板可能希望員工將時間花在工作上,而不是讓員工欣賞“有意思”的站點。
使用內(nèi)容屏蔽和阻塞技術(shù)不僅能限制員工將時間花在工作上,它也能減少法律責(zé)任。例如,如果一個員工下載了令人討厭的資料(像色情文學(xué)和讓人討厭的信息),并且當(dāng)他展示這些資料時其它員工認(rèn)為這是對他的攻擊,那么公司是否有責(zé)任呢?阻止要比發(fā)生以后再解決簡單得多。因此,目前內(nèi)容屏蔽和阻塞技術(shù)十分流行。
因為代理服務(wù)器位于客戶和提供網(wǎng)絡(luò)服務(wù)的服務(wù)器之間,所以有很多方法來進行內(nèi)容屏蔽或阻塞訪問。
(1)
URL地址阻塞:可以指定哪些URL地址會被阻塞(或者允許訪問)。這種方法的缺點就是因特網(wǎng)中的URL地址會經(jīng)常改變。每天都有成千上萬的頁面被添加進來,讓一個繁忙的管理員審查所有這些新頁面是不可能的。
(2)類別阻塞:這種方法可以指定阻塞含有某種內(nèi)容的數(shù)據(jù)包。例如,含有黃色內(nèi)容或者仇恨內(nèi)容的數(shù)據(jù)包。
(3)嵌入的內(nèi)容:一些代理軟件應(yīng)用程序能夠設(shè)置為阻塞Java、ActiveX控件,或者其它一些嵌入在Web請求的響應(yīng)里的對象。這些對象可以在本地計算機上運行應(yīng)用程序,因此可能會被黑客利用來獲得訪問權(quán)限。
內(nèi)容阻塞軟件并不是完美的,它不應(yīng)該是阻塞某些數(shù)據(jù)流入內(nèi)部網(wǎng)絡(luò)的唯一方法。盡管可以列出一長串的URL地址來阻塞用戶的訪問,但是有經(jīng)驗的用戶可以在HTTP請求中使用服務(wù)器的IP地址來通過這一檢查。更糟的是,IP地址并不一定要寫成點分十進制記法。一個IP地址實際是一個32位的數(shù)字,點分十進制記法只是一種通常的簡便記法。大多數(shù)瀏覽器會很樂意接受表示32位地址的十進制教(例如數(shù)值等于該32位二進制數(shù)的整數(shù))。以地址19為例,用二進制表示,其值分別是:
216=11011000
65=01000001
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度玻璃鋼儲罐工程竣工驗收與交付合同3篇
- 2025版新能源汽車充電設(shè)施建設(shè)投資合同樣本4篇
- 2025年電梯門套智能化改造升級工程合同4篇
- 25、2025年度接送機服務(wù)及機場候機樓Wi-Fi服務(wù)合同3篇
- 二零二五年度油氣田打井工程承包合同3篇
- 2025年度航空航天個人勞務(wù)用工合同范本2篇
- 2025年度民間借款擔(dān)保與信用評級合作合同樣本4篇
- 二零二五年度苗木市場信息共享與采購合同4篇
- 2025版民營醫(yī)院實習(xí)生勞動合同示范文本4篇
- 2025年度智能家居系統(tǒng)集成服務(wù)與采購合同
- 中央2025年國務(wù)院發(fā)展研究中心有關(guān)直屬事業(yè)單位招聘19人筆試歷年參考題庫附帶答案詳解
- 2024年09月北京中信銀行北京分行社會招考(917)筆試歷年參考題庫附帶答案詳解
- 外呼合作協(xié)議
- 小學(xué)二年級100以內(nèi)進退位加減法800道題
- 保險公司2025年工作總結(jié)與2025年工作計劃
- 2024年公司領(lǐng)導(dǎo)在新年動員會上的講話樣本(3篇)
- 眼科護理進修專題匯報
- 介入手術(shù)室感染控制管理
- 2024北京初三(上)期末英語匯編:材料作文
- 2024年大型風(fēng)力發(fā)電項目EPC總承包合同
- 禮儀服務(wù)合同三篇
評論
0/150
提交評論