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

与我们日常所理解的“黑名单”禁止特定对象不同,白名单采用的是一种“默认拒绝,显式允许”的策略,您可以将其想象为一栋拥有严格门禁的大楼:黑名单是告知保安不允许几个特定的人进入;而白名单则是,除非您的名字在预先批准的访客名单上,否则一律不得入内。
在CentOS的语境下,这种机制可以应用于多个层面:
- 防火墙白名单(如FirewallD): 仅允许指定IP地址或IP段访问服务器的特定端口(如SSH的22端口、Web的80/443端口),其他所有来源的流量均被阻断。
- 服务访问白名单: 某些服务(如SSH)可以配置为仅允许特定的用户或来自特定IP的用户登录。
- 软件安装白名单(如YUM/DNF): 在某些极端安全要求下,可以设定只允许安装经过签名的、来自特定仓库的软件包。
这种策略的核心优势在于,它极大地缩小了攻击面,在黑名单模式下,您需要不断地追查和封堵新的威胁;而在白名单模式下,任何未知的访问尝试,无论其意图如何,都会在第一时间被拒之门外。
CentOS防火墙白名单实战:以FirewallD为例
FirewallD是CentOS 7及之后版本默认的动态防火墙管理器,它通过“区域”和“服务”的概念简化了防火墙规则的管理,为特定服务(如SSH)配置IP白名单,是常见且关键的操作。
检查FirewallD状态 在开始之前,请确保防火墙处于运行状态。

sudo systemctl status firewalld
如果未运行,使用
sudo systemctl start firewalld启动它,并使用sudo systemctl enable firewalld设置开机自启。查看默认区域 通常情况下,服务器使用的默认区域是
public。sudo firewall-cmd --get-default-zone
移除默认的SSH规则(谨慎操作) 默认情况下,
public区域可能允许所有来源的SSH连接,为了安全,我们首先移除这条宽松的规则。sudo firewall-cmd --permanent --remove-service=ssh
--permanent参数表示这条规则是永久的,重启后生效,执行后需重载防火墙。添加白名单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。
应用配置 添加永久规则后,必须重载防火墙才能使新规则生效。
sudo firewall-cmd --reload
验证规则 使用以下命令查看当前
public区域的所有富规则,确认您的白名单已正确添加。sudo firewall-cmd --list-rich-rules
重要警告: 在执行第3步移除默认SSH规则前,务必确保您已通过白名单IP成功建立了一个SSH会话并保持连接,否则,您会立刻被切断与服务器的SSH连接,导致无法远程管理。
SSH服务本身的白名单配置
除了防火墙,SSH服务配置文件 /etc/ssh/sshd_config 本身也提供了强大的访问控制能力。
编辑SSH配置文件
sudo vi /etc/ssh/sshd_config
配置允许的用户和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
- 仅允许用户
应用SSH配置 修改保存后,重启SSH服务以使更改生效。
sudo systemctl restart sshd
同样,在重启服务前,请确保您有一个活跃的连接来自被允许的IP,以避免被锁在服务器之外。
白名单机制的优势与需要权衡之处
采用白名单机制,其安全收益是显而易见的,它能够有效防御零日攻击、自动化扫描脚本和来自未知源的暴力破解,对于需要严格遵守合规性要求(如等保2.0)的场景,它几乎是必选项。
任何安全策略都是权衡的艺术,白名单机制也引入了额外的管理成本,当您的IP地址发生变化(例如使用动态IP的家庭宽带,或员工出差),您需要及时更新白名单规则,否则将无法访问服务,这在团队协作和移动办公场景下,可能带来不便,在实施前,务必制定清晰的管理流程,可以通过VPN先接入一个固定的管理网络,再从该网络访问服务器,从而减少需要维护的白名单条目。
从我个人的管理经验来看,将防火墙白名单与SSH密钥认证、Fail2ban等工具结合使用,能构建一个纵深防御体系,白名单作为第一道关口,过滤掉绝大多数无关流量;密钥认证确保即使凭证泄露也难以利用;Fail2ban则动态处理密码爆破行为,这种组合拳,能够在安全性与易用性之间找到一个相对稳固的平衡点,安全不是一个静态的目标,而是一个持续管理与优化的过程,白名单正是这个过程中一件极为犀利的武器。
