在设置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 ACCEPT
2、接受所有状态为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 restart
iptables: 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正常。
火柴人绳索英雄2无限金币版 (Stickman Rope Hero 2)安卓版v2.2v3.4.2
下载奥特曼之格斗超人内测版本 安卓最新版v11.0.0
下载奥特曼之格斗超人百度版 安卓版v11.0.0
下载奥特曼之格斗超人4399游戏盒版 最新安卓版v11.0.0
下载德凯奥特曼D闪光剑模拟器 安卓版v1.0
德凯奥特曼D闪光剑模拟器是一个非常有趣的奥特曼变身模拟器,可
亚刻觉醒器 安卓版v1.1
亚刻觉醒器模拟器是一个非常有趣的奥特曼变身模拟器,为喜欢亚刻
海上餐厅无限金币版 v1.0
海上餐厅免广告版是游戏的破解版本,在该版本中为玩家去除了广告
阿西美女室友竟然全解锁版 v1.0.2
阿西美女室友竟然内置菜单版是游戏的破解版本,在该版本中为玩家
我是大东家正版 最新版v1.2.738
我是大东家正版是一款放置类模拟经营手游,玩家将回到古代成为家