云安全组白名单:三步锁死真实源站,让黑客无从下手

网站源站IP一旦暴露,很容易被DDoS、扫描和渗透。本文从零讲解如何利用云安全组设置网络层白名单,只允许可信IP访问源站,彻底封堵未授权流量。无需高端技术,小白也能上手保护源站安全。

云安全组白名单:三步锁死真实源站,让黑客无从下手
封面图:ZuCDN · ZuCDN 原创

源站暴露的代价:为什么你的服务器总在挨打?

故障定位思路

Security Group看似简单,真正落地时却很容易踩坑。大多数网站部署在云服务器上,默认22、443、80端口对外全网开放。这意味着攻击者可以用扫描工具快速发现你的真实源站IP,然后发起DDoS、CC攻击、端口扫描甚至暴力破解。很多站长把精力花在应用层防护上,却忽视了最基础的网络层访问控制。实际上,只要在云安全组中设置一条“仅允许白名单IP”的规则,就能瞬间干掉99%的无效攻击流量。本文不讲高深理论,只讲实际操作——用云安全组锁死源站,让黑客连端口都扫不到。

云安全组是什么?你不是真的懂它

云安全组(Security Group)是云服务器(如阿里云ECS、腾讯云CVM、AWS EC2)自带的虚拟防火墙。它工作在网络层和传输层,可以对进入和离开服务器的流量做精细的访问控制。你只需要在控制台上添加几条规则,就能决定哪些IP、哪个端口、什么协议能通过。

很多人误以为安全组只是“额外防护”,甚至装完服务器后直接放行所有入站流量(0.0.0.0/0)。这种配置相当于把家门敞开,任何人(包括爬虫、扫描器、恶意IP)都能直接敲你的网口。而白名单策略则反过来:默认拒绝所有流量,只允许预先指定的IP或IP段访问。这正是网络层白名单的核心思想。

网络层白名单 vs 应用层防火墙

应用层防火墙(如Nginx的allow/deny、Cloudflare的WAF)同样能做IP白名单,但它工作在应用层,流量已经到达服务器进程,仍然会消耗CPU和带宽。而云安全组在数据包进入操作系统之前就将其丢弃,性能损失接近于零。因此,网络层白名单是“第一道门”,应用层白名单是“第二道锁”,两者配合使用效果最好。

实施网络层白名单:四步锁死真实源站

下面以阿里云ECS为例(腾讯云、AWS操作大同小异),演示如何用安全组实现白名单。注意:操作前请确保你已经了解自己的合法访问来源(比如管理IP、CDN回源IP、负载均衡IP等),否则你会把自己锁在门外。

第一步:创建独立的安全组

不要在默认安全组上直接修改,而是新建一个名为“源站白名单”的专用安全组。在控制台选择“网络与安全” > “安全组”,点击创建,网络类型选择“经典”或“VPC”均可。创建后,你会得到一个安全组ID(如sg-bp1xxxxx)。

第二步:添加入站白名单规则

进入该安全组,选择“入方向”规则,点击“添加规则”。这里的原则是:只放行真正需要访问源站的IP,其他全部拒绝。常见的合法来源包括:

  • 你自己的管理IP:用于SSH(端口22)和登录面板(如宝塔8888)。建议通过ip.sb查询你当前的公网出口IP。
  • CDN回源IP段:如果你使用了Cloudflare或阿里云CDN,需要从官方文档获取IP段并添加。注意有些CDN会动态变化,定期更新。
  • 负载均衡VIP:如果你用SLB做代理,将SLB内网IP加入(同时配置内网安全组)。
  • 生产环境中的其他可信服务器IP:如数据库只允许应用服务器访问。

规则示例如下:

  • 优先级越低越先匹配,但通常默认即可。策略选择“允许”,协议选择“TCP”,端口范围填写你需要开放的端口(如80,443,22)。源IP填写对应的IP或段。
  • 最后,必须添加一条拒绝所有其他IP的规则吗?不需要!因为安全组默认行为是“未明确允许则拒绝”。你只需要添加允许规则,其他所有流量自然被抛弃。但为了明确,你可以添加一条优先级最低的拒绝规则:源IP 0.0.0.0/0,策略拒绝。不过多数云厂商不推荐,因为默认拒绝更清晰。
