在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,其他相关的命令: