核心策略:隱藏源站 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是錦上添花,但核心思路就這三點。