如何配置CentOS防火墙?,CentOS防火墙配置教程

CentOS 防火墙配置,首选 Firewalld,兼顾安全与运维效率

在 CentOS 生产环境中,防火墙是保障服务器安全的第一道闸门。无论你是刚上线的云服务器,还是正在迁移业务的老系统,正确配置防火墙都能极大降低被入侵的风险。 基于长期运维实践,我们给出的核心结论是:CentOS 7 及以上版本应默认使用 Firewalld 作为防火墙管理工具,它支持动态规则、区域管理和 Rich Rule,比传统 iptables 更灵活;CentOS 6 或特殊场景才考虑 iptables。 配置防火墙时务必遵循“最小开放原则”,只放行业务必需端口,并利用云平台安全组与系统防火墙形成双重防护。


Firewalld:现代 CentOS 的默认选择

Firewalld 是 CentOS 7 起内置的动态防火墙管理工具,它通过 DBus 接口与内核 netfilter 交互,支持运行时配置与永久配置分离。这意味着你修改规则时无需重启服务,也不会中断现有连接,对生产环境尤为友好。

基础操作命令

  • 启动并设置开机自启:
    systemctl start firewalld
    systemctl enable firewalld
  • 查看状态与活动规则:
    firewall-cmd --state
    firewall-cmd --list-all

核心概念:区域(Zone)

Firewalld 使用“区域”来管理信任级别。默认区域为 public,适合大多数云服务器场景,你可以为不同网络接口分配不同区域,从而实现精细控制。

查看当前默认区域:

firewall-cmd --get-default-zone

常见区域说明:

  • public:仅允许少量外部访问,适合公网入口。
  • internal:信任内部网络,适合内网互通。
  • dmz:允许部分端口对公网开放,常用于隔离区。

端口与服务的放行

开放端口(以 8080 为例):

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

放行服务(如 http):

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

如何配置CentOS防火墙?,CentOS防火墙配置教程

注意:必须添加 --permanent 参数才能永久生效,否则重启后规则丢失。 修改后执行 firewall-cmd --reload 加载新规则。

移除规则与自我保护

  • 移除已开放的端口:
    firewall-cmd --permanent --remove-port=8080/tcp
    firewall-cmd --reload
  • 查看端口是否被放行:
    firewall-cmd --query-port=8080/tcp

生产环境建议:先用 --add-port 临时测试业务,确认无问题后再改用 --permanent 规则,避免误放行导致风险。


Rich Rule:复杂场景下的精准控制

当简单的端口或服务规则无法满足需求时,比如需要限制来源 IP、控制访问速率,Rich Rule 能提供更强大的表达能力。

典型场景:只允许特定 IP 访问 SSH(22 端口)

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port port="22" protocol="tcp" accept'
firewall-cmd --reload

禁止某个 IP 段访问 80 端口:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="80" protocol="tcp" reject'
firewall-cmd --reload

Rich Rule 的优先级高于普通端口规则,利用它可实现“默认拒绝,白名单放行”的高安全策略,有效对抗扫描和暴力破解。


iptables 的适用场景与迁移建议

尽管 Firewalld 是主流,但 CentOS 6 系统或容器内环境仍会用到 iptables,iptables 的规则链直接、性能开销极低,适合对包处理有极致要求的场景。

一个典型的 iptables 规则示例:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP

注意:iptables 规则顺序敏感,且默认策略改为 DROP 前务必确认放行了 SSH(22 端口),避免锁死服务器,我们建议你 尽量将旧 iptables 规则迁移到 Firewalld

如何配置CentOS防火墙?,CentOS防火墙配置教程

,因为 Firewalld 自带持久化、支持动态加载,运维维护成本更低。


云安全组与系统防火墙的协同策略

绝大多数云平台(如酷番云)都提供安全组功能,它在虚拟机外部做流量过滤,而系统防火墙(Firewalld/iptables)在虚拟机内部生效。 两者协同,才能构建纵深防御。

经验案例(来自酷番云运维团队)

某电商客户在酷番云上运行单台 CentOS 7.9 服务器,之前只在云安全组放行了 80、443、22 端口,但系统 firewalld 处于停用状态,一次安全巡检发现服务器被植入了挖矿程序,原因在于应用进程反弹了一个高端口连接,我们给出的解决方案是:

  1. 在酷番云控制台安全组中,保留 80、443、22 等必需端口,移除其他所有放行规则
  2. 在系统内启用 firewalld,并只放行以下端口:
    firewall-cmd --permanent --add-port=80/tcp
    firewall-cmd --permanent --add-port=443/tcp
    firewall-cmd --permanent --add-service=ssh
    firewall-cmd --reload
  3. 额外使用 Rich Rule 限制 SSH 仅允许办公网段 IP 访问。
  4. 开启 SSH 登录失败次数限制,并配置 Fail2Ban 联动。

结果:两周内暴力破解尝试次数降低了 99% 以上,挖矿进程未再出现。 这个案例验证了“云安全组 + 系统防火墙”双层的有效性。核心原则是:安全组放行外部流量,firewalld 管控本机进程的出入方向,两者规则越严格,安全水位越高。


