计算机基础(2)— windows 防火墙对FTP服务器、HTTP服务器的影响
window 防火墻對(duì)FTP服務(wù)器、HTTP服務(wù)器的影響
01. win7關(guān)閉防火墻功能
單擊左下角的【開(kāi)始】按鈕 —>【控制面板】—>【系統(tǒng)和安全】—>【W(wǎng)indows 防火墻】—>【打開(kāi)或關(guān)閉Windows防火墻】
小記:可通過(guò)下圖路徑設(shè)置允許通過(guò)防火墻的程序或功能
02. window 防火墻對(duì)FTP服務(wù)器的影響
FTP(File Transfer Protocol,文件傳輸協(xié)議) 是 TCP/IP 協(xié)議組中的協(xié)議之一。FTP協(xié)議包括兩個(gè)組成部分,其一為FTP服務(wù)器,其二為FTP客戶端。其中FTP服務(wù)器用來(lái)存儲(chǔ)文件,用戶可以使用FTP客戶端通過(guò)FTP協(xié)議訪問(wèn)位于FTP服務(wù)器上的資源。在開(kāi)發(fā)網(wǎng)站的時(shí)候,通常利用FTP協(xié)議把網(wǎng)頁(yè)或程序傳到Web服務(wù)器上。此外,由于FTP傳輸效率非常高,在網(wǎng)絡(luò)上傳輸大的文件時(shí),一般也采用該協(xié)議。
默認(rèn)情況下FTP協(xié)議使用TCP端口中的 20和21這兩個(gè)端口,其中20用于傳輸數(shù)據(jù),21用于傳輸控制信息。但是,是否使用20作為傳輸數(shù)據(jù)的端口與FTP使用的傳輸模式有關(guān),如果采用主動(dòng)模式,那么數(shù)據(jù)傳輸端口就是20;如果采用被動(dòng)模式,則具體最終使用哪個(gè)端口要服務(wù)器端和客戶端協(xié)商決定。
在此以一個(gè)在實(shí)際環(huán)境中比較常見(jiàn)的FTP部署和應(yīng)用拓?fù)錇槔?#xff0c;來(lái)詳細(xì)解讀防火墻(啟用了NAT功能)對(duì)FTP的影響。
(此例來(lái)源:http://www.5iadmin.com/post/919.html)
(1)網(wǎng)絡(luò)拓?fù)鋱D
(2)主動(dòng)模式的連接分析
如本例中網(wǎng)絡(luò)拓?fù)渌?#xff0c;IP為192.168.1.1客戶端計(jì)算機(jī)打開(kāi)一個(gè)可用的TCP端口1025,經(jīng)過(guò)其前端的防火墻進(jìn)行NAT轉(zhuǎn)換成地址1.1.1.1和端口1025后建立到目標(biāo)地址為2.2.2.2的21端口的連接,然后服務(wù)器前端的防火墻將此連接信息傳遞到服務(wù)器172.16.6.1的21端口,成功建立FTP控制連接。
服務(wù)器則經(jīng)由這個(gè)已經(jīng)建立的邏輯連接通道返回?cái)?shù)據(jù)包,與客戶端進(jìn)行交互。接著,客戶端發(fā)出PORT指令,在指令中嵌入了地址信息(IP:192.168.1.1,Port:1026),告知服務(wù)器用于數(shù)據(jù)連接,并打開(kāi)端口1026,等待服務(wù)器連接。當(dāng)承載PORT指令的數(shù)據(jù)包到達(dá)客戶機(jī)前端的防火墻時(shí),由于NAT的緣故,在成功創(chuàng)建NAT表項(xiàng),改寫數(shù)據(jù)包的IP和TCP端口信息后:
如果此時(shí)防火墻不能識(shí)別并檢查此連接是FTP應(yīng)用,便不能對(duì)PORT指令中嵌入的地址和端口信息進(jìn)行改寫,則將此數(shù)據(jù)包通過(guò)先前已建立的控制連接通道傳遞到服務(wù)器后,服務(wù)器則打開(kāi)20端口,將建立到192.168.1.1的1026端口的數(shù)據(jù)連接。
顯然,此連接數(shù)據(jù)包要么被其前端的防火墻丟棄,要么在流入因特網(wǎng)后立刻被丟棄,永遠(yuǎn)無(wú)法到達(dá)客戶端。在這種情況下,客戶端一直處在控制連接階段發(fā)送含有PORT指令的數(shù)據(jù)包,以便建立數(shù)據(jù)連接;而服務(wù)器則在打開(kāi)了20端口后,一直嘗試建立到客戶端的數(shù)據(jù)連接,但始終收不到應(yīng)答。
直接的結(jié)果就是:客戶端成功連接了FTP服務(wù)器,卻無(wú)法進(jìn)行數(shù)據(jù)傳輸。這里可能還包含一個(gè)隱藏的安全威脅:如果恰巧192.168.1.1對(duì)于服務(wù)器主機(jī)來(lái)說(shuō)是直接可達(dá)的,則此時(shí)服務(wù)器便將數(shù)據(jù)包發(fā)送到這臺(tái)計(jì)算機(jī),在這兩臺(tái)主機(jī)之間產(chǎn)生莫名的數(shù)據(jù)流。其他可能更隱蔽、更不好的情況,筆者不再做假設(shè)論述了。
如果此時(shí)防火墻能支持對(duì)FTP應(yīng)用進(jìn)行審查和跟蹤,即能識(shí)別PORT指令中的內(nèi)容,就將其中嵌入的地址信息改寫成(IP:1.1.1.1,PORT:1026)并動(dòng)態(tài)打開(kāi)1026端口,并建立新的NAT轉(zhuǎn)換表項(xiàng),等待連接,則當(dāng)服務(wù)器收到PORT指令后,打開(kāi)20端口,建立到1.1.1.1上1026端口的連接,成功交互后,便能進(jìn)行數(shù)據(jù)傳輸了。
(3)被動(dòng)模式的連接分析
控制連接建立后,客戶端發(fā)出的PASV指令到達(dá)服務(wù)器,服務(wù)器則隨機(jī)打開(kāi)一個(gè)可用的TCP端口,并將地址和端口信息(IP:172.16.6.1,Port:50000)返回給客戶端,告知客戶端利用這些信息進(jìn)行數(shù)據(jù)連接。當(dāng)包含服務(wù)器地址信息的這個(gè)數(shù)據(jù)包到達(dá)其前端的防火墻時(shí):
如果防火墻不能識(shí)別并檢查此數(shù)據(jù)包的應(yīng)用層數(shù)據(jù),無(wú)法判定它是FTP的PASV指令的返回包,并對(duì)其中嵌入的地址信息進(jìn)行重寫,則當(dāng)此數(shù)據(jù)包返回到客戶端時(shí),客戶端將隨機(jī)打開(kāi)端口3000,以目的地址172.16.6.1、端口50000來(lái)進(jìn)行數(shù)據(jù)連接,同理,此連接數(shù)據(jù)包永遠(yuǎn)不能到達(dá)服務(wù)器端。
這種情況下,客戶端將一直嘗試建立數(shù)據(jù)連接,卻總是不能收到應(yīng)答。這里可能包含的隱藏安全威脅,如前所述。
如果防火墻能對(duì)FTP應(yīng)用進(jìn)行審查和跟蹤,并將返回包中嵌入的服務(wù)器地址信息進(jìn)行重寫,即轉(zhuǎn)換成(IP:2.2.2.2,Port:50000),然后建立新的NAT表項(xiàng),動(dòng)態(tài)打開(kāi)50000端口,等待連接。則此返回包到達(dá)客戶端時(shí),客戶端將隨機(jī)打開(kāi)端口3000,以目的地址2.2.2.2、端口50000來(lái)新建連接,便能成功建立數(shù)據(jù)連接。
根據(jù)以上分析,為成功進(jìn)行FTP數(shù)據(jù)傳輸,主動(dòng)模式下要求客戶機(jī)前端的防火墻在啟用NAT后能對(duì)FTP應(yīng)用進(jìn)行審查和跟蹤,識(shí)別并改寫PORT指令中的客戶端地址信息;被動(dòng)模式下則要求服務(wù)器前端的防火墻能改寫服務(wù)器響應(yīng)PASV指令后返回?cái)?shù)據(jù)包中的服務(wù)器地址信息。
當(dāng)然,為保險(xiǎn)起見(jiàn),為保證FTP應(yīng)用的正常使用,建議兩端的防火墻都需要支持對(duì)FTP進(jìn)行識(shí)別和內(nèi)容審查。
(4)網(wǎng)絡(luò)防火墻與FTP
大多數(shù)網(wǎng)管設(shè)置防火墻的默認(rèn)訪問(wèn)控制策略是:允許從內(nèi)部到外部的一切流量,禁止從外部到內(nèi)部的一切流量。
就FTP應(yīng)用來(lái)說(shuō),為了簡(jiǎn)化防火墻策略的配置又兼顧安全策略要求,客戶機(jī)選擇被動(dòng)模式進(jìn)行數(shù)據(jù)連接較好,不需要對(duì)其前端的防火墻設(shè)置特別的訪問(wèn)控制策略,但要求服務(wù)器前端的防火墻能動(dòng)態(tài)打開(kāi)數(shù)據(jù)連接所需的隨機(jī)端口;服務(wù)器端則選擇主動(dòng)連接較好,為允許客戶端的訪問(wèn),其前端防火墻的訪問(wèn)控制策略僅需要顯式對(duì)外開(kāi)放21端口即可,但需要客戶機(jī)前端的防火墻能動(dòng)態(tài)打開(kāi)數(shù)據(jù)連接所需的端口。
從方便使用的角度考慮,既然提供FTP服務(wù),就要配置好服務(wù)器前端的防火墻,使其訪問(wèn)控制策略能支持兩種模式下的FTP服務(wù)正常工作。
如果客戶機(jī)前端的NAT設(shè)備為路由器,不是防火墻,并不能審查和跟蹤FTP應(yīng)用,從前面的分析可以推斷出,主動(dòng)模式下肯定存在連接性問(wèn)題,需要以被動(dòng)方式建立數(shù)據(jù)連接才能成功使用FTP服務(wù)。
如果FTP控制端口非默認(rèn),而是定制的TCP端口(比如2121),在這種情況下,服務(wù)器前端的防火墻通過(guò)配置命令顯式指示FTP的控制端口,便能進(jìn)行審查和跟蹤。但客戶機(jī)前端的防火墻即使其能識(shí)別默認(rèn)端口下的FTP應(yīng)用,此時(shí)也會(huì)把控制端口非21的FTP服務(wù)當(dāng)作一般的TCP應(yīng)用對(duì)待,這種情形下,便不能改寫主動(dòng)模式下的客戶端地址端口信息,導(dǎo)致服務(wù)器在建立數(shù)據(jù)連接時(shí)失敗,但客戶端使用被動(dòng)連接模式能正常工作。
綜上所述,客戶端使用被動(dòng)方式連接FTP服務(wù)器是最恰當(dāng)?shù)?#xff0c;能最大限度地降低連接性問(wèn)題。同時(shí)降低了對(duì)客戶機(jī)前端防火墻備的要求,不需要像主動(dòng)方式那樣動(dòng)態(tài)開(kāi)放允許輸入的隨機(jī)端口,把可能的安全威脅推給了服務(wù)器端。這或許是微軟的IE瀏覽器(資源管理器)默認(rèn)設(shè)置使用被動(dòng)方式的原因。如圖表2所示。另外需要注意的,在Windows命令行下,FTP默認(rèn)是使用主動(dòng)方式進(jìn)行數(shù)據(jù)連接的。
(5)主機(jī)防火墻與FTP
如果將FTP服務(wù)器架設(shè)在Windows Server 2008上,由于它內(nèi)置Windows防火墻,而且默認(rèn)已經(jīng)啟用,所以客戶端建立到這臺(tái)FTP服務(wù)器的控制連接便會(huì)被封鎖,此時(shí)需要在防火墻上開(kāi)放對(duì)TCP 21端口的傳入連接。
被動(dòng)模式下,由于服務(wù)器通過(guò)控制信道將用來(lái)監(jiān)聽(tīng)客戶端請(qǐng)求的端口號(hào)是隨機(jī)產(chǎn)生的,此時(shí)需要在防火墻上開(kāi)放的傳入連接的端口也是隨機(jī)的。由于Windows防火墻不能像網(wǎng)絡(luò)防火墻那樣根據(jù)需要?jiǎng)討B(tài)打開(kāi)和關(guān)閉FTP服務(wù)要求的隨機(jī)端口,所以需要靜態(tài)開(kāi)放全部可能的隨機(jī)端口。
Windows Server 2008默認(rèn)的動(dòng)態(tài)端口范圍是49152-65535,而Windows防火墻的例外開(kāi)放規(guī)則只能針對(duì)單一端口來(lái)開(kāi)放,要開(kāi)放49152-65535這個(gè)范圍內(nèi)的一萬(wàn)多個(gè)端口,非常不切實(shí)際,更是會(huì)給運(yùn)行FTP服務(wù)器的主機(jī)帶來(lái)嚴(yán)重的安全威脅。
所幸的是,基于IIS7.0建立的FTP服務(wù)器允許將端口號(hào)固定在自行指定的一個(gè)范圍中,如50000-50005,此時(shí)便只需要開(kāi)放這一小段范圍的端口即可,大大提升了安全性和配置Windows防火墻的效率。如果服務(wù)器上部署的是第三方防火墻,則需要慎重考慮如何設(shè)置使之能安全保障FTP服務(wù)的正常運(yùn)行。
03. window 防火墻對(duì)http服務(wù)器的影響(部分)
(1)包過(guò)濾
根據(jù)對(duì)防火墻的定義,凡是能有效阻止網(wǎng)絡(luò)非法連接的方式,都算防火墻。早期的防火墻一般就是利用設(shè)置的條件,監(jiān)測(cè)通過(guò)的包的特征來(lái)決定放行或者阻止的,包過(guò)濾是很重要的一種特性。雖然防火墻技術(shù)發(fā)展到現(xiàn)在有了很多新的理念提出,但是包過(guò)濾依然是非常重要的一環(huán),如同四層交換機(jī)首要的仍是要具備包的快速轉(zhuǎn)發(fā)這樣一個(gè)交換機(jī)的基本功能一樣。通過(guò)包過(guò)濾,防火墻可以實(shí)現(xiàn)阻擋攻擊,禁止外部/內(nèi)部訪問(wèn)某些站點(diǎn),限制每個(gè)ip的流量和連接數(shù)。
(2)包的透明轉(zhuǎn)發(fā)
事實(shí)上,由于防火墻一般架設(shè)在提供某些服務(wù)的服務(wù)器前。如果用示意圖來(lái)表示就是 Server—FireWall—Guest 。用戶對(duì)服務(wù)器的訪問(wèn)的請(qǐng)求與服務(wù)器反饋給用戶的信息,都需要經(jīng)過(guò)防火墻的轉(zhuǎn)發(fā),因此,很多防火墻具備網(wǎng)關(guān)的能力。
(3)阻擋外部攻擊
如果用戶發(fā)送的信息是防火墻設(shè)置所不允許的,防火墻會(huì)立即將其阻斷,避免其進(jìn)入防火墻之后的服務(wù)器中。
(4)記錄攻擊
如果有必要,其實(shí)防火墻是完全可以將攻擊行為都記錄下來(lái)的,但是由于出于效率上的考慮,目前一般記錄攻擊的事情都交給IDS來(lái)完成了,
相關(guān)參考資料:
HTTP代理與防火墻
為什么http不保持與客戶端的tcp連接
防火墻HTTP服務(wù)的安全性研究
總結(jié)
以上是生活随笔為你收集整理的计算机基础(2)— windows 防火墙对FTP服务器、HTTP服务器的影响的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MAYA打造地震后的古城场景-3D建模场
- 下一篇: 【Android初学者】UI组件 介绍