又因為防火牆算舊款設備,不像較新穎的機種有FTP追蹤的功能,導致使用者無法連線不然就是無法取得檔案列表,在參閱RFC並經過一番的測試後有以下心得!
若用主動模式大致上會遇到兩種情況:
1.客戶端有實體IP的狀況
2.客戶端為內部IP(如192.168.1.10)利用NAT連外的狀況
客戶端有實體IP的狀況
- 客戶端軟體設定為主動模式,由客戶端連線至伺服器的3021,產生控制連線
- 客戶端隨機產生一個大於1024的port,簡稱為D,並透過控制連線使用PORT指令通知伺服器端其產生的埠號
- 伺服器利用3020連到客戶端 D埠建立資料連線
客戶端利用NAT連外的狀況
- 客戶端軟體設定為主動模式,由客戶端連線至伺服器3021,產生控制連線
- 客戶端隨機產生一個大於1024的port(但其IP為內部IP時 example:192.168.1.10),客戶端軟體應該就會跟你抱怨Response:500 Illegal PORT command,然後連線就斷了
被動模式
- 客戶端軟體設定為被動模式,由客戶端連線至伺服器的3021,產生控制連線
- 客戶端利用控制連線傳送PSVC通知伺服器端產生一個大於1024的連接埠,簡稱為P
- 客戶端連線至P埠,這時因為防火牆只開放3020 - 3029,所以湊巧建立資料連線的機率相當的低,因而出現無法取得檔案列表的問題
所以針對被動模式,只要限定伺服器產生的資料埠位於防火牆開放的埠就可以解決,對於使用者而言並不需要額外的設定。只要在proftpd.conf裡加上設定:PassivePorts 3020 3029,這樣伺服器接收到PSVC時只會用3020-3029這個範圍的連接埠進行監聽囉。
沒有留言:
張貼留言