3 авг. 2012 г.

Исправление ошибок "Server sent passive reply with unroutable address. Using server address instead." или "500 illegal port command" при подключении к FTP серверу на vsftpd

Если у вас ftp сервер находится за роутером и вы из локальной сети подключаетесь отлично, а извне - сыпет ошибки типа "Server sent passive reply with unroutable address. Using server address instead." or "500 illegal port command", то вы по адресу :) Причина этому безобразию - неправильно настроенный по-умолчанию Passive mode на фтп-сервере.

Для начала откройте в вашем роутере порты 4242...4252 для локального адреса фтп-сервера.

Затем в конфиг /etc/vsftpd.conf нужно добавить строчки:

connect_from_port_20=YES 
pasv_enable=YES 
pasv_addr_resolve=YES 
pasv_address=myaddress.dyndns.com
pasv_min_port=4242 
pasv_max_port=4252

Еще для пущей секьюрности можно добавить следующее:

#Включаем список пользователей, только которым можно подключаться к нашему фтп-серверу
userlist_enable=YES
userlist_deny=NO  
#пусть к списку
userlist_file=/etc/vsftpd.userlist 
#включение подробного логирования
logging log_ftp_protocol=YES 
#заключение пользователя в его домашней директории. Маст-хэв опция, если у вас используются локальные аккаунты
chroot_local_user chroot_local_user=YES