史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 應用軟體使用技術文件
忘記密碼?
註冊帳號 論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2003-11-13, 03:32 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 FTP傳輸協定對防火牆安全性的挑戰

FTP傳輸協定對防火牆安全性的挑戰

作者:Stefaan Pouseele 2002年7月

最後更新: 09/08/2003

翻譯: Littlefat 2003年9月29日

(最後將附上完整的中文DOC和中英文對照DOC,翻譯疏漏和差錯之處,歡迎指正)
原文URL:
http://www.isaserver.org/articles/Ho..._Security.html

(轉貼請保持完整,引用請指明出處)
1. 摘要
FTP(文件傳輸傳輸協定)是最流行,但也幾乎是最容易被錯誤理解的傳輸協定之一。

最一般也是被問得最多的問題之一是:為什麼一些特定的FTP客戶端或者伺服器配置在防火牆、路由器和其他Internet連接設備的環境中不能工作。如果網路和防火牆的管理員理解FTP傳輸協定是如何工作的,他們在碰到這些和FTP相關的問題時就比較容易解決了。

在這篇文章中,我們會關注以下的問題:

· FTP傳輸協定是如何工作的

· FTP傳輸協定帶來的挑戰

· 解決FTP傳輸協定的問題

· 關於Secure FTP

必須說明,在這篇文章中,我們只會從FTP連通性的角度來看問題,即我們只對FTP傳輸協定是怎樣連接的和那些連接之間有什麼相互關係感興趣。

我們不會關心某個特定的FTP客戶端和FTP伺服器軟體應該如何配置。

2. FTP傳輸協定是如何工作的?

2.1. 一些歷史(背景)

自從文件傳輸傳輸協定(FTP)在1970年代出現以來,它已經成為第一個在TCP/IP網路上建立的文件交換標準之一。FTP的設計有很大的可伸縮性,所以FTP傳輸協定也可以在非TCP/IP網路上使用,也可以在多種不同類型的設備間互相交換文件。

FTP傳輸協定設計成客戶端和伺服器端在最少限制條件下互相交互。換句話說,FTP的設計是關於(假設)資料包(能夠)直接傳送到目的地的(條件下)建立在通道上通訊。

這和現在的網路環境中可能有中間設備(防火牆,NAT設備等等)來負責將資料包從一個主機傳遞(傳入和傳出)到一個私有網路的情形形成鮮明對比。

(FTP傳輸協定的)基本的描述我的文件是1985年10月的 RFC 959 。這裡還有一些和FTP傳輸協定相關的RFCs我的文件。你可以在RFC Sourcebook中找到所有有關FTP傳輸協定的技術我的文件的索引。

2.2. FTP模式

FTP使用TCP傳輸傳輸協定建立端到端的可靠連接。

FTP會使用兩個連接:
第一個是控制連接,第二個是管理資料傳輸的資料連接。首先開始啟始化控制連接的用戶被視作客戶端,伺服器端的功能則是由遠端主機提供的。
在FTP套用的兩端都有一個傳輸協定解釋器(PI)和一個資料傳送行程(DTP)。

在連接的客戶端還有一個用戶界面。

用戶界面和傳輸協定解釋器通訊,而傳輸協定解釋器掌控著控制連接。傳輸協定解釋器除了要對控制連接做出反應,還要管理資料連接。在文件傳輸期間,資料管理是DTP實現的。

2.3. FTP傳輸協定模式

FTP傳輸協定是一個複雜的傳輸協定,因為它要用到一個控制連接(第一連接)和一個資料連接(第二連接)。

資料連接(第二連接)是怎樣產生的取決於FTP傳輸協定模式。
FTP有兩種模式:

· 普通或連接埠活動模式

· 被動或被動模式

我們現在來看看連接新增的細節有何不同,它們之間又有怎樣的關係。

2.4. 控制連接

控制連接是USER-PI和SERVER-PI之間交換指令和回應的通訊通道。這種連接和Telnet傳輸協定類似。

當一個FTP客戶端希望和一個FTP伺服器交換文件時,FTP客戶端必須首先建立控制連接。客戶端使用一個沒有什麼特別的連接埠N(N>1023)來和伺服器的眾所周知的連接埠21(IANA分配的)建立一個TCP連接。

信息流轉如下圖所顯示:

要注意的是資料傳輸的程序中控制連接仍需要保持。

