У меня есть проблемы с Vstpd, и я не знаю, связаны они или нет.
Одна из проблем заключается в том, что FireFTP не может пройти этап перечисления каталогов - он просто застревает там навсегда, никаких сообщений об ошибках. Filezilla работает, но тоже иногда зависает. В частности, есть некоторые файлы, которые просто не загружаются - они тоже застревают навсегда, иногда проходят несколько байтов; здесь тоже нет сообщений об ошибках на стороне сервера, а только тайм-аут на стороне клиента. Другие клиенты кажутся совершенно незатронутыми (в частности, Cyberduck на Windows и Transmit на Mac всегда работали безупречно).
С FileZilla файл, который я пытаюсь загрузить, будет создан на сервере с нулевым размером байта, но ничего не будет загружено. Если файл уже был там, он будет очищен. Я также могу загружать другие файлы в тот же каталог, так что это не проблема с разрешениями.
Есть ли проблема с моей конфигурацией? Я использую устаревшую версию? (Это Ubuntu 10.04). Вот vsftpd.conf. Использование самозаверяющего сертификата.
Может это проблема линукса ??? Использование 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).
Чтобы убедиться в этом, я загрузил версию FileZilla для Windows, которая статически связана с версией 2.10, и запустил ее с помощью Wine. Оно работает!!
Покопавшись в багтрекере FileZilla, я наконец нашел подтверждение: http://trac.filezilla-project.org/ticket/7837
Это связано с пассивным FTP или FTPS. 100%
Это не будет работать безопасно для FTPS - тогда вам нужно будет настроить и открыть более высокие порты вручную в брандмауэрах и установить фиксированный диапазон с помощью pasv_min_port
& pasv_max_port
в vsftpd.conf.
Для не-SSL:
http://slacksite.com/other/ftp.html
Обязательно загрузите модули ip_nat_ftp (если вы используете NAT на ЭТОМ СЕРВЕРЕ) и ip_conntrack_ftp
Используйте "ftp helper" в конфигурации iptables для FTP:
-m helper --helper ftp
В случае RHEL / Fedora / Centos вы можете найти специальную строку для модулей в /etc/sysconfig/iptables-config
и добавьте помощника в правила для /etc/sysconfig/iptables
Это на всякий случай.
Если вы находитесь за NAT / Firewall - он должен поддерживать и отслеживать FTP-соединения.