常用命令
iptables -L -n 查看防火墙规则;
iptables -F 清除预设表filter中的所有规则链的规则
iptables -X 清除预设表filter中使用者自定链中的规则
/etc/rc.d/init.d/iptables save 把修改写入/etc/sysconfig/iptables文件里
设定规则
[root@tp ~]# iptables -P INPUT DROP
[root@tp ~]# iptables -P OUTPUT ACCEPT
[root@tp ~]# iptables -P FORWARD DROP
(意思是,当超出了IPTABLES里filter表里的两个链规则(INPUT,FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流入数据包
而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在着个规则里的包怎么办呢,那就是通过.
可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过.
这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,而且要写的规则就会增加.但如果你只想要有限的几个规则是,如只做WEB服务器.还是推荐三个链都是DROP.)
开放常用端口:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT (ssh)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT (web)
iptables -A INPUT -p tcp --dport 110 -j ACCEPT (邮件)
iptables -A INPUT -p tcp --dport 25 -j ACCEPT (邮件)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT (ftp)
iptables -A INPUT -p tcp --dport 20 -j ACCEPT (ftp)
iptables -A INPUT -p tcp --dport 53 -j ACCEPT (dns)
iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话)
iptables -A INPUT -p icmp -j ACCEPT (INPUT设置成DROP的话)
IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)