換句話說,沒有控制連接資料連接就不可能存在。另一方面,在一個控制連接的會話期間(即整個FTP會話期間--譯者注),資料連接不需要時刻存在,並且一個控制連接會話期間可能有多個資料連接同時存在。最後需要注意,客戶端有責任在使用FTP服務結束後,主動關閉控制連接。但是不管怎樣,伺服器也會發出關閉控制連接的動作。

2.5. 資料連接

資料連接是USER-DTP和SERVER-DTP間用來交換真正資料的通訊通道。

按照所選項FTP模式的不同,資料連接是由伺服器端啟始化(連接埠模式(或活動模式))或者是客戶端啟始化的(被動模式)。

在連接埠模式(active mode)中,客戶端傳送PORT指令到伺服器,這個指令告訴伺服器如果要和客戶端建立資料連接應該使用哪個主機(IP位址)和哪個連接埠(大於1023)。

在伺服器接受了PORT指令後,它會使用自己的連接埠20(IANA指定)和從PORT指令中得知的(客戶端的)IP位址和連接埠號和客戶端建立資料連接。

在被動(Passive Mode)模式中,客戶端傳送PASV指令到伺服器,(客戶端使用)這個指令是詢問伺服器將會在哪個資料連接埠(不是預設的20連接埠)「偵聽」並等待(客戶端主動過來)連接而不是(直接和伺服器)建立一個資料連接。如果伺服器支持被動模式,它會回應這個指令,回應包中包含了主機(IP位址)和伺服器(啟用的)正在偵聽的連接埠號(大於1023)。

然後客戶端會在本機隨機找一個空閒的連接埠(大於1023)來和從伺服器的回應中得到的IP位址和連接埠號(與伺服器)建立資料連接。

需要注意的是資料連接只有在收諸如LIST,RETR,STORE等傳送指令的回應後才會被建立。

所以,FTP模式必須在客戶端傳送傳送指令之前確定。而且,那些傳送指令會得到不止一個回復:第一個回應('Positive Preliminary Reply')是表明資料傳送可以開始,而在資料傳輸結束後會傳送第二個回應('Positive Completion Reply')。

信息流轉如下圖所顯示:

我盡量將圖畫得淺顯易懂。我的目的是要說明,最重要的信息是誰向誰、用哪個連接埠來啟始化控制連接和資料連接。這在圖中已經表示得很清楚了。

如果你對更深的技術細節感興趣,你可以參考相關的RFC我的文件。
3. FTP傳輸協定帶來的挑戰
在下面的討論中我假設你只有基本
的包過濾(防護手段)來保護你不被入侵。這種情形看起來已經過時了,但是現在仍然有很多實際的套用環境中只有基本的包過濾防護。基本包過濾只能單獨分析每個包,而不會關心連接狀態和包與包之間的關係。

註: RFC1579我的文件中有關於如何修改FTP客戶端程序特性以使其能夠更好地和防火牆互動(在防火牆下更好地工作)的描述。

3.1. 連接埠模式

使用連接埠模式的FTP(會話)的主要問題還是在客戶端。FTP客戶端實際上沒有真正和伺服器建立資料連接。它只是告訴伺服器它在哪個連接埠偵聽並等到伺服器主動過來連接。

從客戶端的角度看來這就像是外部系統要使用任意一個高編號連接埠來和內部的客戶端機建立連接。

要允許如此廣闊範圍的、不確定連接埠號的向內連接在安全性上考慮實在是有很大的風險。

解決這個問題的一個辦法是只允許那些TCP源連接埠號是20的連接向內連線到高編號連接埠。這種方法假設連接進來的是FTP伺服器的資料連接埠,但是有很多工具可以讓你手工設定源連接埠號,所以,你無法保證那些向內連接的源連接埠號是20的連接一定是由FTP伺服器發起的。

這種情形的改進是你限制向內連線到高編號連接埠的TCP連接的源連接埠號是20並且同時發起連接的源IP位址也是你所信任的FTP伺服器的。這裡主要的缺點是你必須預先確定你可以信任的FTP伺服器的位址,並且你還要小心那些源連接埠號和位址都是假的的欺騙(攻擊)。

這種情形下伺服器端的危險要比客戶端的小一些。但是,仍然要考慮允許向外訪問如此大範圍的連接埠而只是為了一個服務套用的安全性是很低的。

(因為這樣與FTP伺服器在同一網路內的)任何一個客戶端都可使用一個高編號連接埠(作為源連接埠)去訪問外部Internet上的一個網路套用並且作為第一連接。

(進一步的)一個改進是只允許源連接埠號是20的連接才能連線到外部的高編號連接埠(在FTP伺服器的出口防火牆上限制)。