# 示例规则(阿里云控制台)
方向:入方向
协议:TCP
端口范围:22/22
授权对象:你的公网IP/32
优先级:1
策略:允许

协议:TCP
端口范围:80/80
授权对象:CDN回源IP段(如103.21.244.0/22)
优先级:2
允许

协议:TCP
端口范围:443/443
授权对象:同上
优先级:3
允许

第三步:将安全组绑定到ECS实例

在实例详情页面,点击“更多” > “网络和安全组” > “更换安全组”,选择你刚创建的安全组。如果你有多个安全组,可以同时绑定,但注意规则合并后的效果是所有安全组的并集。为了清晰,建议只绑定一个安全组。

第四步:验证白名单是否生效

在未授权的网络环境(如4G热点、家庭宽带)中使用在线端口扫描工具(例如站长工具的端口扫描)对你的域名或源站IP进行探测。如果白名单配置正确,扫描结果应该显示“超时”或“端口关闭”,而不是“开放”。同时,你自己本地的SSH和网站访问必须正常。

⚠️ 警告:在绑定安全组之前,请确保你已经将自己的管理IP加入白名单。如果忘记添加,你将无法SSH或Web登录,需要到云控制台使用VNC(远程连接)进入系统,或者通过另一个仍有权限的安全组临时替换。

进阶:锁死真实源站——让所有扫描器都找不到你——Security Group

很多站长虽然配置了安全组,却仍然开着80/443端口给全世界。他们以为“只要IP不公开就安全”,但黑客可以通过搜索引擎批量扫描全网IP段,几秒钟就能发现未封装的源站。真正的“锁死”意味着:除了预定义的合法来源,任何外部IP都无法与你的服务器建立TCP连接。

具体做法就是:不开放任何HTTP/HTTPS端口给0.0.0.0/0。如果你使用CDN,只有CDN回源IP段才能访问80/443;如果你使用Nginx反向代理,只有代理服务器的内网IP才能访问。这样,即使攻击者知道你的源站IP,也无法直接发起HTTP请求,因为网络层已经丢弃了握手包。

为什么这比WAF更有效?

WAF(Web应用防火墙)会先接收HTTP流量,然后分析请求内容。这意味着攻击者的流量已经抵达你的源站机房,消耗了带宽和计算资源。而网络层白名单在数据包进入网卡之前就将其丢弃,连TCP三次握手都不会发生。对于DDoS攻击来说,这是最省钱的防御手段——云厂商会自动在网络入口处丢弃不属于白名单的流量,不会计费。

最佳实践与注意事项

配置前的检查

  • 定期更新白名单IP:CDN厂商的回源IP段可能变更,建议订阅官方公告或使用API自动同步。如果漏更新,会导致网站中断。
  • 区分内网与公网:对于只在内网通信的服务(如数据库、Redis),安全组规则应该只允许其他机器内网IP访问,绝不要绑定公网网卡或IPv6地址。
  • IPv6同样需要白名单:现在很多云服务器默认开启IPv6,如果只配置IPv4白名单而放行IPv6的所有流量,则白名单形同虚设。记得删掉IPv6的默认规则,并只添加必要的IPv6白名单。
  • 出站规则通常放行所有:安全组的出方向默认允许所有流量,不建议改动,否则你的服务器无法正常外连(如yum更新、数据库通信)。除非你有严格的数据外泄控制需求。
  • 配合云防火墙或WAF使用:安全组是网络层防线,不能防御应用层漏洞(如SQL注入、XSS)。建议在CDN或WAF层再做一层白名单,形成纵深防御。

Security Group:总结:从今天起,给你的源站上一把“门禁锁”

验证与回滚

云安全组白名单是性价比最高的源站防护手段,配置简单,效果立竿见影。不要等到被攻击后才想到加白名单,现在就打开云控制台,检查你的安全组是否有0.0.0.0/0的入站规则。如果有,立刻删除,替换成白名单。记住:真正的安全不是“我有防火墙”,而是“你没有钥匙,连门都看不见”。后续只要定期检查关键指标,Security Group就不会变成维护负担。

延伸阅读