小弟公司的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不再我設定的範圍內真的是很困擾說...
還煩請各位前輩協助解惑一下,謝謝!
其實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
在內部連接都是同屬第二層
透過外部都是第三層路由(即使沒有NAT)
我猜也許這是為什麼FTP Server沒法回應正確Service Port的原因
不然你找個L3 switch 在不同網段下連接試試
看是不是也會有同樣現象
另外你可以試著在同一個Police下,
同時設上FTP service Port 及 15000-20000 Service Port
FGT 是可以一條規則綁多個 service Port 的
如果不做NAT就只是當作是第三層交換的路由
新版4.0 Mr2 還有提供 NAT公用版功能
你也可以再試試看