Windows防火牆的打開與關閉
1、在Windows10中打開 和關閉防火牆
我們點擊Windows10系統下的cortana,並輸入防火牆即可找到Windows防火牆。
在下圖所示的界面中我們可以對防火牆進行打開或者關閉的操作
2、在虛擬機的windows7系統中打開和關閉防火牆
我們點擊坐下角的開始,點開控制面板
之後在控制面板的頁面中選擇系統和安全
可以發現Windows防火牆的選項
點擊打開或者關閉防火牆選項可以完成對防火牆狀態的修改工作
windows防火牆對FTP服務器的影響
FTP
是常見的基於TCP
的網絡服務,它使用了兩個TCP連接
來建立邏輯通信信道,即控制連接
和數據連接
。當客戶端與服務器建立一個FTP會話時,使用TCP創建一個持久的控制連接
以傳遞命令和應答。當發送文件和其它數據傳輸時,它們在獨立的TCP數據連接
上進行傳遞,這個連接根據需要創建和拆除。
更爲複雜的是,FTP標準指定了創建數據連接
的兩種不同方法,即正常(主動)數據連接
和被動數據連接
。FTP的控制連接
總是由客戶端
首先發起的,主動數據連接
是由客戶端
發起的,被動數據連接
是由服務器端
發起的。
成功建立控制連接
後,在進行主動連接時,客戶端發送PORT命令
,其中內嵌了地址和端口信息
,以告知服務器進行連接,然後服務器打開默認端口20
建立到客戶端已告知地址和端口
的數據連接。在進行被動連接時,客戶機使用PASV命令
告訴服務器等待客戶機建立數據連接,服務器響應,告訴客戶機爲了數據傳輸它應該使用服務器上的什麼端口(隨機打開)。這種工作機制帶來了一個嚴重的問題:在FTP的命令(PORT或PASV)或對它們的回答中傳遞IP地址及端口號與網絡分層機制嚴重衝突
,在FTP客戶端與服務器的通信信道之間的網關設備(防火牆或路由器)上啓用了NAT功能的情況下將出現連接性問題
。
防火牆對於像FTP這樣的多端口連接的TCP應用,其影響是深遠的,在複雜的網絡環境中,更是由於設備、軟件的多樣性可能導致不可預知的問題。作爲一名網絡管理員,深入瞭解防火牆和FTP的工作原理及其在NAT環境下防火牆對FTP的影響,對於選擇FTP服務軟件及安裝、部署、管理及維護FTP服務和實際工作中排除FTP應用故障是大有裨益的。本文就以一個在實際環境中比較常見的FTP部署和應用拓撲爲例,來詳細解讀防火牆(啓用了NAT功能)對FTP
的影響。如有不當之處,敬請指正。
一、網絡拓撲圖
二、主動模式的連接分析
如本例中網絡拓撲所示,IP爲192.168.1.1客戶端計算機打開一個可用的TCP端口1025
,經過其前端的防火牆
進行NAT轉換成地址1.1.1.1和端口1025後建立到目標地址爲2.2.2.2的21端口的連接
,然後服務器前端的防火牆將此連接信息傳遞到服務器172.16.6.1的21端口,成功建立FTP控制連接。
服務器則經由這個已經建立的邏輯連接通道返回數據包,與客戶端進行交互。接着,客戶端發出PORT指令
,在指令中嵌入了地址信息(IP:192.168.1.1,Port:1026)
,告知服務器用於數據連接,並打開端口1026,等待服務器連接。當承載PORT指令的數據包到達客戶機前端的防火牆時,由於NAT的緣故,在成功創建NAT表項,改寫數據包的IP和TCP端口信息後:
如果此時防火牆
不能識別並檢查此連接是FTP應用,便不能對PORT指令
中嵌入的地址和端口信息進行改寫,則將此數據包通過先前已建立的控制連接通道傳遞到服務器後,服務器則打開20端口
,將建立到192.168.1.1的1026端口的數據連接
。
顯然,此連接數據包要麼被其前端的防火牆丟棄,要麼在流入因特網後立刻被丟棄,永遠無法到達客戶端
。在這種情況下,客戶端一直處在控制連接階段發送含有PORT指令的數據包,以便建立數據連接;而服務器則在打開了20端口後,一直嘗試建立到客戶端的數據連接,但始終收不到應答。
直接的結果就是:客戶端成功連接了FTP服務器,卻無法進行數據傳輸
。這裏可能還包含一個隱藏的安全威脅:如果恰巧192.168.1.1對於服務器主機來說是直接可達的,則此時服務器便將數據包發送到這臺計算機,在這兩臺主機之間產生莫名的數據流。其他可能更隱蔽、更不好的情況,筆者不再做假設論述了。
如果此時防火牆
能支持對FTP應用進行審查和跟蹤
,即能識別PORT指令中的內容,就將其中嵌入的地址信息改寫成(IP:1.1.1.1,PORT:1026)並動態打開1026端口,並建立新的NAT轉換表項,等待連接,則當服務器收到PORT指令後,打開20端口,建立到1.1.1.1上1026端口的連接,成功交互後,便能進行數據傳輸了。
三、被動模式的連接分析
控制連接建立後,客戶端發出的PASV指令
到達服務器,服務器則隨機打開一個可用的TCP端口,並將地址和端口信息(IP:172.16.6.1,Port:50000)返回給客戶端,告知客戶端利用這些信息進行數據連接。當包含服務器地址信息的這個數據包到達其前端的防火牆時:
如果防火牆不能識別並檢查此數據包的應用層數據,無法判定它是FTP的PASV指令的返回包,並對其中嵌入的地址信息進行重寫
,則當此數據包返回到客戶端時,客戶端將隨機打開端口3000,以目的地址172.16.6.1、端口50000來進行數據連接,同理,此連接數據包永遠不能到達服務器端
。
這種情況下,客戶端將一直嘗試建立數據連接,卻總是不能收到應答。這裏可能包含的隱藏安全威脅,如前所述。
如果防火牆能對FTP應用進行審查和跟蹤,並將返回包中嵌入的服務器地址信息進行重寫,即轉換成(IP:2.2.2.2,Port:50000),然後建立新的NAT表項,動態打開50000端口,等待連接。則此返回包到達客戶端時,客戶端將隨機打開端口3000,以目的地址2.2.2.2、端口50000來新建連接,便能成功建立數據連接
。
根據以上分析,爲成功進行FTP數據傳輸,主動模式
下要求客戶機前端的防火牆在啓用NAT後能對FTP應用進行審查和跟蹤,識別並改寫PORT指令中的客戶端地址信息
;被動模式下則要求服務器前端的防火牆能改寫服務器響應PASV指令後返回數據包中的服務器地址信息
。
當然,爲保險起見,爲保證FTP應用的正常使用,建議兩端的防火牆都需要支持對FTP進行識別和內容審查
。
四、網絡防火牆與FTP
大多數網管設置防火牆的默認訪問控制策略是:允許從內部到外部的一切流量,禁止從外部到內部的一切流量。
就FTP應用來說,爲了簡化防火牆策略的配置又兼顧安全策略要求,客戶機選擇被動模式進行數據連接較好,不需要對其前端的防火牆設置特別的訪問控制策略,但要求服務器前端的防火牆能動態打開數據連接所需的隨機端口;服務器端則選擇主動連接較好,爲允許客戶端的訪問,其前端防火牆的訪問控制策略僅需要顯式對外開放21端口即可,但需要客戶機前端的防火牆能動態打開數據連接所需的端口。
從方便使用的角度考慮,既然提供FTP服務,就要配置好服務器前端的防火牆
,使其訪問控制策略能支持兩種模式下的FTP服務正常工作。
如果客戶機前端的NAT設備爲路由器,不是防火牆,並不能審查和跟蹤FTP應用,從前面的分析可以推斷出,主動模式下肯定存在連接性問題,需要以被動方式建立數據連接才能成功使用FTP服務。
如果FTP控制端口非默認
,而是定製的TCP端口(比如2121)
,在這種情況下,服務器前端的防火牆通過配置命令顯式指示FTP的控制端口,便能進行審查和跟蹤
。但客戶機前端的防火牆即使其能識別默認端口下的FTP應用,此時也會把控制端口非21的FTP服務當作一般的TCP應用對待,這種情形下,便不能改寫主動模式下的客戶端地址端口信息,導致服務器在建立數據連接時失敗,但客戶端使用被動連接模式能正常工作
。
綜上所述,客戶端使用被動方式連接FTP服務器
是最恰當的,能最大限度地降低連接性問題。同時降低了對客戶機前端防火牆備的要求,不需要像主動方式那樣動態開放允許輸入的隨機端口,把可能的安全威脅推給了服務器端。這或許是微軟的IE瀏覽器(資源管理器)默認設置使用被動方式的原因。如圖表2所示。另外需要注意的,在Windows命令行下,FTP默認是使用主動方式進行數據連接的
。
五、主機防火牆與FTP
如果將FTP服務器架設在Windows Server 2008上,由於它內置Windows防火牆,而且默認已經啓用,所以客戶端建立到這臺FTP服務器的控制連接便會被封鎖,此時需要在防火牆上開放對TCP 21端口的傳入連接。
被動模式下,由於服務器通過控制信道將用來監聽客戶端請求的端口號是隨機產生的,此時需要在防火牆上開放的傳入連接的端口也是隨機的。由於Windows防火牆不能像網絡防火牆那樣根據需要動態打開和關閉FTP服務要求的隨機端口,所以需要靜態開放全部可能的隨機端口。
Windows Server 2008默認的動態端口範圍是49152-65535,而Windows防火牆的例外開放規則只能針對單一端口來開放,要開放49152-65535這個範圍內的一萬多個端口,非常不切實際,更是會給運行FTP服務器的主機帶來嚴重的安全威脅。
所幸的是,基於IIS7.0建立的FTP服務器允許將端口號固定在自行指定的一個範圍中,如50000-50005,此時便只需要開放這一小段範圍的端口即可,大大提升了安全性和配置Windows防火牆的效率。如果服務器上部署的是第三方防火牆,則需要慎重考慮如何設置使之能安全保障FTP服務的正常運行。