> CentOS > CentOS安全 >

适合Centos Web服务器的iptables规则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
IPT="/sbin/iptables"
$IPT --delete-chain
$IPT --flush
$IPT -P INPUT DROP   #1
$IPT -P FORWARD DROP #1
$IPT -P OUTPUT DROP  #1
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT#2
$IPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT#3
$IPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT#3
$IPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT #3
$IPT -A INPUT -p tcp -m tcp --dport 873 -j ACCEPT#3
$IPT -A INPUT -i lo -j ACCEPT#4
$IPT -A INPUT -p icmp -m icmp --icmp-type8 -j ACCEPT #5
$IPT -A INPUT -p icmp -m icmp --icmp-type11 -j ACCEPT#5
$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT#6
$IPT -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT#7
$IPT -A OUTPUT -o lo -j ACCEPT#4
$IPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT#8
$IPT -A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT#9
$IPT -A OUTPUT -p icmp -m icmp --icmp-type8 -j ACCEPT #10
$IPT -A OUTPUT -p icmp -m icmp --icmp-type11 -j ACCEPT#10
service iptables save
service iptables restart

存为脚本iptables.sh,执行sh iptables.sh自动配置防火墙。
解释:
#1、设置INPUT,FORWARD,OUTPUT链默认target为DROP,也就是外部与服务器不能通信。
#2、设置当连接状态为RELATED和ESTABLISHED时,允许数据进入服务器。
#3、设置外部客户端连接服务器端口80,22,21,873。
#4、允许内部数据循回。
#5、允许外部ping服务器 。
#6、设置状态为RELATED和ESTABLISHED的数据可以从服务器发送到外部。
#7、允许服务器使用外部dns解析域名。
#8、设置服务器连接外部服务器端口80。
#9、允许服务器发送邮件。
#10、允许从服务器ping外部。

(责任编辑:IT)