vsftpd выдаёт No route to host. Почему и что делать?
На сервере работает 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
Не забудьте две вещи:
- Убедитесь, что выбранный вами диапазон портов не используется какими-либо другими службами, чтобы не сделать дыру в безопасности, безусловно разрешив использование данных портов.
- Перезапустить службы vsftpd и iptables после внесения изменений в конфигурационные файлы
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 3313 просмотров