Iptables

無法從遠端伺服器連接到 VSFTPD

  • February 19, 2016

我的 FTP 伺服器是帶有 VSFTPD 的 CentOS 5.4。

當我嘗試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/

引用自:https://serverfault.com/questions/118388