ISA下FTP的解決辦法(2)

來源:互聯網
上載者:User

前面我們講過,FTP協議的資料轉送存在兩種模式:主動模式和被動模式。這兩種模式發起串連的方向截然相反,主動模式是從伺服器端向用戶端發起;被動模式是用戶端向伺服器端發起串連。

我們回到ISA的情況,如果採用被動模式,由於IIS是完全隨機的選擇一個連接埠,並告知客戶,然後客戶進行主動串連,這就意味著在ISA上,你要讓所有的連接埠都允許動態入站串連才行,這樣肯定不行,因為太危險了,等於開啟了所有的連接埠串連。

如果採用主動模式(PORTMode),IIS選擇好連接埠後,主動與客戶進行串連,這時候不需要像PASV模式那樣開啟所有的動態入站串連,而且正好相反,我們需要開啟所有的動態出站串連即可,安全性增加很多。而且由ISA的IPPACKETFILTER只對ISA本機起作用,不會造成區域網路內的客戶“放了羊”。

所以,我個人這樣做的:

(1)由於IIS和ISA都在一台機器上,所以它倆都在偵聽21號連接埠(IIS預設情況下會偵聽所有地址的21連接埠),所以我們首先要讓IIS只偵聽內網地址的PORT21,在DOS下,你可以通過NETSTAT-NA>abc.txt,然後開啟這個檔案,你會看到0.0.0.021LISTENING字樣。

輸入如下命令:

netstopmsftpsvc(停止FTP服務)

進入\Inetpub\adminscripts\目錄

cscriptadsutil.vbssetmsftpsvc/disablesocketpoolingtrue(停止偵聽)

netstartmsftpsvc(啟動FTP服務)

(2)在IIS控制台裡面,ftp->Property->FTPSite->IPAddress改為內網地址。現在,FTP服務只偵聽內網IP的21號連接埠了。

(3)大家可能這時候有疑問,如果是IIS主動串連用戶端,那用戶端的防火牆是不是會阻止這個串連(PASV模式不存在這個問題)。為了防止這種情況,我們可以強制IIS不能與用戶端的任意連接埠進行串連,而只有用戶端串連IIS的連接埠進行資料轉送。這樣就可以解決PORTMODE與用戶端防火牆的衝突。方法:修改註冊表,HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\Parameters\,將EnablePortAttack的值由0改為1,然後重新啟動FTP服務。

(4)在ISA裡面,使用SERVERPUBLISH的方法發布FTP服務,其中:IPaddressofinternalserver填寫ISA的內部網卡的IP,IPaddressofexternalserver填寫ISA的外部網卡的IP,Mappedserverprotocol選擇FTPServer。

(5)然後在IPPacketFilter建立一條新RULES,Protocol->TCP,Direction->Outbound,LocalPort->Dymanic,RemotePort->All。
  
這是我的解決辦法,但是並不完美,主要是:

(1)客戶不能使用PASV方法進行串連,原因上面已經講了。

(2)由於第五條,所以ISA伺服器隨著保證了對外部存取的限制,卻無法限制ISA本機對外部的訪問。



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。