這樣,你可以假定只有FTP服務才能在Internet上連線到高編號連接埠。

再進去一步的改進是你限制源連接埠號為20的連接只能訪問有限的內部網路IP位址。但是, 你仍然要處理那些IP和連接埠號欺騙(的攻擊)。

3.2. 被動模式

被動模式的客戶端除了需要(主動)向外訪問(而連接埠模式是伺服器是向裡)高編號連接埠之外,所需要訪問的連接埠(範圍)和連接埠模式的客戶端沒有什麼不同。

這看起來好像沒有什麼不同,但是實際上從安全性的角度來看有極大的區別。

原因是在一個好的包過濾(防火牆設定的條件下),連接訪問的方向是向外比向裡要更加安全。

因為你無法預計FTP伺服器會將資料通道分配到哪個高編號連接埠上,所以你必須開啟所有的高編號連接埠。

這在你能夠確保只有FTP客戶端在只有在訪問FTP伺服器時才會使用那些(高編號連接埠的情況下)固然很好。並且你可以限制只有FTP客戶端才能使用那些(高編號連接埠),這樣你就可以阻止其他的套用訪問高編號連接埠。

很不幸,你還必須允許所有向內對高編號連接埠的訪問。

這就是說你要同時允許向內和向外對所有高編號連接埠的訪問。

你可以用限制向內訪問高編號連接埠的資料包必須是屬於一個已經存在的連接(TCP頭部的ACK位被設定)來改善這種情形。但是你還是會陷入(有可能碰到)被修改過的TCP頭部的ACK位的欺騙(攻擊的危險)。

FTP的被動模式解決了客戶端的問題,(但是)所有的問題都(被推)到了伺服器端。

其中最大的問題是必須讓客戶端能夠連接所有(伺服器端)的高編號連接埠。

如果FTP伺服器(軟體)能夠讓管理員設定一個FTP伺服器所使用連接埠的範圍,這種情形下的(安全性)問題就會得到極大改善。

(據我所知,SERV-U這個非常優秀的FTP伺服器端軟體可以做到這一點--譯者注)
第二個問題是解決客戶端是支持(或者不支持)被動模式。

例如,有一些關於指令行的FTP工具不支持被動模式,(這就)迫使我們使用第三方的FTP客戶端(軟體)。

而且,因為WWW的流行,很多用戶會使用瀏覽器來當做FTP客戶端,但是又不總是配置正確。

3.3. NAT(網路位址轉換)

因為可以路由的IP位址的短缺,把客戶端甚至伺服器放在網路位址轉換(NAT)設備的後面是很普遍的做法。

NAT設備有兩種:
只轉換IP位址部分(稱作1:1NAT)的和(同時)轉換IP位址和連接埠部分(稱作N:1NAT或者PAT)。

很明顯網路位址轉換中的PAT在絕大部分的網路實施中得到套用,因為(使用PAT)你可以映射很多不可路由的私有IP到一個可路由的公共IP位址上。

儘管網路位址轉換是有趣的(有用的)技術並可以減輕公共可路由IP位址短缺的問題,但是它也帶來了全新領域的問題。原因就是很多傳輸協定並不是專門為NAT/PAT設計的。

例如象FTP傳輸協定,IP位址和資料連接時所使用的連接埠號是動態協商的。

簡單的NAT/PAT設備只會檢視IP位址和連接埠號(第3層和第4層信息),而並不分析套用層(第7層)的實際協商程序(連接埠和被動模式的指令)。

所以,如果沒有額外的支持(手段),簡單的NAT/PAT設備很可能會阻斷這些複雜的傳輸協定,包括FTP傳輸協定在內。

4. 解決FTP傳輸協定的問題

有了上面的知識,就可以很容易理解ISA Server如何來處理FTP傳輸協定了。我們很幸運,ISA Server比那些簡單的包過濾(防火牆或類似設備)要聰明一些。現在我們來關注一下細節。

4.1. 軍事化管理區域

ISA Server支持一種叫做「軍事化管理區域」的配置(也叫做邊界網路、或者遮蔽子網)。

(要支持)軍事化管理區域(的模式套用下)的ISA Server電腦(通常)配置有三塊網路卡,其中兩塊是公共接頭(即有公共網路IP位址),令一塊是私有接頭(即有私有網路IP位址),就這就說軍事化管理區內的網路位址是被特別考慮並且不會出現在LAT(Local Address Table,即近端網址表,ISA Server用以區分本機電腦和遠端電腦的資料表格--譯者注)中。如果你難以理解我們在說什麼,你可以閱讀下面(連接)的文章。

