在win 2003 中配置被動模式
被動模式 FTP 連接 是有時稱為到 " 服務(wù)器管理 ", 因為與之一瞬態(tài)端口用作數(shù)據(jù)連接的服務(wù)器端端口服務(wù)器響應(yīng)客戶端發(fā)出 pasv 命令后,,。 由客戶端, 數(shù)據(jù)連接命令發(fā)出后服務(wù)器連接到客戶立即使用端口上面控制連接的客戶端端口,。
與端口范圍 1024 - 65535 內(nèi)默認(rèn)模式 Passive - IIS FTP 中隨機(jī)選擇到響應(yīng)。 要進(jìn)一步限制這些巨大端口范圍, 系統(tǒng)管理員可配置命名PassivePortRange 元數(shù)據(jù)庫屬性關(guān)鍵字,, 此屬性關(guān)鍵字僅存在于 IIS 6.0, for IIS 5.0 在 Windows 2000,, 系統(tǒng)管理員需要安裝 Service Pack 4, 在系統(tǒng)注冊表中 PassivePortRange 項中添加,。
更改 PassivePortRange for IIS, 執(zhí)行過程之一下面部分中所述,。
用于 Windows Server 2003
要啟用直接編輯元數(shù)據(jù)庫)
1 . 打開 IIS Microsoft 管理控制臺 (MMC)。
2 . 右擊本地計算機(jī)節(jié)點(diǎn),。
3 . 選擇 屬性 ,。
4 請確保 啟用直接編輯元數(shù)據(jù)庫 復(fù)選框。
通過 ADSUTIL 腳本配置 PassivePortRange b)
1 . 單擊 開始 ,、 運(yùn)行 ,, 鍵入 cmd, 和然后 確定 。
2 . 鍵入 cd Inetpub\AdminScripts,, 然后按 Enter,。
3 . 鍵入以下命令從命令提示符。
CSCRIPT.exe C:\Inetpub\AdminScripts\adsutil.vbs set /MSFTPSVC/PassivePortRange "5500-5515"
4 重新啟動 FTP 服務(wù),。
通過 ADSUTIL 腳本配置時您會看到以下輸出:
Microsoft (R) Windows Script Host 版本 5.6
版權(quán)所有 (C) Microsoft Corporation 1996 - 2001,。 保留所有權(quán)利。.
PassivePortRange (STRING) " 5500-5515 ":
注意:如果開了系統(tǒng)自帶的防火墻,,必須在例外里添加以上端口
什么是主動,,什么是被動,為什么首選被動
FTP 分為兩類:
主動FTP(Port FTP),,也就是一般的FTP﹔被動FTP(Port FTP)
主動FTP
主動方式的FTP是這樣的:客戶端從一個任意的非特權(quán)端口N(N>1024)連接到FTP服務(wù)器的命令端口,,也就是21端口。然后客戶端開始端口N+1,,并發(fā)送FTP命令“port N+1”到FTP服務(wù)器,。接著服務(wù)器會從它自己的數(shù)據(jù)端口(20)連接到客戶端指定的數(shù)據(jù)端口(N+1)。
針對FTP服務(wù)器前面的防火墻來說,,必須允許以下通訊才能支持主動方式FTP:
1. 任何端口到FTP服務(wù)器的21端口 (客戶端初始化的連接 S<-C)
2. FTP服務(wù)器的21端口到大于1024的端口(服務(wù)器響應(yīng)客戶端的控制端口 S->C)
3. FTP服務(wù)器的20端口到大于1024的端口(服務(wù)器端初始化數(shù)據(jù)連接到客戶端的數(shù)據(jù)端口 S->C)
4. 大于1024端口到FTP服務(wù)器的20端口(客戶端發(fā)送ACK響應(yīng)到服務(wù)器的數(shù)據(jù)端口 S<-C)
主動方式FTP的主要問題實際上在于客戶端,。FTP的客戶端并沒有實際建立一個到服務(wù)器數(shù)據(jù)端口的連接,它只是簡單的告訴服務(wù)器自己****的端口號,,服務(wù)器再回來連接客戶端這個指定的端口,。對于客戶端的防火墻來說,,這是從外部系統(tǒng)建立到內(nèi)部客戶端的連接,這是通常會被阻塞的,。
防火墻設(shè)置的例子
建置一個防火墻下的FTP server,,使用主動FTP(Port FTP) mode:預(yù)設(shè)的FTP port:21 以及FTP data port:20
執(zhí)行以下兩行指令,只允許port 21 以及port 20 開放,,其它關(guān)閉,。
iptables -A INPUT -p tcp -m multiport –dport 21,20 -j ACCEPT
iptables -A INPUT -p tcp -j REJECT –reject-with tcp-reset
FTP軟件本身的設(shè)置
以vsFTP為例子. 修改/etc/vsFTPd/vsFTPd.conf
新增底下兩行
listen_port=21
ftp_data_port=20
設(shè)置錯會出現(xiàn)的情況
FTP client(如cuteFTP)的聯(lián)機(jī)方式不能夠選擇passive mode,否則無法建立數(shù)據(jù)的聯(lián)機(jī),。也就是讀者可以連上FTP server,,但是執(zhí)行l(wèi)s、get 等等的指令時,,便無法運(yùn)作,。
被動FTP
為了解決服務(wù)器發(fā)起到客戶的連接的問題,人們開發(fā)了一種不同的FTP連接方式,。這就是所謂的被動方式,,或者叫做PASV,當(dāng)客戶端通知服務(wù)器它處于被動模式時才啟用,。
在被動方式FTP中,,命令連接和數(shù)據(jù)連接都由客戶端,這樣就可以解決從服務(wù)器到客戶端的數(shù)據(jù)端口的入方向連接被防火墻過濾掉的問題,。當(dāng)開啟一個 FTP連接時,,客戶端打開兩個任意的非特權(quán)本地端口(N > 1024和N+1)。第一個端口連接服務(wù)器的21端口,,但與主動方式的FTP不同,,客戶端不會提交PORT命令并允許服務(wù)器來回連它的數(shù)據(jù)端口,而是提交 PASV命令,。這樣做的結(jié)果是服務(wù)器會開啟一個任意的非特權(quán)端口(P > 1024),,并發(fā)送PORT P命令給客戶端。然后客戶端發(fā)起從本地端口N+1到服務(wù)器的端口P的連接用來傳送數(shù)據(jù),。
對于服務(wù)器端的防火墻來說,,必須允許下面的通訊才能支持被動方式的FTP:
1. 從任何端口到服務(wù)器的21端口 (客戶端初始化的連接 S<-C)
2. 服務(wù)器的21端口到任何大于1024的端口 (服務(wù)器響應(yīng)到客戶端的控制端口的連接 S->C)
3. 從任何端口到服務(wù)器的大于1024端口 (入;客戶端初始化數(shù)據(jù)連接到服務(wù)器指定的任意端口 S<-C)
4. 服務(wù)器的大于1024端口到遠(yuǎn)程的大于1024的端口(出,;服務(wù)器發(fā)送ACK響應(yīng)和數(shù)據(jù)到客戶端的數(shù)據(jù)端口 S->C)
防火墻設(shè)置的例子
建置一個防火墻下的FTP server,,使用被動FTP(Port FTP) mode:FTP port:21 以及FTP data port 從9981 到9986。
執(zhí)行以下兩行指令,,只允許port 21 以及port 9981-9990 開放,,其它關(guān)閉。
iptables -A INPUT -p tcp -m multiport –dport 21,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990 -j ACCEPT
iptables -A INPUT -p tcp -j REJECT –reject-with tcp-reset
FTP軟件本身的設(shè)置
以vsFTP為例子. 修改/etc/vsFTPd/vsFTPd.conf
新增底下四行
listen_port=21
pasv_enable=YES
pasv_min_port=9981
pasv_max_port=9986
設(shè)置錯會出現(xiàn)的情況
這個例子中,,F(xiàn)TP client(如cuteFTP)的聯(lián)機(jī)方式必須選擇passive mode,,否則無法建立數(shù)據(jù)的聯(lián)機(jī),。也就是讀者可以連上FTP server,但是執(zhí)行l(wèi)s,get 等等的指令時,,便無法運(yùn)作,。
|