HCRM博客

在CentOS上实现IP白名单配置指南

在服务器管理与网络安全领域,白名单机制因其高度的安全性,正被越来越多的系统管理员所重视,对于部署在CentOS系统上的服务而言,理解和正确配置白名单,是构建坚固防线的重要一环。

何为白名单机制?

在CentOS上实现IP白名单配置指南-图1

与我们日常所理解的“黑名单”禁止特定对象不同,白名单采用的是一种“默认拒绝,显式允许”的策略,您可以将其想象为一栋拥有严格门禁的大楼:黑名单是告知保安不允许几个特定的人进入;而白名单则是,除非您的名字在预先批准的访客名单上,否则一律不得入内。

在CentOS的语境下,这种机制可以应用于多个层面:

  • 防火墙白名单(如FirewallD): 仅允许指定IP地址或IP段访问服务器的特定端口(如SSH的22端口、Web的80/443端口),其他所有来源的流量均被阻断。
  • 服务访问白名单: 某些服务(如SSH)可以配置为仅允许特定的用户或来自特定IP的用户登录。
  • 软件安装白名单(如YUM/DNF): 在某些极端安全要求下,可以设定只允许安装经过签名的、来自特定仓库的软件包。

这种策略的核心优势在于,它极大地缩小了攻击面,在黑名单模式下,您需要不断地追查和封堵新的威胁;而在白名单模式下,任何未知的访问尝试,无论其意图如何,都会在第一时间被拒之门外。

CentOS防火墙白名单实战:以FirewallD为例

FirewallD是CentOS 7及之后版本默认的动态防火墙管理器,它通过“区域”和“服务”的概念简化了防火墙规则的管理,为特定服务(如SSH)配置IP白名单,是常见且关键的操作。

  1. 检查FirewallD状态 在开始之前,请确保防火墙处于运行状态。

    在CentOS上实现IP白名单配置指南-图2
    sudo systemctl status firewalld

    如果未运行,使用 sudo systemctl start firewalld 启动它,并使用 sudo systemctl enable firewalld 设置开机自启。

  2. 查看默认区域 通常情况下,服务器使用的默认区域是 public

    sudo firewall-cmd --get-default-zone
  3. 移除默认的SSH规则(谨慎操作) 默认情况下,public 区域可能允许所有来源的SSH连接,为了安全,我们首先移除这条宽松的规则。

    sudo firewall-cmd --permanent --remove-service=ssh

    --permanent 参数表示这条规则是永久的,重启后生效,执行后需重载防火墙。

  4. 添加白名单IP地址 我们将您信任的IP地址(例如您的办公网络IP 0.113.10)加入到白名单中,允许其连接SSH。

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.10" service name="ssh" accept'

    如果您需要添加一个IP段,可以使用CIDR表示法,如 0.113.0/24

    在CentOS上实现IP白名单配置指南-图3
  5. 应用配置 添加永久规则后,必须重载防火墙才能使新规则生效。

    sudo firewall-cmd --reload
  6. 验证规则 使用以下命令查看当前 public 区域的所有富规则,确认您的白名单已正确添加。

    sudo firewall-cmd --list-rich-rules

重要警告: 在执行第3步移除默认SSH规则前,务必确保您已通过白名单IP成功建立了一个SSH会话并保持连接,否则,您会立刻被切断与服务器的SSH连接,导致无法远程管理。

SSH服务本身的白名单配置

除了防火墙,SSH服务配置文件 /etc/ssh/sshd_config 本身也提供了强大的访问控制能力。

  1. 编辑SSH配置文件

    sudo vi /etc/ssh/sshd_config
  2. 配置允许的用户和IP 您可以使用 AllowUsers 指令来精细控制。

    • 仅允许用户 admin 从特定IP登录:
      AllowUsers admin@203.0.113.10
    • 允许用户 admin 从整个IP段登录:
      AllowUsers admin@203.0.113.0/24
    • 允许多个用户从不同来源登录:
      AllowUsers admin@203.0.113.10 user@192.168.1.100
  3. 应用SSH配置 修改保存后,重启SSH服务以使更改生效。

    sudo systemctl restart sshd

    同样,在重启服务前,请确保您有一个活跃的连接来自被允许的IP,以避免被锁在服务器之外。

白名单机制的优势与需要权衡之处

采用白名单机制,其安全收益是显而易见的,它能够有效防御零日攻击、自动化扫描脚本和来自未知源的暴力破解,对于需要严格遵守合规性要求(如等保2.0)的场景,它几乎是必选项。

任何安全策略都是权衡的艺术,白名单机制也引入了额外的管理成本,当您的IP地址发生变化(例如使用动态IP的家庭宽带,或员工出差),您需要及时更新白名单规则,否则将无法访问服务,这在团队协作和移动办公场景下,可能带来不便,在实施前,务必制定清晰的管理流程,可以通过VPN先接入一个固定的管理网络,再从该网络访问服务器,从而减少需要维护的白名单条目。

从我个人的管理经验来看,将防火墙白名单与SSH密钥认证、Fail2ban等工具结合使用,能构建一个纵深防御体系,白名单作为第一道关口,过滤掉绝大多数无关流量;密钥认证确保即使凭证泄露也难以利用;Fail2ban则动态处理密码爆破行为,这种组合拳,能够在安全性与易用性之间找到一个相对稳固的平衡点,安全不是一个静态的目标,而是一个持续管理与优化的过程,白名单正是这个过程中一件极为犀利的武器。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/43679.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~