· ISA Server DMZ Scenarios by Thomas Shinder.
· Support WebCast: Microsoft Internet Security and Acceleration Server 2000 and Perimeter Networks.

要實現對軍事化管理區域網路中的主機的訪問控制,應該使用下面這些基本規則:
· 資料包在直接和公共網段之間路由 ,而不使用網路位址轉換。

· 對軍事化管理區域網路的訪問被靜態包過濾(規則)所控制。

· 向內的包過濾(規則)應該允許外部的流量流入內部並且允許(相應的)回應(資料包)向外(流出)。

· 如果連接是邊界網路內的主機發出的,向外的包過濾(規則)應該讓該流量流出。

這意味著ISA Server扮演了包過濾路由器的角色。換句話說,就是不需要套用層知道。但是,如果你仔細檢視包過濾規則的內容,你會看到你需要指定啟始化資料包的方向。

所以,你可以說ISA的包過濾器或多或少地知道連接(的意圖,或者說用途)。


在指定包過濾(規則)時選項連接埠,你有下面(兩種)選項(方案):

· 本機連接埠:任何,動態並且是類BIOS的。

· 遠端連接埠:任何並且是類BIOS的。

根據(一些)我的文件(所講)選項動態連接埠是指連接埠1025-5000。如果這是正確的話,你將能使用高編號連接埠(大於1023)的子集來替代所有動態連接埠。

在做了一些測試後,我可以告訴你這些我的文件絕對錯了。使用工具 Netcat 或者 WinsockTool你自己很容易發現動態連接埠是指連接埠1025到65534(大於1024並且小於65535)。

所以,你可以認為(所謂的)選項動態連接埠就是選項所有高編號連接埠。

在(存在)軍事化管理區域的配置下,如果你要將你的FTP伺服器放在軍事化管理區域或者要讓位於軍事化管理區域的FTP客戶端訪問外部(的FTP伺服器),應該小心考慮我們在這篇文章中的挑戰部分所講的內容並考慮它們之間互相關連的關係。

因此不建議將FTP伺服器或者客戶端放在軍事化管理區域,除非你需要很高的安全性。

但是,如果你必須讓FTP傳輸協定進出軍事化管理區域網路,(就需要)從下面的包過濾(規則)開始做起:

· 軍事化管理區域網路中的FTP客戶端向外訪問:

Packet Filter Name : FTP Client control connection
Enabled : True
Filter Mode : Allow
Filter Type : Custom
Protocol : TCP
Direction : Outbound
Local Port: Dynamic Port
Remote Port : 21
Local Computer Filter Applies to Computer : IP address FTP Client
Remote Computer Filter Applies to Network : All Remote Computers

Packet Filter Name : FTP Client data connection active
Enabled : True
Filter Mode : Allow
Filter Type : Custom
Protocol : TCP
Direction : Inbound
Local Port : Dynamic Port
Remote Port : 20
Local Computer Filter Applies to Computer : IP address FTP Client
Remote Computer Filter Applies to Network : All Remote Computer

Packet Filter Name : FTP Client control connection + data connection passive
Enabled : True
Filter Mode : Allow
Filter Type : Custom
Protocol : TCP
Direction : Outbound
Local Port : Dynamic Port
Remote Port : Any Port
Local Computer Filter Applies to Computer : IP address FTP Client
Remote Computer Filter Applies to Network : All Remote Computers

· 向內訪問位於軍事化管理區域的FTP 伺服器:
Packet Filter Name : FTP Server control connection
Enabled : True
Filter Mode : Allow
Filter Type : Custom
Protocol : TCP
Direction : Inbound
Local Port: 21
Remote Port : Any Port
Local Computer Filter Applies to Computer : IP address FTP Server
Remote Computer Filter Applies to Network : All Remote Computers


Packet Filter Name : FTP Server data connection active
Enabled : True
Filter Mode : Allow
Filter Type : Custom
Protocol : TCP
Direction : Outbound
Local Port : 20
Remote Port : Any Port
Local Computer Filter Applies to Computer : IP address FTP Server
Remote Computer Filter Applies to Network : All Remote Computers


Packet Filter Name : FTP Server data connection passive
Enabled : True
Filter Mode : Allow
Filter Type : Custom
Protocol : TCP
Direction : Inbound
Local Port : Dynamic Port
Remote Port : Any Port
Local Computer Filter Applies to Computer : IP address FTP Server
Remote Computer Filter Applies to Network : All Remote Computers


