DoS(拒絕服務)攻擊通過合理服務請求耗盡資源,導致合法用戶無法獲得響應。典型表現:大量等待 TCP 連接、系統資源耗盡、網絡充斥偽造源地址垃圾包、高流量擁塞、利用協議缺陷重複高頻請求、嚴重時系統死機。防禦 DDoS 雖難,但中小網站可從主機加固入手顯著降低損害。
核心防禦:主機系統加固(以 Linux/BSD/Solaris/Windows 為例)
針對經典 SYN Flood(利用 TCP 協議缺陷發送大量偽造 SYN 請求),涉及兩個關鍵內核參數:半連接隊列長度與SYN 超時時間。調優建議:
- 關閉非必要服務: 減少攻擊面,僅開放業務必需端口。
- 增大半連接隊列: 將預設值(128/512)調整為 2048 或更大,延長處理隊列,緩衝更多 SYN 請求。
Linux 示例:sysctl -w net.ipv4.tcp_max_syn_backlog=2048(持久化寫入 /etc/sysctl.conf)。
- 縮短 SYN 超時時間: 加快半連接回收,保障正常連接,屏蔽非法攻擊包。
Linux 示例:sysctl -w net.ipv4.tcp_synack_retries=3(默認 5,對應約 45 秒;改為 3 約 18 秒)。
- 啟用 SYN Cookies(關鍵): 內核不分配 TCB,改用加密 Cookie 驗證 ACK,繞過半連接隊列限制。
Linux:sysctl -w net.ipv4.tcp_syncookies=1(緊急時自動啟用)。
- 及時更新內核、打補丁: 修復已知協議棧漏洞(如 TCP 選項處理、ICMP 錯誤處理等)。
網絡層面輔助措施
- 邊界防火牆/路由器啟用 uRPF(單播反向路徑轉發):過濾偽造源 IP 包。
- 接入層交換機配置 DHCP Snooping、Dynamic ARP Inspection、IP Source Guard:防止內網偽造 IP/MAC 發起攻擊。
- 流量清洗服務: 接入 ISP/雲廠商 DDoS 清洗服務,大流量攻擊引流清洗。
應用層防護
- 部署 WAF(ModSecurity、Nginx WAF、商業 WAF)防禦 HTTP Flood、CC 攻擊、SQL 注入等。
- 關鍵接口啟用驗證碼、頻率限制、IP 信譽庫封禁。
- 靜態資源 CDN 加速,隱藏源站 IP,分散壓力。
應急響應預案
- 監控告警: CPU、內存、帶寬、連接數、錯誤率閾值告警(Prometheus+Grafana、Zabbix、Datadog 等)。
- 攻擊確認:
netstat -an | grep SYN_RECV、ss -s、流量圖異常峰值。
- 緊急處置: 啟用清洗、切換高防 IP、臨時封禁攻擊源段、啟用應用級降級/熔斷。
- 事後複盤: 攻擊向量分析、日誌留存、規則優化、演練機制更新。
中小網站資源有限,重點應放在主機內核參數調優(低成本高收益)、接入專業清洗服務(外包重防禦)、建立最小化應急流程。安全投入不在大而在準,持續優化才能在攻擊浪潮中穩住陣腳。