centos iptables防火墙设置实例

发布时间:2020-06-01编辑:脚本学堂
本文介绍了centos系统中iptables防火墙的配置方法,有需要的朋友参考下。

centos中,系统初始状态下,防火墙的规则全部为空,允许所有包进出(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 手动编辑防火墙规则