在企业级服务器运维和网络安全管理中,合理配置防火墙规则是保障系统安全的第一道防线。随着远程办公、分布式架构的普及,我们常常需要只允许特定IP段访问指定端口,例如:仅允许公司内网IP段通过SSH登录服务器,或只让数据中心的IP访问数据库端口(如1521、3306等)。本文将深入讲解如何使用 firewalld 在 Linux 系统中实现 IP段白名单访问控制,并提供完整操作命令与安全注意事项,助你构建更安全的网络环境。

为什么需要限制IP段访问?
默认情况下,开放的端口对所有公网IP可见,极易成为黑客扫描和攻击的目标。通过设置 IP段白名单,你可以:
✅ 提高服务器安全性,防止暴力破解
✅ 避免敏感服务(如数据库、管理后台)暴露在公网
✅ 实现精细化访问控制,符合最小权限原则
✅ 满足企业安全合规要求
📌 典型应用场景:
允许192.168.1.0/24网段访问Web服务器的80/443端口,或仅让10.0.0.0/8内网访问数据库的3306端口。
使用 firewalld 配置IP段访问规则(CentOS/RHEL/Fedora)
现代 Linux 发行版普遍使用 firewalld 作为默认防火墙管理工具。它支持“富规则”(rich rules),可精确控制IP、端口、协议等访问权限。
✅ 1. 检查并启动防火墙
首先确认 firewalld 是否已安装并运行:
⚠️ 重要提醒:如果你是通过SSH远程连接服务器,务必先添加当前IP的访问规则,否则开启防火墙后可能导致连接中断!
✅ 2. 关闭全局端口开放(避免冲突)
如果你之前已通过 --add-port 开放了某个端口(如1521),需先关闭,否则规则会冲突:
✅ 3. 添加IP段访问特定端口规则
使用 --add-rich-rule 命令添加IP段白名单规则。
🔹 示例1:允许整个IP段访问指定端口
🔹 示例2:允许单个IP访问指定端口
🔹 示例3:允许IP段访问多个端口(批量设置)
✅ 4. 查看与验证规则
配置完成后,务必检查规则是否生效:
预期输出应包含你设置的IP段规则,例如:
✅ 5. 删除或修改规则
如需调整策略,可删除旧规则后重新添加:
高级技巧与安全建议
🔐 1. 使用 reject 替代 drop(可选)
默认 accept 表示允许,你也可以使用 reject 明确拒绝非法请求,便于排查:
📁 2. 直接编辑配置文件(适用于批量管理)
规则最终保存在 /etc/firewalld/zones/public.xml 中,可直接编辑:
添加如下内容:
保存后执行 firewall-cmd --reload 即可。
常见问题与排查
| 问题 | 解决方案 |
|---|---|
| 规则不生效 | 检查是否使用 --permanent,并执行 --reload |
| SSH连接中断 | 立即通过控制台登录,检查规则是否误封自己IP |
| IP段格式错误 | 确保使用 CIDR 格式(如 /24),避免空格或引号错误 |
| 防火墙未启动 | 运行 systemctl start firewalld 并设为开机启动 |
通过 firewalld 的富规则功能,我们可以轻松实现 Linux防火墙只允许指定IP段访问特定端口 的安全策略。关键步骤总结如下:
✅ 启用并配置
firewalld✅ 关闭全局端口开放
✅ 使用
--add-rich-rule添加IP段白名单✅ 执行
--reload使配置永久生效✅ 定期审查规则,确保策略合规
🌐 安全无小事:每一次开放端口都是一次风险暴露。建议结合 Fail2Ban、SSH密钥登录、定期日志审计 等手段,构建多层防御体系。
📌 本文适用系统:CentOS 7/8/Stream、RHEL、Fedora、Ubuntu(需安装 firewalld)等使用 firewalld 的 Linux 发行版。
📢 欢迎收藏+转发,关注我获取更多 Linux 安全与运维实战技巧!你还在用 iptables 吗?欢迎在评论区分享你的防火墙管理经验!





















