ftp模式分为两种:主动模式(active),被动模式(passive),而被动模式是为了降低客户端防火墙的配置难度产生的。
主动模式:也可认为为传统模式,客户端会选择一个大于1024的端口n,进行命令发送至服务器的21端口进行数据请求,并告知服务器我的FTP模式为Active模式,同时发送给服务器我的数据的监听端口为n+1,然后服务器会监听n+1端口。然后由服务器的20端口,主动跟客户端的n+1端口进行连接,传输数据。
被动模式:客户端选择一个大于1024的端口n,然后告诉服务器我的ftp模式是passive,然后服务器会选择一个大于1024的端口,告诉客户端,让客户端的n+1连接。
此时,服务器是被动的,那么该端口的出站和入站规则就会很麻烦,由于端口是动态的,因此需要对服务器的FTP配置进行修改,限定在Passive模式下,生成的端口范围,用来设置防火墙规则。
修改服务器的配置:
Pasv_min_port=40001
Pasv_min_port=41000
然后开放服务器的相应端口
Iptables –A INPUT -p tcp -dport 40001:41000 -m state -state NEW,ESTABLISHED – j ACCEPT
Iptables –A OUTPUT -p tcp --sport 40001:41000 –dport 1024:65535 –m state state \ NEW,ESTABLISHED – j ACCEPT