3

У меня были проблемы с моим ftp-сервером, который я пытался исправить уже более недели.

Моя конфигурация:

  • Я использую Raspbian на Raspberry Pi.
  • Мой ftp-сервер - чистый ftpd, и я запускаю его с этими переключателями:

/usr/local/sbin/pure-ftpd -D -C 5 -E -A -H -x -p 35000:36000 -u 0 -y 5:3 -Y 1

  • Я скомпилировал его с опцией "--with-tls"
  • Я использую явное шифрование TLS (я также пробовал неявное, тот же результат)
  • У меня есть порт, перенаправленный моему диапазону пассивных портов, как определено ключом -p в чистом ftpd
  • У меня также порт перенаправлен порт 20 до 21

Другие серверы, на которых я работаю:

  • Сервер самбы
  • Веб-сервер Apache
  • Пользовательский сервер сокетов Python
  • и встроенный сервер shh/sftp

У меня также работает клиент no-ip DUC

Вкратце вот проблемы, которые у меня возникают с чистым ftpd:

  • FTP в локальной сети без TLS (активный и пассивный): работает
  • FTP в локальной сети с TLS (активный и пассивный): работает
  • FTP в WAN без TLS (пассивный): работает
  • FTP в WAN с TLS (активный и пассивный): не работает
  • Не могу изменить порт, так как он не будет работать в глобальной сети

Вот журналы ошибок и вещи, которые я пробовал:

Результаты ftptest.net (для FTP с tls):

........

Команда: PASV

Ответ: 227 Вход в пассивный режим (192,168,0,4,138,78)

Ошибка: сервер возвратил непринятый частный IP-адрес в ответе PASV

Я читал на форумах, что вы должны указывать IP-адрес PASV с ключом -P, так я и сделал, и вот результат:

Ответ: 211-поддерживаемые расширения:

.....................

Ошибка: возврат каретки без перевода строки

И это как без, так и с TLS! Так что да, переключатель -P вообще не работает!

Следует также отметить, что порты пассивного режима являются правильными (взяты из команды PASV)

Журнал Filezilla (с явным tls):

Команда: PASV

Ответ: 227 Вход в пассивный режим (192,168,0,4,138,251)

Статус: Сервер отправил пассивный ответ с адресом, который не может быть переадресован. Вместо этого используйте адрес сервера.

Команда: MLSD

Ошибка: не удалось установить соединение для передачи данных: ECONNREFUSED - соединение отклонено сервером

Ошибка: соединение закрыто сервером

Ошибка: не удалось получить список каталогов

С переключателем -P:

То же самое, за исключением того, что "Сервер отправил неуправляемый адрес *"

Я также попытался связываться с брандмауэром (iptables), разрешив все (таким образом, отключая брандмауэр) с помощью этих команд:

iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Я также не могу изменить порт по умолчанию, потому что, если я это сделаю, я получаю сообщение об отказе в соединении.

И у меня есть еще один странный симптом, который только начал появляться сегодня:

Я могу открыть только порт 21-21 (это работает), потому что, если я открою 20, я получу ssh-сервер.

Войдите для этого:

Статус: подключен, ожидание приветственного сообщения ... Ответить:

SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2

Ошибка: Ответ не содержит действительный код ответа

Я также попытался перенаправить порт 443, с 989 по 990 (это было для неявного tls), и я попытался установить Raspberry Pi в качестве хоста DMZ.

Примечание: я переключился с vsftpd, так как он был медленным и не поддерживал безопасный ftp (3.x для Raspberry Pi нужно скомпилировать с поддержкой защищенного ftp, но я получил ошибку компиляции), и я не использую proftpd, потому что он не может скомпилировать с поддержкой TLS

/var/log/messages не предоставляет никакой полезной информации (только говорит, что пользователь вошел в систему каждый раз с или без tls)

Надеюсь, вы, ребята, сможете мне помочь, потому что я действительно заблудился!

1 ответ1

0

ЭТО НАКОНЕЦ РЕШЕНО! Все, что мне нужно было сделать, это изменить диапазон пассивных портов с 50000-51000 на 12000-13000! Теперь все отлично работает !!! Я сейчас использую чистый ftpd, как это:

/usr/local/sbin/pure-ftpd -D -C 5 -E -A -H -x -S 192.168.0.4,60 -p 12000:13000 -u 0 -y 5:3 -Y 1 -P &

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .