У меня проблема с моим сервером ProFTPD.
Когда я пытаюсь подключиться к серверу с помощью TLS, я получаю тайм-аут после команды MLSD. Это происходит только когда я использую TLS - без него все работает отлично.
Я проверил эти логи:
proftpd.log - ПОЛЬЗОВАТЕЛЬ xxx: Вход выполнен успешно.
tls.log - соединение TLSv1 / SSLv3 принято ... Защита установлена на частную
Где может быть проблема? Я могу предоставить больше информации, просто спросите о ней в комментариях.
РЕДАКТИРОВАТЬ: Сегодня я попытался установить для политики INPUT iptables значение РАЗРЕШИТЬ ... все сработало ... так что проблема в брандмауэре. Как мне настроить iptables для работы с FTPS?
Вот мои настройки iptables:
*filter
:INPUT DROP [930:61159]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [256:26448]
-A INPUT ! -i eth0 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags ACK ACK -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A INPUT -p tcp -m tcp -m multiport --dports 80,443,20,21,25,143,993,110,995,1194 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT
Проблема в том, что модуль conntrack_ftp, который на лету позволяет соединениям с данными ftp проходить через брандмауэр, даже если они должны быть отброшены из-за правил, не может анализировать зашифрованный поток для PASV
/PORT
команды. То же самое относится к невозможности использовать активный режим из-за межсетевого экрана / NAT с зашифрованным управляющим соединением.
Поэтому вам нужно установить статические порты для пассивного режима (или, если клиент не находится за брандмауэром / nat, используйте активный режим) и добавить правило брандмауэра для приема входящих подключений на этих портах.
Порты для пассивного режима устанавливаются через PassivePorts директива.
Изменить: я должен добавить, что количество PassivePorts не только ограничивает количество параллельных подключений, но также ограничивает количество подключений (чтение списков каталогов и / или передачи файлов) на net.netfilter.nf_conntrack_tcp_timeout_time_wait
секунд. Поэтому, если вы переносите много небольших файлов, откройте много портов!