关于ftp的被动模式与IPTABLES策略
FTP的被动模式:
PC--->21端口OK,pasv端口--->PC   
在vsftpd.conf里需要定义的内容:
pasv_enable=YES
pasv_min_port=9000
pasv_max_port=10000
setproctitle_enable=YES    #为每个连接单独开一个进程


通常我们在linux服务器上开启iptables后,就要做相关定义:
iptables -F
iptables -X
iptables -Z
iptables -P INPUT       DROP
iptables -P OUTPUT      DROP
iptables -P FORWARD     ACCEPT
iptables -t filter -A INPUT --dport 21 -j ACCEPT
iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -t filter -A OUTPUT --sport 9000:10000 -j ACCEPT
iptables -t filter -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
执行完上面的策略后,你发现每次在成功登入后,都无法成功的执行命令:
ftp> ls
200 PORT command successful. Consider using PASV.

解决方法:(选其中之一均可)
1、修改vsftpd.conf文件,将安全检测给关掉
pasv_promiscuous=YES  #这个是用于检测pasv的安全检查,YES为关闭安全检查

2、为vsftpd添加iptable的规则:
iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 9000:10000 -j ACCEPT