註:到底使用上面什麼過濾規則,取決於你要支持的FTP模式(連接埠模式還是被動模式)
4.2. SecureNAT客戶端

ISA Server的文件傳輸傳輸協定過濾器將SecureNAT客戶端的FTP請求轉發到防火牆服務(引擎)。

過濾器動態開啟FTP傳輸協定所需要的第二個連接埠,並且根據需要為SecureNAT客戶端作位址轉換。

下面描述它是如何何工作的:

· 客戶端開啟和FTP伺服器的第一連接(控制連接)。

· ISA Server 電腦將此連接(的情況)向過濾器通報 。

· 過濾器檢查分析第一連接的後繼資料(實際上就是分析控制連接中來回傳輸的指令,比如客戶端是使用了PORT還是PASV指令,並且記錄這些指令中的參數,即連接埠號和IP位址等,這實際上已經是套用層的事情了--譯者注)並決定什麼時候客戶端要開始使用第二連接(資料連接)。

· 過濾器通知ISA Server(並要求其)允許特定的第二連接(所謂特定就是連接的連接埠號和IP位址是前面分析第一連接中的PORT、PASV指令中的指定的連接埠號和IP--譯者注)。

· ISA Server開啟套用層過濾器所指定連接埠。

如果你檢視那些預定義的傳輸協定,你可以找到為FTP客戶端和伺服器定義的FTP傳輸協定。這兩個(預定義的)傳輸協定都是套用層過濾器。

這就是 說ISA完全支持FTP客戶端的向外訪問和(內部的)FTP伺服器的發佈。

要配置ISA支持FTP客戶端(對外的)訪問和FTP伺服器的發佈,你首先要檢查FTP套用層過濾是啟用的(這應該是預設值)。

對於客戶端訪問,也必須有一條允許客戶端使用FTP傳輸協定的規則。


對於FTP伺服器發佈,要確保在伺服器發佈規則中FTP伺服器規則被選項(啟用)。

註:很顯然你必須允許FTP伺服器訪問所有的站點和內容。

如果你沒有站點和內容規則,或者在訪問所有站點和 內容時需要(用戶)認證,FTP發佈規則將會失敗。注意FTP伺服器的發佈不需要傳輸協定規則來支持。

很明顯這種方法支持下的FTP傳輸協定安全性是很高的。但是,你要記住FTP過濾器只在標準的FTP控制連接埠(TCP連接埠21)上「偵聽」。很多人認為這是一個很大的限制。

從個人角度講,我不這麼認為。任何傳輸協定的目的是要讓所有不同系統之間讓通訊盡可能簡單地實現,類BIOS的連接埠號是一個傳輸協定完整性的一部分。

所以,使用其他的背離標準的連接埠號會帶來問題。另外,從安全性的角度來講也沒有任何理由將FTP站點發佈的到非標準的連接埠上。除非你認為偏執就是安全。

因為SecureNAT用戶沒有套用層過濾器的說明 就不能建立第二連接,所以你就不能訪在(發佈在)非標準連接埠號(上的FTP伺服器)或在非標準連接埠號發佈FTP伺服器。如果你一定要這樣做,那只剩下使用防火牆客戶端(一條路)了(參見4.3防火牆客戶端)。


另外一個經常被問到的問題是你能否將和ISA執行在同一台電腦上的FTP服務發佈出去。

儘管這樣作是不推薦的(ISA被認為是防火牆,而不是其他一般用途的套用伺服器),但確實是可以做到的。

下面的文章解釋如何這樣做:

· 發佈執行在ISA Server上的FTP服務 (作者 Thomas Shinder)。
· 在ISA上發佈FTP服務(作者 Johan Loos)。

· 如何讓外部客戶端電腦訪問FTP伺服器。

現在,如果還有什麼沒有按照我們的預期進行工作,你可以參考ISA的日誌文件。這是你除錯時主要的參考(依據)。

要從日誌文件中得到更多的信息,我強烈建議你將日誌設定為記錄所有字段。

在MMC中,找到Monitoring Configuration,選項Logs,在details版面上,右擊applicable service,點擊Properties。在記錄字段的表格中,選項Select All。

很多人在查閱日誌文件時有困難。實際上並不難,但是你應該理解記錄的是什麼。在ISA的求助文件中有一節叫做Firewall and Web Proxy log fields,你必須閱讀,在那裡你可以找到額外的(有用)信息:

· 各種日誌文件和記錄字段的說明 。