常见故障排查与最佳实践

端口明明放行,外部却无法访问

  • 检查 firewalld 是否运行:systemctl status firewalld
  • 检查安全组是否放行对应端口(酷番云控制台-安全组)
  • 检查进程监听地址是否为 0.0.0ss -lntp
  • 检查 SELinux 是否拦截:getenforce,若为 Enforcing,可临时 setenforce 0 测试

修改规则后业务中断

  • 确认是否使用了 --reload 而非 --complete-reload,前者保持连接不断
  • 确认是否有新建的 DROP 规则命中业务流量
  • 如何配置CentOS防火墙?,CentOS防火墙配置教程

  • 建议每次修改前备份现有规则:
    firewall-cmd --list-all > /backup/firewalld_$(date +%F).txt

自动化配置建议

使用配置管理工具(如 Ansible)批量下发防火墙规则,避免人工逐台操作造成漂移,例如将所需的端口和服务定义在变量文件中,然后统一执行 firewall-cmd 命令,确保所有服务器规则一致。


相关问答

问 1:CentOS 7 中如何查看当前所有防火墙规则,并确认某个特定端口是否被放行?

答:使用 firewall-cmd --list-all 查看默认区域的所有规则,输出中会包含 ports、services、rich rules 等字段,若要精确查询某个端口,执行 firewall-cmd --query-port=8080/tcp 会返回 yesno,注意查询的是运行时配置,如需查询永久配置,在使用查询命令时省略 --permanent 即可(因为默认查询运行时),若要确认永久配置则需加上 --permanent

问 2:如果我把 SSH 端口改成了 2222,firewalld 中应该如何正确放行并保证重连不失败?

答:首先临时放行新端口 firewall-cmd --add-port=2222/tcp(不添加 permanent),然后修改 SSH 配置文件 /etc/ssh/sshd_config 中的 Port 为 2222,重启 sshd 服务,此时保持当前 SSH 连接不中断,新开一个连接测试 2222 端口是否成功,确认可用后,再执行 firewall-cmd --permanent --add-port=2222/tcp 并移除旧端口 22 的放行规则,firewall-cmd --reload千万记住:在未确认新端口可连接前,不要移除 22 端口规则,否则一旦 SSH 断开你将无法远程管理服务器。


防火墙配置不是“一劳永逸”的工作,建议每周检查一次规则清单,梳理业务变更引发的端口调整,如果你在酷番云上部署 CentOS 服务器,欢迎使用我们的安全组和轻量防火墙可视化工具,帮你更高效地管理访问策略,你在配置防火墙时遇到过哪些“坑”?欢迎在评论区留言交流,我们共同探讨解决方案。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/767375.html

(0)
上一篇 2026年9月1日 22:20
下一篇 2026年9月1日 22:22

相关推荐

  • Weblogic服务器配置怎么操作?Weblogic服务器配置详细步骤教程

    WebLogic服务器配置的核心在于构建高可用、高性能且安全的应用运行环境,其本质是通过精细化调整JVM参数、线程池策略与集群架构,实现资源利用率的最大化与服务稳定性的最优化,成功的配置并非简单的参数堆砌,而是基于业务模型的动态调优过程,必须兼顾底层资源限制与上层应用架构的协同, 核心配置架构与JVM内存模型深……

    2026年4月7日
    02633
  • LOL推荐配置2016是什么,2016年LOL最低配置能玩吗?

    对于2016年的英雄联盟游戏环境,最佳的性价比配置方案是Intel Core i5处理器搭配NVIDIA GTX 660显卡及8GB双通道内存,这套组合能够在中高画质下稳定在团战中保持60FPS以上的高帧率,彻底解决卡顿与掉帧问题, 这一结论基于当年客户端引擎对CPU单核性能的极高依赖以及显卡对DirectX……

    2026年2月21日
    04255
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 如何通过GEO优化快速提升网站权重和排名?,怎样快速提升网站权重和排名

    示例配置是云服务部署的起点,它集成了最佳实践与默认优化,帮助用户快速搭建稳定、安全的环境,无论是个人开发者还是企业团队,掌握示例配置的设计逻辑都能显著提升效率,避免重复踩坑,本文将从核心价值、设计方法、实战案例等角度,深入剖析示例配置的方方面面,并提供酷番云独有的实践经验,示例配置的核心价值示例配置之所以能成为……

    2026年7月24日
    0813
  • 安全协议网站如何确保用户数据不被泄露?

    在数字化时代,互联网已成为人们生活、工作中不可或缺的一部分,而网络安全问题也随之日益凸显,安全协议网站作为保障网络空间安全的重要阵地,承担着知识普及、技术交流、风险预警等多重功能,为构建清朗网络环境提供了坚实支撑,安全协议网站的核心价值安全协议网站的核心价值在于其权威性与实用性,这类网站通常由网络安全机构、行业……

    2025年11月22日
    03670

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注