iT邦幫忙

0

NAT下FTP PASV-PORT的問題

wckai 2010-08-05 20:32:1416316 瀏覽

小弟公司的FTP目前接在一台防火牆(Fortigate 110c)後方,
有在虛擬IP的外部網路地址設定了10.0.0.1(僅用來表示、外部真實IP)
映射之網路地址:192.168.1.2
防火牆政策則設定了10.0.0.1 -> 192.168.1.2 允許全部通過
我們的FTP用的是GENE6,
裏頭我們有針對PASV限制可用PORT的範圍15000~20000,
但當我們在本機上用FTP CLIENT連線(連到192.168.1.2)的確會得到範圍內的PORT號,
但當我們從外部連入時(連到10.0.0.1)得到的PORT號卻不會落在設定的PORT範圍內,
請問這是怎麼一回事呢?
有試著在防火牆政策裡設定不使用NAT,
結果也是一樣,
不過在不使用NAT的狀況下,
FTP-SERVER看到的CLIENT連線是使用者連出的IP,
若使用了NAT的話,
看到的是防火牆的IP(192.168.1.1),
這有辦法調整嗎?
因為未來會限制某些PORT號才能通過,
所以CLIENT 收到的PASV-PORT不再我設定的範圍內真的是很困擾說...

還煩請各位前輩協助解惑一下,謝謝!

2 個回答

8
krimy
iT邦新手 4 級 ‧ 2010-08-06 12:10:30
最佳解答

其實FTP Pasv的問題蠻討厭的,Firewall不行只單獨開FTP port,還要開pasv-port(FTP DATA port),才可以解決..
Fortigate不會幫你開放Pasv port,還要手動開放這些Pasv port(15000-20000),FTP才可以正常運作...
我記得之前Cisco的PIX有這個功能會自動幫你對映Port

附上我之前的設定方法給你參考...http://my-it-tips.blogspot.com/2010/07/passive-pasv-ftp-serverfirewallftp-port.html

wckai iT邦新手 5 級 ‧ 2010-08-06 14:24:30 檢舉

krimy大:
感謝你的回覆。
其實在Fortigate上我已經開啟所需要的PORT了,
我的問題在於,
理論上,
伺服器所回答的PORT應該是在15000-20000之間,(的確,我在本機FTP 127.0.0.1取到的PASV PORT是對的)
但是外部通過Fortigate後取得的PORT號卻不再設定的範圍內,
所以造成雖然我防火牆有開,
但是CLIENT連的又不是我開的PORT,
然後主機端就會出現等待連接逾時的錯誤而導致FTP運作不正常。

krimy iT邦新手 4 級 ‧ 2010-08-12 12:06:59 檢舉

wckai提到:
GENE6

這可能是GENE6的問題,這我就不太會設定GENE6了

4
switch4net
iT邦新手 5 級 ‧ 2010-08-20 20:18:16

在內部連接都是同屬第二層
透過外部都是第三層路由(即使沒有NAT)
我猜也許這是為什麼FTP Server沒法回應正確Service Port的原因
不然你找個L3 switch 在不同網段下連接試試
看是不是也會有同樣現象

另外你可以試著在同一個Police下,
同時設上FTP service Port 及 15000-20000 Service Port
FGT 是可以一條規則綁多個 service Port 的
如果不做NAT就只是當作是第三層交換的路由
新版4.0 Mr2 還有提供 NAT公用版功能
你也可以再試試看

wckai iT邦新手 5 級 ‧ 2011-01-17 09:17:43 檢舉

事實上,
本來的設定就是一條POLICY綁定多個Service-Port,
NAT又是避免不掉(無法把機器直接丟在DMZ),
所以很困擾~~~
現在只能藉由開放大範圍的PORT RANGE來解決這個問題~~~

我要發表回答

立即登入回答