核心策略:隐藏源站 IP

DDoS攻击尤其是带宽耗尽型攻击,往往直接针对源站IP进行。一旦源IP暴露,攻击流量便会绕过WAF直达源站,造成致命打击。因此,防御的第一步是将源站彻底“隐藏”起来。

1. 使用 CDN/WAF 代理

将域名解析(CNAME)指向CDN或云WAF服务商提供的CNAME地址。所有的用户请求都会先到达CDN节点进行缓存或清洗,只有经过筛选的合法回源流量才会发送给源站。对外暴露的是CDN节点的IP,攻击者无法直接得知源站的真实IP。

2. 源站白名单策略

在源站防火墙(Security Group)上配置只允许CDN节点的回源IP段访问。即使攻击者通过某种手段(如子域名扫描、历史DNS记录查询等)获取了源站IP,由于源站只响应白名单内的请求,直接发起的攻击流量也会被丢弃。

架构优化:提升抗压能力

除了隐藏,源站自身的架构优化也能大幅提升抗D能力。

1. 动静分离

将静态资源(图片、CSS、JS)完全托管在CDN或对象存储(OSS/S3)上,并开启CDN缓存。这不仅降低了源站的带宽压力,还使得CDN能够直接处理90%以上的请求。源站只专注于处理动态请求(API, PHP/JSP逻辑),从而能承受更高的并发。

2. 负载均衡 (Load Balancing)

使用负载均衡器(CLB/SLB)分发流量到多台后端服务器。当攻击流量穿透WAF到达源站时,负载均衡器可以将流量分散,防止单点故障。结合自动伸缩(Auto Scaling),在流量激增时自动扩容后端实例。

Anycast 任播技术

传统的Unicast(单播)将一个IP绑定到一台物理设备或一个地理位置。而Anycast(任播)技术允许将同一个IP地址宣告在多个地理位置不同的路由器上。

  • 就近接入:用户的请求会被自动路由到距离最近的节点。
  • 攻击分散:在遭遇DDoS攻击时,庞大的攻击流量会被分散牵引到全球各个Anycast节点进行清洗,而不是集中在一个点。这使得防御系统能够承受Tbps级别的攻击而不至于单点崩溃。

安全查漏补缺

在实施了上述策略后,还需定期检查是否仍在某处泄露了源IP。

  • 邮件服务器:如果源站直接发送邮件,邮件头(Header)中可能会包含源IP。建议使用第三方邮件服务(如SendGrid)或通过代理发送。
  • 非Web服务:检查SSH、FTP等管理端口是否直接暴露,建议使用VPN或堡垒机访问。
  • 子域名:确保所有子域名都使用了CDN,没有遗漏的解析记录直接指向源站。

DNS 层面保护

DNS是访问链条中的第一环,也是常被忽视的薄弱环节。

  • 多DNS提供商:同时使用两家以上DNS服务商(如Cloudflare + 飞盾云DNS),当一家遭受攻击时,另一家仍可正常解析。
  • DNSSEC:启用DNSSEC防止DNS劫持和缓存投毒,确保用户解析到正确的IP地址。
  • 低TTL策略:将DNS记录的TTL设置为较低值(如60-300秒),以便在遭受攻击时快速切换到备用IP或高防节点。

多CDN容灾架构

单一CDN服务商也可能出现区域性故障或被针对性攻击。采用多CDN架构可以进一步提升可用性:

  • 主备切换:平时使用主CDN服务商,通过健康检查监控节点状态。当主CDN出现异常时,自动通过DNS切换至备用CDN。
  • 智能调度:使用DNS智能解析,根据用户地理位置和网络状况,动态选择延迟最低的CDN节点。
  • 源站多活:在多个云区域部署源站副本,结合全局负载均衡,实现源站级别的容灾。

总结

源站保护说到底就三个字:藏、分、散。把IP藏起来不让攻击者找到,把流量分开不让一台机器扛所有压力,把架构分散开避免单点故障。DNS冗余和多CDN是锦上添花,但核心思路就这三点。