· INFO: WinInet 錯誤程式碼 (12001 到 12156)。

· Windows Sockets 錯誤程式碼。

舉一個例子,這是一個成功(進行)的SecureNAT(客戶)的FTP會話的防火牆日誌的片斷:

4.3. 防火牆客戶端

防火牆客戶端的最大好處是它允許任何關於TCP/UDP傳輸協定的套用通過ISA而套用自己並不知道它自己正處於防火牆或者代理的後面。

但是,一個缺點是防火牆客戶端只能支持Windows 95 OSR2和更高版本的操作系統。不過,在客戶端電腦上安裝防火牆客戶端是很容易的。

你已經知道SecureNAT客戶端在沒有套用層過濾器的說明 下是無法建立第二連接的,但是對於防火牆客戶端來說可不是這樣。實際上,防火牆客戶端(軟體)是和ISA Server上執行的防火牆服務(引擎)協同運作的。

你可以認為那是為了不受到某個特定套用層傳輸協定的限制的套用層過濾器功能的分佈式實現。

在我的文章理解防火牆客戶端的通道控制 (一篇如果你要更深入瞭解防火牆客戶端是如何工作的必讀文章)中你可以找到防火牆客戶端是如何支持一個普通的對外FTP會話的細節分析。

我在這裡就不重複了,但是我要重點提出那些要在FTP傳輸協定上使用非常規連接埠的一些要(重點)注意的問題。

要允許一個防火牆客戶端用戶向外訪問FTP伺服器,你必須允許這個用戶可以使用預定義的FTP傳輸協定(規則),並且確保FTP套用層過濾器是啟用的。

你可能想知道為什麼後一點也是必須的,因為這看起來和我前面提到關於防火牆客戶端是如何工作的有些矛盾。

再次(說明),如果你仔細檢視預定義的FTP傳輸協定(規則),你就可以看到(在這個規則中)只有第一連接(FTP控制連接)是被定義的,而沒有(定義)第二連接。

所以,如果FTP套用層過濾器沒有被啟用,就不可能建立FTP資料連接。除非你啟用並允許了一條「'All IP traffic」的規則。

就像3.2節SecureNAT客戶端中所說的,如果防火牆客戶端(軟體)安裝到客戶電腦上後,(該客戶端)就可以訪問(發佈在)非常規連接埠上的FTP伺服器。
基本的配置步驟如下:

· 新增一個定制的FTP傳輸協定定義(規則)。


· 允許防火牆客戶端使用這條新增立的傳輸協定定義(規則)。

要記住傳輸協定定義(規則)只定義哪個傳輸協定和哪個連接埠可能會在哪個方向被使用。雖然這是套用層自己應該做的事,但是在防火牆客戶端的說明 下,防火牆客戶端軟體將會向ISA Server動態請求開啟傳輸協定所需要用到的連接埠並(同時)指明訪問的方向。

這是一個用戶自訂的FTP傳輸協定定義(規則),該定義允許客戶端訪問發佈在TCP連接埠2121上的FTP伺服器。


在上面自訂FTP傳輸協定(規則)中定義了兩個第二連接。向內訪問是用來支持連接埠模式的FTP的第二連接資料連接的,向外訪問是用來支持被動模式的第二資料連接的。

這是防火牆客戶端在上面的FTP訪問規則下的(一次)成功會話的日誌片斷:


上面用戶自訂的FTP傳輸協定(規則)中,我將向內訪問的第二連接的連接埠範圍設定為』0-0』。

通常你可能會使用』1025-65534』範圍的連接埠,但是我在我的測試配置中發現這樣無法工作。

出現的問題是向內的連接被包過濾器阻止,儘管一切看起來無懈可擊,源端的操作是正常的,ISA也正在我們所需要的連接埠偵聽(你可以使用netstat-an來檢查)。

但是將連接埠範圍修改為』0-0』解決了這個問題。所以,如果誰有其他更好的方法,我將很高興。

前面已經提到,通常你無法將FTP服務發佈到非標準連接埠上。但是,如果你可以在FTP伺服器上安裝防火牆客戶端,可就可能。

下面的文章中解釋了應該如何做:
· 在非常規連接埠上發佈FTP站點 (作者 Thomas Shinder )
· 使用非標準連接埠安裝和配置位於ISA Server 2000後的FTP伺服器 (作者 Hadyn-wang)

1: 很顯然你需一條可以讓FTP伺服器訪問所有站點和內容的規則,因為FTP伺服器要建立新連接。

