Ftp

使用 Vsftp 的 FTPS 問題

  • January 26, 2016

我對 Vstpd 有一些問題,我不知道它們是否相關。

一個問題是 FireFTP 無法通過目錄列表階段——它永遠卡在那裡,沒有錯誤消息。Filezilla 可以工作,但有時也會卡住。特別是有些文件無法上傳——它們也被永遠卡住了,有時會通過幾個字節;在這裡,伺服器端也沒有錯誤消息,只有客戶端超時。其他客戶端似乎完全不受影響(特別是 windows 上的 Cyber​​duck 和 mac 上的 Transmit 總是完美無缺)。

使用 FileZilla,我嘗試上傳的文件將以零字節大小在伺服器上創建,但不會上傳任何內容。如果文件已經存在,它將被清空。我也可以將其他文件上傳到同一目錄,所以這不是權限問題。

我的配置有問題嗎?我使用的是過時的版本嗎?(這是 Ubuntu 10.04)。這是 vsftpd.conf。使用自簽名證書。

也許這是一個Linux問題???使用 Ubuntu 12.04 作為客戶端作業系統。

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
dual_log_enable=YES
xferlog_std_format=NO
xferlog_file=/var/log/vsftpd.log
session_support=YES

connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

ssl_enable=YES
require_ssl_reuse=NO
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
ssl_ciphers=HIGH

原來,問題出在客戶端,而不是伺服器!

我進一步調查,發現最有可能的罪魁禍首是安裝在客戶端機器上的gnutls版本(它是 Ubuntu 12.04,GnuTLS 2.12.14)。

為了驗證這一點,我下載了 Windows 版本的 FileZilla,它靜態連結到 2.10 版本,並使用 Wine 執行它。有用!!

探勘 FileZilla 的 bugtracker 我終於喜歡確認:http ://trac.filezilla-project.org/ticket/7837

它與被動 FTP 或 FTPS 有關。100%

它不能安全地用於 FTPS - 然後您需要在防火牆中手動調整和打開更高的埠,並在 vsftpd.conf 中使用pasv_min_port&設置固定範圍。pasv_max_port

對於非 SSL:

http://slacksite.com/other/ftp.html

  1. 確保載入 ip_nat_ftp(如果您在此伺服器上使用 NAT)和 ip_conntrack_ftp 模組
  2. 在 FTP 的 iptables 配置中使用“ftp helper”:

-m helper --helper ftp

在 RHEL/Fedora/Centos 的情況下,您可以在其中找到模組的特殊字元串/etc/sysconfig/iptables-config並在規則中添加幫助程序/etc/sysconfig/iptables

這適用於任何情況。

如果您在 NAT/防火牆後面 - 它應該支持和跟踪 FTP 連接。

引用自:https://serverfault.com/questions/394727