解决IPTABLES规则和VSFTPD被动模式冲突的问题
IPTABLES里面仅仅开放了80、21等常用端口,这样就导致了VSFTPD在被动模式时无法使用随机端口,从而造成了客户端连接FTP时无法列出目录这样的问题。解决方式很简单,给VSFTPD增加随机端口的范围,然后把这个端口范围添加到IPTABLES.
具体做法如下:
修改/etc/vsftpd/vsftpd.conf的配置文件,在文件末端添加
pasv_max_port=6666
pasv_min_port=5555
然后将这两个端口范围添加到IPTABLES中,亦即vi /etc/sysconfig/iptables修改IPTABLES的配置文件,在其中添加
-I INPUT -p tcp –dport 5555:6666 -j ACCEPT
-I OUTPUT -p tcp –sport 5555:6666 -j ACCEPT
这样的随机端口范围,使之合法化。
最后重启一下两个服务:
[root@ido ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@ido ~]# service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: mangle filter nat [ OK ]
Applying iptables firewall rules: [ OK ]
用客户端测试,成功!