centos iptables防火墙设置

更详细的配置请参考:http://os.51cto.com/art/201103/249359_all.htm,这篇文章非常全面。


系统初始状态下,防火墙的规则全部为空,允许所有包进出(policy ACCEPT),查看规则如下:

#iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination


Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

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端口

#iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
#iptables -I INPUT -p tcp --dport 80 -j ACCEPT
也可以使用

#iptables -A INPUT -p tcp --dport 3690 -j ACCEPT
这里-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,删除一条规则

#iptables -D INPUT -p tcp --dport 3690 -j ACCEPT

4,允许ping入

#iptables -A INPUT -p icmp -j ACCEPT

5,允许所有已经建立的和相关的连接

#iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

这两条非常重要,如果没有这两行配置,无法访问外站,wget用不起,yum install用不起。

6,允许本地地址

#iptables -A INPUT -i lo -j ACCEPT
#iptables -A OUTPUT -o lo -j ACCEPT

这两条也非常重要,否则本机开启的服务,本机都无法访问。

7,其他相关的命令:

#iptables -L -n 查看防火墙配置
#netstat -a -p -n | grep svn 查看应用程序打开的是哪个端口
#service iptables status 查看防火墙状态
#service iptables restart 重启防火墙
#vi /etc/sysconfig/iptables 手动编辑防火墙规则



你可能感兴趣的:(linux,iptables,防火墙)