2: 要記住你不能在執行ISA Server的電腦上安裝防火牆客戶端()軟體,也不能在非windows操作系統上執行的FTP伺服器上安裝。

因此,在這些特別的配置(情況下)你不能將FTP伺服器發佈到非標準連接埠。

4.4. Web代理客戶端

Internet瀏覽器是怎樣處理FTP傳輸協定的取決於瀏覽器的版本和ISA客戶端的配置類型。需要注意的是單台客戶端電腦可以被同時配置成SecureNAT,防火牆客戶端或者Web代理客戶端,並且它們之間不會互相干擾。

在這一節裡我們來看看Internet Explorer 版本6.0 ,如果你關注老版本可以參閱Thomas Shinder的 Internet Explorer FTP客戶端的問題 一文。


我假設你有一個客戶端同時配置成Web代理客戶端、防火牆客戶端和SecureNAT客戶端。現在檢視Internet選項的進階表單,你可以找到兩個會影響IE如何使用FTP傳輸協定的選項。

· 啟用FTP站點資料夾視圖。

· 使用被動FTP (為了和防火牆和 DSL 調製解調器相容)。

如果沒有選用啟動FTP站點資料夾視圖選項,FTP請求將會被IE傳送到ISA Server的Web代理服務(引擎)。

這是通過HTTP傳輸協定完成的,並且(客戶端)沒有辦法瀏覽(FTP站點資料夾),也沒有可以讓用戶指定是使用被動模式還是連接埠模式的選項。

然後ISA上的Web代理服務(引擎)將客戶的將請求用真正的連接埠模式的FTP會話進行轉發。

但是,要記住ISA的Web代理服務僅僅支持FTP下載。

注 1: Web代理服務預設使用連接埠模式的FTP方式。

你可以修改註冊表來允許ISA Server的Web代理服務使用被動模式的FTP會話(來完成客戶端的請求)。檢視 HOW TO: Enable Passive CERN FTP Connections Through Internet Security and Acceleration Server 2000來獲得更多信息。

注 2: 有一些FTP伺服器在用戶端使用了FTP的USER指令後不詢問密碼,這將讓Web代理服務不知所措。要解決這個問題,檢視Web Proxy Service Returns "The User Name Was Not Allowed" Error Message After the FTP Server Returns the "User Logged In" Message一文來獲得更多信息。

下面是一個跟蹤Web代理服務(如何)發出一個FTP請求的例子:

如果啟用了啟動FTP站點資料夾視圖選項,FTP請求將會被IE傳送給ISA的防火牆服務(引擎)。


換句話說就是真正的FTP會話。如果安裝了防火牆客戶端(軟體)並啟用的話,(IE的FTP)請求將會被防火牆客戶端攔截(並轉發給ISA的防火牆服務引擎)。

相反,如果沒有安裝防火牆客戶端或者安裝防火牆客戶端但是被禁用了,那麼請求將會被當是做SecureNAT客戶端傳送的。


這時是使用連接埠模式還是被動模式的FTP是由被動FTP(為和防火牆和DSL調製解調器相容)選項決定的。


注: 這在 Internal Clients Cannot Access FTP Sites Through Internet Security and Acceleration Server 2000一文中也有解釋。


下面是一個跟蹤防火牆客戶端向ISA的防火牆服務(引擎)發出FTP請求的例子:

下面是一個跟蹤SecureNAT客戶端向ISA的防火牆(引擎)發出FTP請求的例子:從上面的例子你可以看到,在三種情況下6.0版本的Internet瀏覽器向ISA Server發出FTP請求的方式完全不同。這就是說一些FTP請求將會被記錄在Web代理的日誌中,
而另一部分會被記錄在防火牆的日誌中。


5. 關於Secure FTP


我的文件 RFC2228中定義了FTP傳輸協定的安全性擴展。這些擴展同時在資料通道和控制通道對認證,完整性,和機密性都有所加強。該文還介紹了新增的指令、回應和文件傳輸的加解碼。

一個廣泛使用的加強FTP傳輸協定的安全性的方法是使用3.0版的SSL(安全套接層)或者1.0版的TLS(傳輸層加密)傳輸協定。這在Internet-Draft Securing FTP with TLS 中有詳細描述。SSL/TLS傳輸協定在傳輸層(TCP/IP)之上、但是在套用層之下工作的。

因此,它可以很容易在諸如HTTP,Telnet,POP3,IMAP4,SMTP和FTP等套用層傳輸協定上實現。

在實際的FTP客戶端和伺服器的套用中,SSL安全擴展至少有兩種不同的啟始化方法:

