在CentOS系统环境中,iptables防火墙是抵御网络攻击的关键防御工具。要确保其发挥最大效能,关键在于设计出既精准又灵活的规则体系。以下配置方案围绕常见攻击手段制定,步骤详尽,可直接部署使用。

1. 清除现有规则
操作前,先清空当前所有规则,确保从零开始配置。此举可避免旧规则与新设置产生冲突:
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
2. 允许必要的端口和服务
根据实际业务需求,放行必须开放的端口。例如SSH(22)、HTTP(80)、HTTPS(443)等常用服务:
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
3. 限制连接速率
针对DDoS攻击,最直接的方法就是限制连接速率。借助limit模块,将每秒新建连接数控制在合理范围内:
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
这里的--limit-burst 3允许短时间内的突发连接,超过限额后则被丢弃——既能适应正常流量波动,又能有效抵御大规模洪水攻击。
4. 防止ICMP洪水攻击
大量ICMP ping请求同样可能导致服务器资源耗尽。使用limit模块进行限制:
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 3 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
通过此配置,每秒仅允许一个回显请求,多余的请求将被直接丢弃。
5. 防止SYN洪水攻击
SYN洪水是经典攻击方式。启用内核的tcp_syncookies机制,能有效缓解这种半连接攻击:
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
这是系统层面的防护措施,与前面的速率限制配合使用,效果更显著。
6. 允许已建立的连接
已建立的连接及关联流量必须无条件放通,否则业务将中断:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
这两条规则应置于所有规则最前面,以提升处理效率。
7. 保存规则
配置完成后务必保存,否则重启后规则将丢失:
service iptables save
部分系统也可使用iptables-save配合开机脚本,但service iptables save是最直接的方式。
8. 定期更新和维护
安全威胁不断演变,规则也需持续更新。养成定期审查iptables规则的习惯,检查是否有不必要的端口仍开放,或是否需要增加新的限制策略。
注意事项
- 修改规则前,务必理解每条命令的用途,避免误封合法流量。
- 生产环境建议先在测试环境中验证,确认不影响正常业务后再部署。
- 使用
iptables -L -v -n随时查看当前规则及流量统计,掌握实时状态。
按照本方案部署后,CentOS系统的安全防护能力将显著提升,形成多层防御体系,常见攻击手段基本都能被有效拦截。当然,安全防护是动态过程,规则也需要根据实际情况持续优化。
