CentOS 6.x下防火墙设置
iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置iptables将会帮助你更有效地管理Linux防火墙。如果你是第一次接触iptables,你会觉得它很复杂,但是一旦你理解iptables的工作原理,你会发现其实它很简单。
下面是一段在CentOS 6.x下iptables的初始化设置脚本:
#!/bin/bash # 打开有状态检测的端口,如22 function open_state_port() { PORT=$1 PROTOCOL=$2 iptables -A INPUT -p $PROTOCOL --dport $PORT -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p $PROTOCOL --sport $PORT -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -p $PROTOCOL --dport $PORT -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -p $PROTOCOL --sport $PORT -m state --state ESTABLISHED -j ACCEPT } # 打开普通的端口 function open_normal_port() { PORT=$1 PROTOCOL=$2 iptables -A INPUT -p $PROTOCOL --dport $PORT -j ACCEPT iptables -A OUTPUT -p $PROTOCOL --sport $PORT -j ACCEPT iptables -A OUTPUT -p $PROTOCOL --dport $PORT -j ACCEPT iptables -A INPUT -p $PROTOCOL --sport $PORT -j ACCEPT } # 1. 清除所有规则 iptables -F iptables -X # 2. 允许本地回环地址通过防火墙 iptables -A INPUT -i lo -p all -j ACCEPT iptables -A OUTPUT -o lo -p all -j ACCEPT # 3. 允许ping打开 iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT # 4. SSH访问控制打开 open_state_port 22 tcp open_state_port 80 tcp # 5. 配置默认策略为DROP iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP # 6. DNS解析开放 open_normal_port 53 udp # 7. MySQL端口开放 open_normal_port 3306 tcp # 8. 防DoS攻击 iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
最后记得保存iptables规则并重新载入iptables规则,使防火墙生效
service iptables save service iptables reload
除非注明,戊辰人博客文章均为原创,转载请以链接形式标明本文地址