顯式安全(連接埠模式)和隱式安全(被動模式)。

· 顯示安全:

為了建立SSL連接,顯式安全要求FTP客戶端在和FTP伺服器建立連接後傳送一個特定的指令給FTP伺服器。客戶端使用伺服器的預設連接埠。具體實現方法詳見RFC 2228我的文件。

· 隱式安全:

當FTP客戶端連線到FTP伺服器時,隱式安全將會自動和SSL連接一起開始執行。在隱式安全中伺服器定義了一個特定的連接埠(TCP連接埠990)讓客戶端來和其建立安全連接。

注: 隱式安全在很多SSL草案中都有討論,但是沒有被RFC正式採納。為了依從標準,請使用顯式安全。

可以認為隱式安全總是「始終開啟」的,而顯式安全是要被「開啟」(才能使用)的。

下面是GlobalScape 公司(著名的CuteFTP FTP客戶端軟體)站點上的一個很好圖示,說明了顯式和隱式安全SSL連接的區別:


當通過SSL/TLS來使用FTP時(縮寫為FTPS),FTP客戶端和FTP伺服器之間的控制連接就被加密了,因此除了它們之外誰也不能讀懂(它們之間的控制連接的信息)。

正式因為這樣,NAT/PAT設備和防火牆再也不能監控控制連接(原文是資料連接,而實際上應該是控制連接--譯者注)(並且從中得到有用的信息)從而再(有針對性地)做一些事情了。

(所以)FTPS傳輸協定在所有種類的防火牆和網路位址轉換(環境下)的實際套用受到嚴重的限制。

注:在 FTP/TLS Friendly Firewalls一文可以找到關於在防火牆上環境下執行使用SSL/TLS的安全FTP的很好的討論。但是請注意Internet-Draft 僅僅是 「正在制定中」(尚未正式發佈)。


必須清楚的是ISA Server的FTP套用層過濾器(同樣也)不能說明 你解決這種情況(問題)。

因此,ISA Server是幾乎不可能支持在SecureNAT客戶端上執行的FTPS傳輸協定的。

實際上,許多防火牆在完全支持安全的FTPS傳輸協定(連接埠模式和被動模式)時都是有問題的。但是,在ISA Server下你(也)完全可以支持FTPS,(條件是)你在客戶端上安裝了防火牆客戶端(軟體)。

在這種情況下,你必須按照要點的步驟來配置,以讓FTP客戶端(可以)訪問(發佈在)非常規連接埠上的FTP伺服器或者將FTP伺服器發佈到非常規連接埠上。

對於(客戶端的)FTPS訪問,應該繼續採用我前面提到到自訂FTP傳輸協定規則(參見4.3節,防火牆客戶端)。

對於隱式安全模式,第一連接應該是對TCP連接埠990的向外訪問。如果你也必須同時支持顯式安全,那麼還要做一些額外的事情。

因為顯式安全使用標準的TCP 21號控制連接埠,所以你必須將FTP套用過濾器禁用。否則,FTP套用過濾器會干擾FTP的控制連接。

接下來,在自訂FTP規則中讓第一連接向外訪問21號連接埠。因而,SecureNAT客戶再也不能訪問FTP伺服器了。

6. 結束語

FTP傳輸協定是一個顯得稍微有點凌亂的傳輸協定,並且沒有任何為(套用於)防火牆(環境中)的(特別)設計。

FTP客戶端可以使用兩種模式中的一種:連接埠模式和被動模式。

連接埠模式已經存在很長時間了,但是被動模式更加流行,因為其不需要FTP伺服器主動向內訪問從而和FTP客戶端建立(第二)連接。

現在的防火牆和NAT設備可以在(第一連接中,即控制連接中的)PORT和PASV指令中得到FTP連接的詳細資料來支持客戶端的FTP請求(和會話),從而增強了FTP傳輸協定的安全性。

我希望你能夠對我的這篇文章滿意並且能夠從中得到一些你可以在你自己網路中使用的東西。

如果你對我們的討論有什麼疑問,請在檢視

[url]http://forums.isaserver.org/ultimatebb.cgi?ubb=get_topic=3;t=002268並發佈消息。你的吆/url]^復我會收到通知並且我會儘快回復。謝謝!-Stefaan。
psac 目前離線  
送花文章: 3, 收花文章: 1628 篇, 收花: 3199 次
向 psac 送花的會員:
Robertbes (2019-12-07)
感謝您發表一篇好文章
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 10:48 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2019, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1