Iptables
無法從遠端伺服器連接到 VSFTPD
我的 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/