歡迎您光臨本站 註冊首頁

開啟LINUX防火牆后,FTP PASV不能正常登錄問題

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

linux伺服器開啟防火牆,常規設置在防火牆配置文件中添加21埠, FTP伺服器通過port能夠訪問,pasv不能訪問.而客戶端一般是採用pasv方式連接.解決方法如下:

首先要了解概念;

FTP支持兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive (也就是PASV,被動方式). Standard模式 FTP的客戶端發送 PORT 命令到FTP伺服器.Passive模式FTP的客戶端發送 PASV命令到 FTP Server.

PORT 和 PASV的簡單區別如下:

Port模式FTP 客戶端首先和FTP伺服器的TCP 21埠建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令. PORT命令包含了客戶端用什麼埠接收數據.在傳送數據的時候,伺服器端通過自己的TCP 20埠連接至客戶端的指定埠發送數據. FTP server和客戶端建立一個新的連接用來傳送數據.

Passive模式在建立控制通道的時候和Standard模式類似,但建立連接后發送的不是Port命令,而是Pasv命令.FTP伺服器收到 Pasv命令后,隨機打開一個高端埠(埠號大於1024)並且通知客戶端在這個埠上傳送數據的請求,客戶端連接FTP伺服器此埠,然後FTP伺服器將通過這個埠進行數據的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連接.

IE瀏覽器默認使用的是Passive(被動)模式,要連接Linux伺服器大於1024埠,而防火牆並沒有開發1024以上的埠,導致登錄ftp伺服器被防火牆阻止.

vsftp:

修改vsftpd.conf配置文件讓它支持Passive(被動)模式

#vim /etc/vsftpd/vsftpd.conf

在最后一行添加如下內容:

pasv_min_port=10050 (設置被動模式的埠範圍)

pasv_max_port=10060(設置被動模式的埠範圍)

pureftp:

vi pure-ftpd.conf

# 被動連接響應的埠範圍.- for firewalling.

# PassivePortRange 10050 10060

在防火牆配置文件iptables中添加埠

#vim /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10050:100060 -j ACCEPT

重啟服務使其生效

#service vsftpd rstart

#service iptables restart



[火星人 ] 開啟LINUX防火牆后,FTP PASV不能正常登錄問題已經有628次圍觀

http://coctec.com/docs/linux/show-post-45736.html