在centos中,系统初始状态下,防火墙的规则全部为空,允许所有包进出(policy ACCEPT),查看规则:
 
1,预置默认规则
 
清除预设表filter中的所有规则链的规则
#iptables -F  
清除预设表filter中使用者自定链中的规则
#iptables -X  
如果使用ssh远程登陆,特别是服务器不在你身边的时候,请务必先设置一条规则允许22端口INPUT,否则如果先把所有INPUT全部DROP掉,就有麻烦了,所以下面这条规则很重要:
#/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT 允许ssh登陆  
然后我们再来慢慢设置其他规则。
默认所有进来的包都DROP掉:
#iptables -P INPUT DROP 
默认所有转发的包都DROP掉:
#iptables -P FORWARD DROP 
默认所有出去的包都允许:
#iptables -P OUTPUT ACCEPT  
最后保存,一定要记得保存,否则重启系统就没了,保存就是将配置保存到/etc/sysconfig/iptables中,其实你直接编辑这个文件也可以:
#service iptables save 
2,添加需要打开的端口
前面已经设置了打开22端口,下面再设置打开svn,http端口
 
也可以使用:
 
这里-I和-A的区别就是-A为增加到规则的最后,-I为插入到规则的最前面,其实这个很容易在/etc/sysconfig/iptables文件中调整。
经过这些设置之后,现在的结果:
 
#iptables -L -n  
Chain INPUT (policy DROP)  
target     prot opt source               destination  
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3690  
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22  
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
  
Chain FORWARD (policy DROP)  
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)  
target     prot opt source               destination 
3,删除一条规则
 
4,允许ping入
 
5,允许所有已经建立的和相关的连接
 
这两条非常重要,如果没有这两行配置,无法访问外站,wget用不起,yum install用不起。
6,允许本地地址
 
这两条也非常重要,否则本机开启的服务,本机都无法访问。
7,其他相关的命令: