vsftpd выдаёт No route to host. Почему и что делать?

Аватар пользователя admin

На сервере работает vsftpd, войти по FTP получается, но при попытке перейти в каталог или получить список файлов, появляется ошибка "No route to host". Что это за ошибка и что с ней делать?

Данная проблема возникает обычно в системах, основанных на RHEL (CentOS, Oracle Linux и т.д.) Связана она с настройками межсетевого экрана (firewall) по умолчанию и работой vstpd, который по умолчанию использует пассивный режим (passive mode), для работы с которым используются дополнительные порты. По умолчанию в файле /etc/sysconfig/iptables присутствует правило:

 -A INPUT -j REJECT --reject-with icmp-host-prohibited


которое приводит к невозможности использовать явно неразрешённые для работы порты, но проблема в том, что vsftpd (да и не только он) выбирает порты для пассивного режима случайным образом! Выходом может быть явное указание в конфигурационном файле vsftpd (в CentOS это /etc/vsftpd/vsftpd.conf) того диапазона портов, которые мы разрешаем использовать vstpd в пассивном режиме с помощью директив pasv_min_port и pasv_max_port. Например:

pasv_min_port=20000
pasv_max_port=25000


После чего открыть этот же диапазон портов в межсетевом экране:

-A INPUT -p tcp --dport 20000:25000 -j ACCEPT

 

Не забудьте две вещи:

  1. Убедитесь, что выбранный вами диапазон портов не используется какими-либо другими службами, чтобы не сделать дыру в безопасности, безусловно разрешив использование данных портов.
  2. Перезапустить службы vsftpd и iptables после внесения изменений в конфигурационные файлы

 

0
Ваш рейтинг: Нет