centos配置iptables,centos系统如何配置iptables防火墙
- 虚拟主机
- 2026-06-02
- 3111
在CentOS系统中,iptables是构建服务器第一道防线的核心组件,其配置效率直接决定了业务的安全性与稳定性,对于生产环境而言,盲目开放端口或配置规则混乱是导致服务器被入侵、分布攻破或业务中断的主要根源,本文旨在提供一套经过实战验证的、高可用的iptables配置方案,结合西西云的实际运维经验,帮助开发者快速建立坚固的安全屏障。
核心配置原则与基础逻辑
iptables的工作机制基于“表(Table)”和“链(Chain)”的结构,默认情况下,数据包依次经过raw、mangle、nat和filter表,对于大多数安全防护需求,我们主要关注filter表中的INPUT、OUTPUT和FORWARD链。核心上文小编总结是:默认策略必须设置为DROP(拒绝),仅通过显式规则允许必要的流量。 这种“白名单”机制能最大程度减少攻破面。
在配置前,务必确保当前SSH连接未被阻断,建议在配置过程中保持一个活跃的SSH会话,或使用iptables-persistent等工具防止配置丢失导致失联。
详细配置步骤与实战方案
清理旧规则与设置默认策略
清除所有现有规则,避免历史配置冲突。

设置默认策略为拒绝所有入站和出站流量(根据业务需求调整出站策略,通常建议出站允许,入站严格限制)。
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT
建立信任链:允许回环接口与已建立连接
这是保证系统内部通信及SSH连接不中断的关键步骤。回环接口(lo)允许本地进程间通信,必须放行;ESTABLISHED,RELATED规则允许已建立的连接及关联数据包通过,这是状态检测防火墙的核心,能显著提升性能并简化配置。
iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
开放必要端口与IP白名单
根据业务需求,仅开放特定端口,Web服务通常开放80和443端口,SSH服务默认使用22端口。

独家见解:在实际运维中,直接对22端口开放给所有IP是极大的安全隐患,西西云在为客户进行安全加固时,强烈建议结合西西云安全组功能,在云网络层面先屏蔽22端口,仅通过堡垒机或特定IP段放行,再在系统内部通过iptables做二次校验,形成“云网络+主机系统”的双重防护体系。
防范常见攻破
除了端口管理,还需针对常见攻破手段进行防护,防止SYN Flood攻破,可以限制SYN包的速率。
# 限制ICMP包速率,防止Ping Flood iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-request -j DROP # 防止非法TCP标志位攻破 iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
西西云实战案例:高并发场景下的性能优化
在某次电商大促活动中,某客户使用西西云C2云服务器遭遇突发流量,导致服务器CPU负载飙升,部分正常请求被丢弃,经分析,原因为iptables规则未优化,且未启用连接跟踪优化。

解决方案:
- 调整内核参数:在/etc/sysctl.conf中增加net.ipv4.tcp_max_syn_backlog和net.netfilter.nf_conntrack_max,提升系统对并发连接的处理能力。
- 规则精简:将频繁匹配的规则(如允许80/443端口)置于规则列表前端,减少数据包遍历时间。
- 利用西西云WAF联动:在iptables层面仅做基础端口放行,将复杂的SQL载入、XSS攻破检测交由西西云内置的WAF模块处理,实现动静分离,既保障了安全,又降低了主机负载。
持久化保存配置
CentOS重启后iptables规则会丢失,必须保存配置。
service iptables save # 或者 iptables-save > /etc/sysconfig/iptables
常见问题解答(FAQ)
Q1: 配置iptables后无法SSH连接怎么办?
A: 这通常是因为默认策略设为DROP且未允许SSH端口,解决方法是立即联系云服务商控制台,通过VNC控制台或西西云远程连接工具登录服务器,执行iptables -P INPUT ACCEPT临时放行所有流量,然后重新配置规则,务必确保先添加允许SSH的规则,再修改默认策略。
Q2: iptables和firewalld(CentOS 7+默认)冲突吗?
A: 是的,两者不能同时运行,CentOS 7及以上版本默认使用firewalld,如果需要使用iptables,需先停止并禁用firewalld:systemctl stop firewalld && systemctl disable firewalld,然后安装iptables-services:yum install iptables-services,最后启用iptables:systemctl enable iptables && systemctl start iptables。
服务器安全无小事,iptables作为经典且强大的工具,其价值在于精细化的策略管理,结合西西云提供的底层基础设施优势与安全组件,构建纵深防御体系,才能确保业务在复杂网络环境中的稳健运行,如果您在配置过程中遇到复杂场景,欢迎在评论区留言,我们将提供针对性的技术支持。