在当今网络安全形势日益严峻的背景下,合理配置服务器防火墙是保障系统安全的第一道防线。作为广泛使用的Linux发行版之一,CentOS 7 默认采用 firewalld 作为其动态防火墙管理工具。本文将为您详细介绍如何在 CentOS 7 系统中通过 firewalld 配置 IP 白名单,仅允许指定 IP 地址访问关键服务(如 SSH 22 端口),从而有效防止未授权访问和暴力破解攻击。

🔐 为什么需要设置防火墙IP白名单?
开放公网的服务器若允许所有IP访问SSH等服务,极易成为黑客扫描和暴力破解的目标。通过设置IP白名单,您可以:
✅ 仅允许公司、运维团队或可信设备的IP访问关键端口
✅ 大幅降低被恶意登录的风险
✅ 满足企业安全合规与漏洞扫描要求
✅ 提升系统整体安全性与稳定性
⚠️ 重要提示:在配置白名单前,请确保您已通过其他方式(如控制台登录)能够访问服务器,避免因误操作导致远程连接中断。
🛠️ 前提准备:确认firewalld服务状态
在开始配置前,请确保 firewalld 服务已安装并运行:
输出示例:
默认情况下,ssh 服务是开放的,即所有IP均可尝试连接22端口。
✅ 方法一:使用Rich Rules(推荐)为特定IP开放指定端口
firewalld 的 Rich Rules(富规则) 功能允许您精细控制基于IP、端口、协议的访问策略。
🔧 步骤1:添加IP白名单规则(允许指定IP访问22端口)
📌 参数说明:
--permanent:永久生效(重启后仍有效)--zone=public:作用于public区域(默认)source address:白名单IP或网段port protocol="tcp" port="22":指定TCP协议的22端口accept:允许通过
🚫 步骤2:移除默认的SSH服务开放规则
默认的 ssh 服务规则允许所有IP访问,需将其删除以确保白名单生效:
🔁 步骤3:重新加载防火墙配置
✅ 验证配置是否成功
输出应包含类似内容:
🧩 其他实用白名单配置方法
方法二:为特定IP开放所有访问(谨慎使用)
⚠️ 不推荐生产环境,仅用于测试或极信任网络。
方法三:为特定IP开放服务(如HTTP/HTTPS)
🚫 如何删除已添加的白名单规则?
若需调整或回滚配置,可使用 --remove-rich-rule:
🔁 如何恢复默认SSH访问?
若需恢复为所有IP可访问SSH:
📌 最佳实践与注意事项
双重验证:配置完成后,从白名单内外分别测试SSH连接,确保策略生效。
定期审计:使用
firewall-cmd --list-rich-rules定期检查规则,清理过期IP。结合Fail2ban:建议搭配
fail2ban工具,自动封禁多次尝试登录失败的IP。备份规则:重要服务器建议备份
/etc/firewalld/目录。使用密钥登录:关闭SSH密码登录,仅允许密钥认证,进一步提升安全。
📚通过本文,您已掌握在 CentOS 7 系统中使用 firewalld 配置IP白名单的核心方法。无论是为运维团队设置SSH访问权限,还是限制特定服务的访问来源,合理使用 Rich Rules 都能显著提升服务器安全性。
🔐 安全无小事,防护从细节做起。立即为您的服务器配置IP白名单,筑牢第一道安全防线!





















