如何配置 vsftpd 以被動模式工作

如何配置 vsftpd 以被動模式工作

每當我安裝vsftpdcentos,我只為使用者設定監獄環境,其餘的都是預設配置vsftpd。我建立使用者並嘗試連接filezilaftp 客戶端,但無法使用被動模式連線。我總是將其更改transfer settings為活動模式以成功連接到ftp server否則我會得到

 Error: Failed to retrieve directory listing

那麼有沒有辦法更改vsftp.conf文件中的任何指令,並且我們可以以被動模式連接到伺服器?

答案1

要為 vsftpd 設定被動模式,您需要在 vsftpd.conf 中設定一些參數。

pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090

這將啟用被動模式並將其限制為使用十一個連接埠進行資料連接。這很有用,因為您需要在防火牆上開啟這些連接埠。

iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT

如果測試後一切正常,則儲存防火牆的狀態

service iptables save

這將更新/etc/sysconfig/iptables文件。

要在 CentOS 7 中執行此操作,您必須使用新的 firewalld,而不是 iptables:

找到你的區域:

# firewall-cmd --get-active-zones
public
  interfaces: eth0

我的區域是“公共”,因此我將區域設為公共,新增連接埠範圍,然後重新載入:

# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload

建立連線後會發生什麼

  • 您的用戶端透過連接埠 21 連接到 vsftpd 伺服器。

  • 伺服器回應客戶端,告訴它要連接到上面指定的範圍中的哪個連接埠。

  • 客戶端在指定連接埠上建立資料連接,並且會話繼續。

對於不同的 ftp 有很好的解釋模式這裡。

答案2

若要啟用被動模式,請在 vsftp.conf 中設定以下設定選項:

pasv_enable=YES
pasv_min_port=41361
pasv_max_port=65534
pasv_address=xxx.xxx.xxx.xxx

您當然可以更改起始端口和結束端口,並且應該將 xxx 替換為您伺服器的公共 IP。

此外,您應該在防火牆中開啟被動模式連接埠範圍。在 centos 上,您可以載入ip_conntrack_ftp模組來處理防火牆中的 ftp 連線。編輯/etc/sysconfig/iptables-configip_conntrack_ftp 並將其新增至 IPTABLES_MODULES 選項。然後重新啟動 iptables:

/sbin/service iptables restart

答案3

在 旁邊pasv_enable=YES,指定 VSFTP 將執行 PASV 模式的連接埠範圍:

pasv_min_port=50000
pasv_max_port=50999
pasv_enable=YES

不要忘記配置 iptables 允許在這些連接埠上傳輸資料包:

iptables -I INPUT -p tcp --dport 50000:50999 -j ACCEPT

答案4

通常,阻止使用被動模式(阻止資料傳輸所需的 tcp 連線)的不是 ftp 伺服器 vsftpd,而是像 iptable 這樣的防火牆。

相關內容