Назад | Перейти на главную страницу

Невозможно подключиться к VSFTPD с удаленного сервера

Мой FTP-сервер - это CentOS 5.4 с VSFTPD.

Когда я пытаюсь ls после подключения к моему серверу по FTP я получаю следующее:

ftp> ls
229 Entering Extended Passive Mode (|||12206|)
ftp: Can't connect to `000.000.000.000': Connection refused
500 Illegal PORT command.
425 Use PORT or PASV first.

я могу сделать mkdir без каких-либо проблем.

Когда я подключаюсь с того же сервера к моему ftp-серверу, у меня нет проблем.

Порт 20 и 21 открыты в моем iptable. Как я могу это исправить?

Спасибо!!

ОБНОВИТЬ :

telnet myftpserver.com 20
Trying 000.000.000.000...
telnet: connect to address 000.000.000.000: Connection refused
telnet: Unable to connect to remote host

и

[root@internal vsftpd]# /sbin/iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0           
SSH_CHECK  tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22 state NEW 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain RH-Firewall-1-INPUT (2 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:33988 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:20 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 255 
ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     ah   --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     udp  --  0.0.0.0/0            224.0.0.251         udp dpt:5353 
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:631 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:631 
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain SSH_CHECK (1 references)
target     prot opt source               destination         
           all  --  0.0.0.0/0            0.0.0.0/0           recent: SET name: SSH side: source 
DROP       all  --  0.0.0.0/0            0.0.0.0/0           recent: UPDATE seconds: 60 hit_count: 4 name: SSH side: source 

Проблема связана с тем, что пассивный FTP использует порты, отличные от 20 и 21. Об этом читайте здесь: http://slacksite.com/other/ftp.html

Обычно я настраиваю диапазон портов в файле vsftpd.conf для пассивного FTP, а затем открываю эти порты на брандмауэре.

Кроме того, я в основном парень freebsd, но я почти уверен, что в linux есть способ динамически открывать порты FTP PASV, но кому-то другому придется вмешаться в это. Я посмотрю и посмотрю, что найду.

В Linux запустите команду:

modprobe ip_conntrack_ftp

должен исправить проблему с подключением при «Входе в расширенный пассивный режим».

РЕДАКТИРОВАТЬ:

Первое обращение в Google: http://www.cyberciti.biz/faq/iptables-passive-ftp-is-not-working/

Лучшее объяснение: http://www.sns.ias.edu/~jns/wp/2006/01/12/iptables-connection-tracking-ftp/