FTP 主動(dòng)模式及被動(dòng)模式
發(fā)布時(shí)間:2009-03-25 00:40:48 作者:佚名
我要評(píng)論

FTP的特殊性:
大多數(shù)的TCP服務(wù)是使用單個(gè)的連接,一般是客戶向服務(wù)器的一個(gè)周知端口發(fā)起連接,然后使用這個(gè)連接進(jìn)行通訊。但是,F(xiàn)TP協(xié)議卻有所不同,它使用雙向的多個(gè)連接,而且使用的端口很難預(yù)計(jì)。一般,F(xiàn)TP連接包括:
一個(gè)控制連接(control connection)
這個(gè)連接用于
FTP的特殊性:
大多數(shù)的TCP服務(wù)是使用單個(gè)的連接,一般是客戶向服務(wù)器的一個(gè)周知端口發(fā)起連接,然后使用這個(gè)連接進(jìn)行通訊。但是,F(xiàn)TP協(xié)議卻有所不同,它使用雙向的多個(gè)連接,而且使用的端口很難預(yù)計(jì)。一般,F(xiàn)TP連接包括:
一個(gè)控制連接(control connection)
這個(gè)連接用于傳遞客戶端的命令和服務(wù)器端對(duì)命令的響應(yīng)。它使用服務(wù)器的21端口,生存期是整個(gè)FTP會(huì)話時(shí)間。
幾個(gè)數(shù)據(jù)連接(data connection)
這些連接用于傳輸文件和其它數(shù)據(jù),例如:目錄列表等。這種連接在需要數(shù)據(jù)傳輸時(shí)建立,而一旦數(shù)據(jù)傳輸完畢就關(guān)閉,每次使用的端口也不一定相同。而且,數(shù)據(jù)連接既可能是客戶端發(fā)起的,也可能是服務(wù)器端發(fā)起的。
在FTP協(xié)議中,控制連接使用周知端口21,因此使用ISA的IP PACKET FILTER就可以這種連接進(jìn)行很好的安全保護(hù)。相反,數(shù)據(jù)傳輸連接的目的端口通常實(shí)現(xiàn)無(wú)法知道,因此處理這樣的端口轉(zhuǎn)發(fā)非常困難。FTP協(xié)議使用一個(gè)標(biāo)準(zhǔn)的端口21作為ftp-data端口,但是這個(gè)端口只用于連接的源地址是服務(wù)器端的情況,在這個(gè)端口上根本就沒(méi)有監(jiān)聽(tīng)進(jìn)程。FTP的數(shù)據(jù)連接和控制連接的方向一般是相反的,也就是說(shuō),是服務(wù)器向客戶端發(fā)起一個(gè)用于數(shù)據(jù)傳輸?shù)倪B接。連接的端口是由服務(wù)器端和客戶端協(xié)商確定的。FTP協(xié)議的這個(gè)特征對(duì)ISA轉(zhuǎn)發(fā)以及防火墻和NAT的配置增加了很多困難。
除此之外,還有另外一種FTP模式,叫做被動(dòng)模式(passive mod)。在這種模式下,數(shù)據(jù)連接是由客戶程序發(fā)起的,和剛才討論過(guò)的模式(我們可以叫做主動(dòng)模式)相反。是否采取被動(dòng)模式取決于客戶程序,在ftp命令行中使用passive命令就可以關(guān)閉/打開(kāi)被動(dòng)模式。
前面我們講過(guò),F(xiàn)TP協(xié)議的數(shù)據(jù)傳輸存在兩種模式:主動(dòng)模式和被動(dòng)模式。這兩種模式發(fā)起連接的方向截然相反,主動(dòng)模式是從服務(wù)器端向客戶端發(fā)起;被動(dòng)模式是客戶端向服務(wù)器端發(fā)起連接。
我們回到ISA的情況,如果采用被動(dòng)模式,由于IIS是完全隨機(jī)的選擇一個(gè)端口,并告知客戶,然后客戶進(jìn)行主動(dòng)連接,這就意味著在ISA上,你要讓所有的端口都允許動(dòng)態(tài)入站連接才行,這樣肯定不行,因?yàn)樘kU(xiǎn)了,等于打開(kāi)了所有的端口連接。
如果采用主動(dòng)模式(PORT Mode),IIS選擇好端口后,主動(dòng)與客戶進(jìn)行連接,這時(shí)候不需要像PASV模式那樣打開(kāi)所有的動(dòng)態(tài)入站連接,而且正好相反,我們需要打開(kāi)所有的動(dòng)態(tài)出站連接即可,安全性增加很多。而且由ISA的IP PACKET FILTER只對(duì)ISA本機(jī)起作用,不會(huì)造成局域網(wǎng)內(nèi)的客戶“放了羊”。
所以,我個(gè)人這樣做的:
(1)由于IIS和ISA都在一臺(tái)機(jī)器上,所以它倆都在偵聽(tīng)21號(hào)端口(IIS默認(rèn)情況下會(huì)偵聽(tīng)所有地址的21端口),所以我們首先要讓IIS只偵聽(tīng)內(nèi)
網(wǎng)地址的PORT 21,在DOS下,你可以通過(guò)NETSTAT -NA > abc.txt,然后打開(kāi)這個(gè)文件,你會(huì)看到0.0.0.0 21 LISTENING字樣。
輸入如下命令:
net stop msftpsvc (停止FTP服務(wù))
進(jìn)入\Inetpub\adminscripts\目錄
cscript adsutil.vbs set msftpsvc/disablesocketpooling true (停止偵聽(tīng))
net start msftpsvc (啟動(dòng)FTP服務(wù))
(2)在IIS控制臺(tái)里面,ftp->Property->FTP Site->IP Address改為內(nèi)網(wǎng)地址?,F(xiàn)在,F(xiàn)TP服務(wù)只偵聽(tīng)內(nèi)網(wǎng)IP的21號(hào)端口了。
(3)大家可能這時(shí)候有疑問(wèn),如果是IIS主動(dòng)連接客戶端,那客戶端的防火墻是不是會(huì)阻止這個(gè)連接(PASV模式不存在這個(gè)問(wèn)題)。為了防止這種情況,我們可以強(qiáng)制IIS不能與客戶端的任意端口進(jìn)行連接,而只有客戶端連接IIS的端口進(jìn)行數(shù)據(jù)傳輸。這樣就可以解決PORT MODE與客戶端防火墻的沖突。方法:修改注冊(cè)
表,HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\Parameters\,將EnablePortAttack的值由0改為1,然后重新啟動(dòng)FTP服務(wù)。
(4)在ISA里面,使用SERVER PUBLISH的方法發(fā)布FTP服務(wù),其中:IP address of internal server 填寫(xiě)ISA的內(nèi)部網(wǎng)卡的IP,IP address of external server 填寫(xiě)ISA的外部網(wǎng)卡的IP,Mapped server protocol 選擇 FTP Server。
(5)然后在IP Packet Filter建立一條新RULES,Protocol->TCP,Direction->Outbound,Local Port->Dymanic,Remote Port->All。
這是我的解決辦法,但是并不完美,主要是:
(1)客戶不能使用PASV方法進(jìn)行連接,原因上面已經(jīng)講了。
(2)由于第五條,所以ISA服務(wù)器隨著保證了對(duì)外部訪問(wèn)的限制,卻無(wú)法限制ISA本機(jī)對(duì)外部的訪問(wèn)。
我也把我的方法做了一下實(shí)驗(yàn),使用serv-u做的,有一點(diǎn)錯(cuò)誤,不過(guò)終歸做了出來(lái),下面總結(jié)一下:
PASV服務(wù)器放在ISA后面,其實(shí)就是要解決兩個(gè)問(wèn)題:
1。PASV的端口。我上面的方法提出使用secondary connection,但事實(shí)證明不對(duì),應(yīng)該每個(gè)PASV端口都建立一條primary connection,然后分別建立server publishing rules,有多少個(gè)PASV端口,就要建立多少條。
這里還可以引出另一個(gè)話題,就是對(duì)web publishing rules的運(yùn)用,tony你應(yīng)該知道,通過(guò)web publishing rules也可以發(fā)布ftp服務(wù)器,但rule里面只給了一個(gè)ftp端口的選項(xiàng),很明顯,這是為PORT模式的FTP服務(wù)器準(zhǔn)備的,因?yàn)镻ORT模式的數(shù)據(jù)連接是由服務(wù)器發(fā)起的,在服務(wù)器一邊,不存在穿過(guò)防火墻的問(wèn)題。
使用web publishing rules還有一個(gè)很令人振奮的特性,就是支持動(dòng)態(tài)公用IP用戶,不需要象server publishing rules那樣,每撥一次號(hào)都要修改一次外部地址。如果在web publishing rules中也能搞定PASV問(wèn)題,那么對(duì)于那些使用撥號(hào)上網(wǎng)而又想在內(nèi)網(wǎng)發(fā)布PASV服務(wù)器的人來(lái)說(shuō),簡(jiǎn)直是天大的喜訊。
需要好好考慮的是如何通過(guò)那個(gè)只能填一個(gè)端口的選項(xiàng)來(lái)發(fā)布隨機(jī)的PASV端口?我從今天的實(shí)驗(yàn)找到了一點(diǎn)靈感,就是也象上面說(shuō)的那樣,每個(gè)PASV端口都設(shè)置一條web publishing rules!我還未做這個(gè)實(shí)驗(yàn),還不能證實(shí)這樣做行不行,相信晚上就會(huì)有結(jié)果了。
當(dāng)然,還需要考慮如何控制PASV模式端口的范圍,serv-u可以設(shè)定,而IIS的FTP不行。
2。是服務(wù)器向客戶端傳送IP的問(wèn)題。當(dāng)FTP客戶端登錄進(jìn)入服務(wù)器的時(shí)候,PASV模式服務(wù)器會(huì)向客戶端傳送本機(jī)的IP地址和數(shù)據(jù)端口,當(dāng)服務(wù)器放在內(nèi)網(wǎng)中的時(shí)候,服務(wù)器會(huì)向客戶端返回內(nèi)網(wǎng)的IP,這當(dāng)然是不能完成連接的,需要讓服務(wù)器返回ISA的外網(wǎng)地址。本來(lái),解決方法可以使用firwall client的application settings中的nameresolutionforlocalhost參數(shù),設(shè)為P就可以讓?xiě)?yīng)用程序返回ISA的外網(wǎng)地址,但這個(gè)參數(shù)是供firewall client使用的,而發(fā)布服務(wù)器不能安裝firewall client,這很可惜。
幸好,還是有一個(gè)好消息,就是serv-u本身具有返回ISA外網(wǎng)地址這樣的功能,方法是先選中新建FTP服務(wù)器的屬性,在domain標(biāo)簽里選擇“enable dynamic dns”,此時(shí)會(huì)出現(xiàn)第二個(gè)標(biāo)簽,叫“dynamic dns”,然后到tz0.com申請(qǐng)動(dòng)態(tài)域名,申請(qǐng)后會(huì)得到一個(gè)key,在此標(biāo)簽中填入此key即可。最后一步,是到新建服務(wù)器的settings屬性中,選擇advanced標(biāo)簽,選中“allow passive mode data transfer”,旁邊的IP地址框留空。這個(gè)框?qū)τ趽芴?hào)用戶不用填,只有出口使用固定地址才需要填。
這樣,serv-u向客戶端返回IP和端口前,會(huì)先向tz0.com查詢到ISA外網(wǎng)的地址,再發(fā)送給客戶端。
解決了這兩個(gè)問(wèn)題,剩下的工作就簡(jiǎn)單了。
從以上內(nèi)容也可以說(shuō)明一點(diǎn),從內(nèi)網(wǎng)不能發(fā)布IIS的FTP服務(wù)器,因?yàn)镮IS既沒(méi)有選項(xiàng)可以選擇PASV端口的范圍,也沒(méi)有辦法讓其返回ISA外網(wǎng)的地址。而serv-u這兩條都可以滿足。當(dāng)然,在微軟的網(wǎng)站上也可能有方法解決IIS的這兩個(gè)問(wèn)題。
發(fā)布FTP服務(wù)器的時(shí)候,要注意FTP服務(wù)器有PORT和PASV兩種模式。兩者的共同點(diǎn),是都使用21端口進(jìn)行用戶驗(yàn)證及管理,差別在于傳送數(shù)據(jù)的方式不同,PORT模式的FTP服務(wù)器數(shù)據(jù)端口固定在20,而PASV模式則在1025-65535之間隨機(jī)。發(fā)布的時(shí)候要考慮這個(gè)差別。
如果FTP服務(wù)器在內(nèi)部網(wǎng)絡(luò)中,在建立server publish rules時(shí)(雖然web publish rules也能發(fā)布ftp服務(wù)器,但它并沒(méi)有提供對(duì)port和pasv模式的處理),protocol definitions中的21 inbound條目要建立一個(gè)secondary connection,為20端口上的inbound或1025-65535端口之間的inbound。
如果FTP服務(wù)器建立在ISA服務(wù)器上,就需要在ip packet filters中設(shè)置相關(guān)的條目,對(duì)于PORT模式,很簡(jiǎn)單,開(kāi)放20 inbound就是,但pasv模式就麻煩一點(diǎn),因?yàn)閕p packet filters不能設(shè)置端口段,但我們也不可能把幾萬(wàn)個(gè)端口逐個(gè)寫(xiě)一遍,只能把local port設(shè)置為dynamic,remote port設(shè)置為all ports,當(dāng)然,對(duì)安全性這是個(gè)損害。
幸運(yùn)的是,有些PASV模式的FTP服務(wù)器能夠設(shè)置PASV模式端口的范圍,比如serv-u,它能夠把PASV模式端口控制在最多50個(gè)端口范圍內(nèi),如果為serv-u設(shè)置的并發(fā)用戶數(shù)不多,那么我們就可以為每個(gè)PASV端口寫(xiě)一條filter,不需要開(kāi)放所有的端口了。如果使用IIS的FTP服務(wù)器,這個(gè)FTP服務(wù)器沒(méi)有提供選擇PASV模式端口的功能,只能如上所述那樣,開(kāi)放dynamic和all ports。
從你上面的出錯(cuò)信息來(lái)看,你應(yīng)該是使用IE來(lái)訪問(wèn)FTP服務(wù)器吧。IE的FTP客戶端與其它專業(yè)FTP客戶端不同,不能夠自動(dòng)檢測(cè)FTP服務(wù)器的類型以及根據(jù)服務(wù)器的類型改變客戶端的種類。IE只提供了一個(gè)手工選項(xiàng)來(lái)改變PORT和PASV客戶端角色,就是internet選項(xiàng)->高級(jí)->為FTP站點(diǎn)啟用文件夾視圖,選擇它,IE為PASV模式客戶端,不選則為PORT客戶端。你需要根據(jù)服務(wù)器的類型手工更改這個(gè)選項(xiàng)。如果服務(wù)器的出口是ADSL類的鏈路,還要把“使用被動(dòng)FTP(為防火墻和DSL調(diào)制解調(diào)器兼容性)”一項(xiàng)選上,這兩個(gè)選項(xiàng)只在IE5。5以上版本提供。
大多數(shù)的TCP服務(wù)是使用單個(gè)的連接,一般是客戶向服務(wù)器的一個(gè)周知端口發(fā)起連接,然后使用這個(gè)連接進(jìn)行通訊。但是,F(xiàn)TP協(xié)議卻有所不同,它使用雙向的多個(gè)連接,而且使用的端口很難預(yù)計(jì)。一般,F(xiàn)TP連接包括:
一個(gè)控制連接(control connection)
這個(gè)連接用于傳遞客戶端的命令和服務(wù)器端對(duì)命令的響應(yīng)。它使用服務(wù)器的21端口,生存期是整個(gè)FTP會(huì)話時(shí)間。
幾個(gè)數(shù)據(jù)連接(data connection)
這些連接用于傳輸文件和其它數(shù)據(jù),例如:目錄列表等。這種連接在需要數(shù)據(jù)傳輸時(shí)建立,而一旦數(shù)據(jù)傳輸完畢就關(guān)閉,每次使用的端口也不一定相同。而且,數(shù)據(jù)連接既可能是客戶端發(fā)起的,也可能是服務(wù)器端發(fā)起的。
在FTP協(xié)議中,控制連接使用周知端口21,因此使用ISA的IP PACKET FILTER就可以這種連接進(jìn)行很好的安全保護(hù)。相反,數(shù)據(jù)傳輸連接的目的端口通常實(shí)現(xiàn)無(wú)法知道,因此處理這樣的端口轉(zhuǎn)發(fā)非常困難。FTP協(xié)議使用一個(gè)標(biāo)準(zhǔn)的端口21作為ftp-data端口,但是這個(gè)端口只用于連接的源地址是服務(wù)器端的情況,在這個(gè)端口上根本就沒(méi)有監(jiān)聽(tīng)進(jìn)程。FTP的數(shù)據(jù)連接和控制連接的方向一般是相反的,也就是說(shuō),是服務(wù)器向客戶端發(fā)起一個(gè)用于數(shù)據(jù)傳輸?shù)倪B接。連接的端口是由服務(wù)器端和客戶端協(xié)商確定的。FTP協(xié)議的這個(gè)特征對(duì)ISA轉(zhuǎn)發(fā)以及防火墻和NAT的配置增加了很多困難。
除此之外,還有另外一種FTP模式,叫做被動(dòng)模式(passive mod)。在這種模式下,數(shù)據(jù)連接是由客戶程序發(fā)起的,和剛才討論過(guò)的模式(我們可以叫做主動(dòng)模式)相反。是否采取被動(dòng)模式取決于客戶程序,在ftp命令行中使用passive命令就可以關(guān)閉/打開(kāi)被動(dòng)模式。
前面我們講過(guò),F(xiàn)TP協(xié)議的數(shù)據(jù)傳輸存在兩種模式:主動(dòng)模式和被動(dòng)模式。這兩種模式發(fā)起連接的方向截然相反,主動(dòng)模式是從服務(wù)器端向客戶端發(fā)起;被動(dòng)模式是客戶端向服務(wù)器端發(fā)起連接。
我們回到ISA的情況,如果采用被動(dòng)模式,由于IIS是完全隨機(jī)的選擇一個(gè)端口,并告知客戶,然后客戶進(jìn)行主動(dòng)連接,這就意味著在ISA上,你要讓所有的端口都允許動(dòng)態(tài)入站連接才行,這樣肯定不行,因?yàn)樘kU(xiǎn)了,等于打開(kāi)了所有的端口連接。
如果采用主動(dòng)模式(PORT Mode),IIS選擇好端口后,主動(dòng)與客戶進(jìn)行連接,這時(shí)候不需要像PASV模式那樣打開(kāi)所有的動(dòng)態(tài)入站連接,而且正好相反,我們需要打開(kāi)所有的動(dòng)態(tài)出站連接即可,安全性增加很多。而且由ISA的IP PACKET FILTER只對(duì)ISA本機(jī)起作用,不會(huì)造成局域網(wǎng)內(nèi)的客戶“放了羊”。
所以,我個(gè)人這樣做的:
(1)由于IIS和ISA都在一臺(tái)機(jī)器上,所以它倆都在偵聽(tīng)21號(hào)端口(IIS默認(rèn)情況下會(huì)偵聽(tīng)所有地址的21端口),所以我們首先要讓IIS只偵聽(tīng)內(nèi)
網(wǎng)地址的PORT 21,在DOS下,你可以通過(guò)NETSTAT -NA > abc.txt,然后打開(kāi)這個(gè)文件,你會(huì)看到0.0.0.0 21 LISTENING字樣。
輸入如下命令:
net stop msftpsvc (停止FTP服務(wù))
進(jìn)入\Inetpub\adminscripts\目錄
cscript adsutil.vbs set msftpsvc/disablesocketpooling true (停止偵聽(tīng))
net start msftpsvc (啟動(dòng)FTP服務(wù))
(2)在IIS控制臺(tái)里面,ftp->Property->FTP Site->IP Address改為內(nèi)網(wǎng)地址?,F(xiàn)在,F(xiàn)TP服務(wù)只偵聽(tīng)內(nèi)網(wǎng)IP的21號(hào)端口了。
(3)大家可能這時(shí)候有疑問(wèn),如果是IIS主動(dòng)連接客戶端,那客戶端的防火墻是不是會(huì)阻止這個(gè)連接(PASV模式不存在這個(gè)問(wèn)題)。為了防止這種情況,我們可以強(qiáng)制IIS不能與客戶端的任意端口進(jìn)行連接,而只有客戶端連接IIS的端口進(jìn)行數(shù)據(jù)傳輸。這樣就可以解決PORT MODE與客戶端防火墻的沖突。方法:修改注冊(cè)
表,HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\Parameters\,將EnablePortAttack的值由0改為1,然后重新啟動(dòng)FTP服務(wù)。
(4)在ISA里面,使用SERVER PUBLISH的方法發(fā)布FTP服務(wù),其中:IP address of internal server 填寫(xiě)ISA的內(nèi)部網(wǎng)卡的IP,IP address of external server 填寫(xiě)ISA的外部網(wǎng)卡的IP,Mapped server protocol 選擇 FTP Server。
(5)然后在IP Packet Filter建立一條新RULES,Protocol->TCP,Direction->Outbound,Local Port->Dymanic,Remote Port->All。
這是我的解決辦法,但是并不完美,主要是:
(1)客戶不能使用PASV方法進(jìn)行連接,原因上面已經(jīng)講了。
(2)由于第五條,所以ISA服務(wù)器隨著保證了對(duì)外部訪問(wèn)的限制,卻無(wú)法限制ISA本機(jī)對(duì)外部的訪問(wèn)。
我也把我的方法做了一下實(shí)驗(yàn),使用serv-u做的,有一點(diǎn)錯(cuò)誤,不過(guò)終歸做了出來(lái),下面總結(jié)一下:
PASV服務(wù)器放在ISA后面,其實(shí)就是要解決兩個(gè)問(wèn)題:
1。PASV的端口。我上面的方法提出使用secondary connection,但事實(shí)證明不對(duì),應(yīng)該每個(gè)PASV端口都建立一條primary connection,然后分別建立server publishing rules,有多少個(gè)PASV端口,就要建立多少條。
這里還可以引出另一個(gè)話題,就是對(duì)web publishing rules的運(yùn)用,tony你應(yīng)該知道,通過(guò)web publishing rules也可以發(fā)布ftp服務(wù)器,但rule里面只給了一個(gè)ftp端口的選項(xiàng),很明顯,這是為PORT模式的FTP服務(wù)器準(zhǔn)備的,因?yàn)镻ORT模式的數(shù)據(jù)連接是由服務(wù)器發(fā)起的,在服務(wù)器一邊,不存在穿過(guò)防火墻的問(wèn)題。
使用web publishing rules還有一個(gè)很令人振奮的特性,就是支持動(dòng)態(tài)公用IP用戶,不需要象server publishing rules那樣,每撥一次號(hào)都要修改一次外部地址。如果在web publishing rules中也能搞定PASV問(wèn)題,那么對(duì)于那些使用撥號(hào)上網(wǎng)而又想在內(nèi)網(wǎng)發(fā)布PASV服務(wù)器的人來(lái)說(shuō),簡(jiǎn)直是天大的喜訊。
需要好好考慮的是如何通過(guò)那個(gè)只能填一個(gè)端口的選項(xiàng)來(lái)發(fā)布隨機(jī)的PASV端口?我從今天的實(shí)驗(yàn)找到了一點(diǎn)靈感,就是也象上面說(shuō)的那樣,每個(gè)PASV端口都設(shè)置一條web publishing rules!我還未做這個(gè)實(shí)驗(yàn),還不能證實(shí)這樣做行不行,相信晚上就會(huì)有結(jié)果了。
當(dāng)然,還需要考慮如何控制PASV模式端口的范圍,serv-u可以設(shè)定,而IIS的FTP不行。
2。是服務(wù)器向客戶端傳送IP的問(wèn)題。當(dāng)FTP客戶端登錄進(jìn)入服務(wù)器的時(shí)候,PASV模式服務(wù)器會(huì)向客戶端傳送本機(jī)的IP地址和數(shù)據(jù)端口,當(dāng)服務(wù)器放在內(nèi)網(wǎng)中的時(shí)候,服務(wù)器會(huì)向客戶端返回內(nèi)網(wǎng)的IP,這當(dāng)然是不能完成連接的,需要讓服務(wù)器返回ISA的外網(wǎng)地址。本來(lái),解決方法可以使用firwall client的application settings中的nameresolutionforlocalhost參數(shù),設(shè)為P就可以讓?xiě)?yīng)用程序返回ISA的外網(wǎng)地址,但這個(gè)參數(shù)是供firewall client使用的,而發(fā)布服務(wù)器不能安裝firewall client,這很可惜。
幸好,還是有一個(gè)好消息,就是serv-u本身具有返回ISA外網(wǎng)地址這樣的功能,方法是先選中新建FTP服務(wù)器的屬性,在domain標(biāo)簽里選擇“enable dynamic dns”,此時(shí)會(huì)出現(xiàn)第二個(gè)標(biāo)簽,叫“dynamic dns”,然后到tz0.com申請(qǐng)動(dòng)態(tài)域名,申請(qǐng)后會(huì)得到一個(gè)key,在此標(biāo)簽中填入此key即可。最后一步,是到新建服務(wù)器的settings屬性中,選擇advanced標(biāo)簽,選中“allow passive mode data transfer”,旁邊的IP地址框留空。這個(gè)框?qū)τ趽芴?hào)用戶不用填,只有出口使用固定地址才需要填。
這樣,serv-u向客戶端返回IP和端口前,會(huì)先向tz0.com查詢到ISA外網(wǎng)的地址,再發(fā)送給客戶端。
解決了這兩個(gè)問(wèn)題,剩下的工作就簡(jiǎn)單了。
從以上內(nèi)容也可以說(shuō)明一點(diǎn),從內(nèi)網(wǎng)不能發(fā)布IIS的FTP服務(wù)器,因?yàn)镮IS既沒(méi)有選項(xiàng)可以選擇PASV端口的范圍,也沒(méi)有辦法讓其返回ISA外網(wǎng)的地址。而serv-u這兩條都可以滿足。當(dāng)然,在微軟的網(wǎng)站上也可能有方法解決IIS的這兩個(gè)問(wèn)題。
發(fā)布FTP服務(wù)器的時(shí)候,要注意FTP服務(wù)器有PORT和PASV兩種模式。兩者的共同點(diǎn),是都使用21端口進(jìn)行用戶驗(yàn)證及管理,差別在于傳送數(shù)據(jù)的方式不同,PORT模式的FTP服務(wù)器數(shù)據(jù)端口固定在20,而PASV模式則在1025-65535之間隨機(jī)。發(fā)布的時(shí)候要考慮這個(gè)差別。
如果FTP服務(wù)器在內(nèi)部網(wǎng)絡(luò)中,在建立server publish rules時(shí)(雖然web publish rules也能發(fā)布ftp服務(wù)器,但它并沒(méi)有提供對(duì)port和pasv模式的處理),protocol definitions中的21 inbound條目要建立一個(gè)secondary connection,為20端口上的inbound或1025-65535端口之間的inbound。
如果FTP服務(wù)器建立在ISA服務(wù)器上,就需要在ip packet filters中設(shè)置相關(guān)的條目,對(duì)于PORT模式,很簡(jiǎn)單,開(kāi)放20 inbound就是,但pasv模式就麻煩一點(diǎn),因?yàn)閕p packet filters不能設(shè)置端口段,但我們也不可能把幾萬(wàn)個(gè)端口逐個(gè)寫(xiě)一遍,只能把local port設(shè)置為dynamic,remote port設(shè)置為all ports,當(dāng)然,對(duì)安全性這是個(gè)損害。
幸運(yùn)的是,有些PASV模式的FTP服務(wù)器能夠設(shè)置PASV模式端口的范圍,比如serv-u,它能夠把PASV模式端口控制在最多50個(gè)端口范圍內(nèi),如果為serv-u設(shè)置的并發(fā)用戶數(shù)不多,那么我們就可以為每個(gè)PASV端口寫(xiě)一條filter,不需要開(kāi)放所有的端口了。如果使用IIS的FTP服務(wù)器,這個(gè)FTP服務(wù)器沒(méi)有提供選擇PASV模式端口的功能,只能如上所述那樣,開(kāi)放dynamic和all ports。
從你上面的出錯(cuò)信息來(lái)看,你應(yīng)該是使用IE來(lái)訪問(wèn)FTP服務(wù)器吧。IE的FTP客戶端與其它專業(yè)FTP客戶端不同,不能夠自動(dòng)檢測(cè)FTP服務(wù)器的類型以及根據(jù)服務(wù)器的類型改變客戶端的種類。IE只提供了一個(gè)手工選項(xiàng)來(lái)改變PORT和PASV客戶端角色,就是internet選項(xiàng)->高級(jí)->為FTP站點(diǎn)啟用文件夾視圖,選擇它,IE為PASV模式客戶端,不選則為PORT客戶端。你需要根據(jù)服務(wù)器的類型手工更改這個(gè)選項(xiàng)。如果服務(wù)器的出口是ADSL類的鏈路,還要把“使用被動(dòng)FTP(為防火墻和DSL調(diào)制解調(diào)器兼容性)”一項(xiàng)選上,這兩個(gè)選項(xiàng)只在IE5。5以上版本提供。
相關(guān)文章
用FileZilla Server v0.9.35 架設(shè)FTP服務(wù)器的圖文方法
以下簡(jiǎn)單介紹一下在自己電腦架設(shè)FTP伺服器的方法,下面使用的是開(kāi)放原始碼的免費(fèi)軟體「FileZilla Server」,雖然這軟體是英文的,不過(guò)因?yàn)樗敲赓M(fèi)軟體,而且該有的功能大2010-09-20ftp二進(jìn)制上傳 FTP設(shè)置二進(jìn)制(binary)模式上傳文件圖文教程
FTP怎么使用二進(jìn)制上傳文件?在linux中時(shí)我們需要設(shè)置ftp上偉為二進(jìn)制,在 windows時(shí)好像沒(méi)這個(gè)區(qū)別哦,接下來(lái)將詳細(xì)介紹,需要了解的朋友可以參考下2012-12-17- 新版CuteFTP內(nèi)置計(jì)劃任務(wù)表模塊,能夠按用戶預(yù)先指定的日期和時(shí)間,自動(dòng)撥號(hào)、上傳文件并自動(dòng)斷線(總之就是“全自動(dòng)”)。2011-04-11
- FTP 是管理維護(hù)網(wǎng)站資料 的重要手段,經(jīng)常有一些客戶提出Ftp上傳的疑問(wèn),現(xiàn)總結(jié)常見(jiàn)錯(cuò)誤和解決方案如下(以FlashFxp為例)2010-03-22
不用工具查看FlashFXP里的FTP星號(hào)賬號(hào)密碼的方法
我們一直使用FlashFXP作為ftp客戶端連接服務(wù)器,最近看朋友不用工具就可以復(fù)制密碼,這么多年我還一直用星號(hào)查看器,麻煩不說(shuō)還經(jīng)常報(bào)毒,經(jīng)過(guò)查找終于發(fā)現(xiàn)了,這里腳本之2014-05-30Xlight FTP Server 輕量級(jí)FTP服務(wù)器軟件使用介紹
一提到FTP服務(wù)器很朋友就想到serv-u不錯(cuò)serv-u的確是FTP最為經(jīng)典的一款FTP服務(wù)端工具.但是serv-u由于功能比較強(qiáng)大還有一些非常多的不常用的豐富的功能在一起加大了他的體積2013-06-23通過(guò)IE從FTP服務(wù)器上下載文件資源即便沒(méi)有FTP工具依然可以下載
IE瀏覽器中內(nèi)置/FTP功能,在沒(méi)有FTP工具的情況下,也可以輕松地從FTP服務(wù)器上下載資料,下面為大家介紹下如何通過(guò)IE從FTP服務(wù)器上下載文件,感興趣的朋友可以參考下2013-12-17- 一直聽(tīng)說(shuō)filezilla工具不錯(cuò),強(qiáng)大而且免費(fèi),今天需要用到移動(dòng)文件,發(fā)現(xiàn)不太好找,不如flashfxp習(xí)慣2014-05-26
Wing FTP Server(FTP服務(wù)器管理軟件)英文版使用方法(操作步驟)
Wing FTP Server怎么使用呢?下面小編就為大家具體的講解英文版的使用步驟,需要的用戶快來(lái)試試吧,壓縮/解壓縮文件 - 直接在服務(wù)器上壓縮/解壓縮文件,節(jié)省你的上傳/下載時(shí)2016-10-21