在设置ftp通过iptables规则前,需要先了解下ftp工作的两种模式,他们分别是主动模式和被动模式。如果对ftp原理不是很清楚,可以先参考下下面几篇文章。
ftp简介1、ftp主动模式和被动模式的区别
2、active ftp vs. passive ftp, a definitive explanation
简单的说,主动模式是从服务器端向客户端发起连接;被动模式是客户端向服务器端发起连接。两者的共同点是都使用 21端口进行用户验证及管理,差别在于传送数据的方式不同,port模式的ftp服务器数据端口固定在20,而pasv模式则在1025-65535之间 随机。
了解ftp原理后,接下来就去设置iptables规则。我自己服务器上默认input规则是drop,output是accept。
命令1、开放21、20端口
# iptables -a input -p tcp --dport 20 -j accept# iptables -a input -p tcp --dport 21 -j accept如果output默认也是drop,那么还需要添加一下规则。
# iptables -a output -p tcp --sport 20 -j accept2、接受所有状态为established、related的连接
# iptables -a input -m state --state established,related -j accept有关related状态的说明:
related状态在有双通道的服务中会出现的。比如ftp服务的控制通道和数据通道。client发送syn请求到server的21端口,中间的linux系统变为new状态。server回复syn ack应答包给client,中间的linux变为established状态。当ftp的控制通道建立完后,会建立数据通道,而数据通道的第一个包就是related状态,以后的包又变成established状态。
3、配置iptables
# vi /etc/sysconfig/iptables-config找到iptables_modules,取消注释,添加ip_conntrack_ftp模块,保存。ip_conntrack_ftp模块可以让iptables支持被动模式的ftp连接。
iptables_modules=\ip_conntrack_ftp\4、保存iptables规则、重启。
[root@iz94myad6wkz ~]# service iptables save iptables: saving firewall rules to /etc/sysconfig/iptables:[ ok ][root@iz94myad6wkz ~]# service iptables restartiptables: setting chains to policy accept: filter nat [ ok ]iptables: flushing firewall rules: [ ok ]iptables: unloading modules: [ ok ]iptables: applying firewall rules: [ ok ]iptables: loading additional modules: ip_conntrack_ftp [ ok ]重启iptables是多了个加载模块的地址,ok正常。
才解封又打不开了-云服务器问题高价购买域名的真实原因百度云服务器不续费多久清理数据php怎么去掉bom头香港阿里云服务器优惠购买网站域名会过期吗? 域名过期网站还有用吗?谷歌CEO皮查伊:支持经合组织达成全球性数字税方案个人建站适合租用云服务器吗