> CentOS > CentOS安全 >

Centos Web服务器安全设置iptables规则

     最近因为自己一台centos网站服务器的问题一直在不断的查找centos安全的资料。下面分享一个常用的iptables规则:
 

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-type 8 -j ACCEPT #5
$IPT -A INPUT -p icmp -m icmp –icmp-type 11 -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-type 8 -j ACCEPT #10
$IPT -A OUTPUT -p icmp -m icmp –icmp-type 11 -j ACCEPT #10
service iptables save
service iptables restart
#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外部

这样禁用了除ssh、http、ftp等外的所有端口,当然我们可能用到其他端口以供管理,比如说我们在lnmp下常用PureFTPd来管理FTP,这样的话我们首先要编辑下 /etc/proftpd.conf,配置以下内容:

PassivePorts 25000 26000 #(端口号,可自行选择)

然后再上面的代码中还需要添加一行:

$IPT -A INPUT -p tcp -m tcp –dport 25000:26000 –syn -j ACCEPT #这里的25000和26000必须为你添加的端口号

另外也有人可能会用到VNC,那就继续添加一行:

$IPT -A INPUT -p tcp -m tcp –dport 5901 –syn -j ACCEPT#5901为你的vnc端口

等所有的端口都配置好以后,将脚本存储为iptables.sh,上传至VPS,执行sh iptables.sh即可自动配置防火墙。

这样,相信大家有点找到规律了,其他端口可以根据自己的需要选择开放然后重新执行脚本即可~

(责任编辑:IT)