使用 Vsftp 的 FTPS 問題
我對 Vstpd 有一些問題,我不知道它們是否相關。
一個問題是 FireFTP 無法通過目錄列表階段——它永遠卡在那裡,沒有錯誤消息。Filezilla 可以工作,但有時也會卡住。特別是有些文件無法上傳——它們也被永遠卡住了,有時會通過幾個字節;在這裡,伺服器端也沒有錯誤消息,只有客戶端超時。其他客戶端似乎完全不受影響(特別是 windows 上的 Cyberduck 和 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
- 確保載入 ip_nat_ftp(如果您在此伺服器上使用 NAT)和 ip_conntrack_ftp 模組
- 在 FTP 的 iptables 配置中使用“ftp helper”:
-m helper --helper ftp
在 RHEL/Fedora/Centos 的情況下,您可以在其中找到模組的特殊字元串
/etc/sysconfig/iptables-config
並在規則中添加幫助程序/etc/sysconfig/iptables
這適用於任何情況。
如果您在 NAT/防火牆後面 - 它應該支持和跟踪 FTP 連接。