1、当本地服务器为ftp服务器时,这样设置iptables相对较为简单,即开启tcp下的21和20端口

 

iptables -A INPUT -p tcp -s 0/0    --dport 21 -j ACCEPT

iptables -A INPUT -p tcp -s 0/0    --dport 20 -j ACCEPT

    2、但是当本地服务器为ftp的客户端时同样设置iptables规则则相对麻烦,ftp默认是被动模式连接,即数据连接时是以1024以上的端口进行连接的,这样就要开启一个1024以上的端口

iptables -A input -p tcp --sport 1024: --dport 1024: -j ACCEPT

如果这样就等于开放1024以上的端口了,确是不够安全

   3、其实可以利用加模块的方式进行设置:

加上以下三个模块:

modpobe ip_nat_ftp 
modpobe ip_conntrack 
modpobe ip_conntrack_ftp

再加上以下一条规则:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    ##意思是说允许本机发出的数据包返回本机

    4、下面是一些常用到的规则

iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT       ##允许所有ip访问本地80端口

iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT   ##允许从80端口进入本地的数据出去

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT  ##本机访问本机,这条规则经常用到

iptables -A INPUT -p icmp -j ACCEPT   ## 这条icmp规则