分布式拒絕服務(Distributed Denial of Service,簡稱DDoS),比較常見的攻擊方式:Icmp flood、syn flood、UDP Flood
ICMP flood 攻擊原理:借用模擬工具向目標主機發送大量ICMP請求,以此大量消耗目標主機資源,直至資源滿載、癱瘓。

防御策略:
- 針對icmp 協議限制帶寬
- 限制icmp 速率:
一分鍾平均只能 ping 20 次,最多 30 次
iptables -t filter -A INPUT -p icmp -m limit --limit 20/min --limit-burst 30 -j ACCEPT
iptables -t filter -A INPUT -p icmp -j REJECT --reject-with host-unreach # 否則直接丟棄
- 禁ping
1)禁止任何主機ping我(直接丟棄icmp數據包)
iptables -t filter -A INPUT -p icmp -j DROP
2)禁止任何主機ping我(回復主機不可達)
iptables -t filter -A INPUT -p icmp -j REJECT --reject-with host-unreach
syn flood攻擊原理:
攻擊者偽造大量的SYN請求到服務器,服務器不停回復SYN ACK,會有大量的半連接請求需要服務器維護,
從而大量消耗服務器CPU時間和內存(有可能導致服務器堆棧溢出崩潰),使得服務器不能正常響應其他正常連接。
防御策略:
1.縮短timeout時間
2.設置SYN Cookie,給每一個請求連接的IP地址分配一個Cookie,如果短時間內連續受到某個IP的重復SYN報文,
就認定是受到了攻擊,並記錄地址信息,以后從這個IP地址來的包會被一概丟棄。這樣做的結果也可能會影響到正常用戶的訪問。
UDP Flood攻擊原理:
攻擊者在短時間內向目標設備發送大量的UDP報文,導致鏈路擁塞甚至網絡癱瘓。
在UDP協議中,正常情況下,客戶端發送請求包到服務器,服務器返回響應包給客戶端,一次交互就已完成,中間沒有校驗過程。
反射攻擊正是利用了UDP協議面向無連接、缺少源認證機制的特點,將請求包的源IP地址篡改為攻擊目標的IP地址,
最終服務器返回的響應包就會被送到攻擊目標,形成反射攻擊。
攻擊者++++++NTP服務器+++++被攻擊目標機
攻擊者將原地址修改成“被攻擊者目標機”,不停向NTP服務器同步時間,NTP服務器將不停反饋信息給被攻擊目標機
防御策略:
將鏈路中的UDP報文控制在合理的帶寬范圍之內,可基於目的IP地址、目的安全區域和會話進行限流。
雖然限流可以有效緩解鏈路帶寬的壓力,但這種方式可能會丟棄一些正常報文,因此需要新的手段防御UDP Flood。
由攻擊工具偽造的攻擊報文通常都擁有相同的特征字段,比如都包含某一字符串或整個報文內容一致,
而對於UDP反射放大攻擊中那些由真實網絡設備發出的報文,在數據段不具備相同特征,但其目的端口都是固定的,
所以不難發現UDP Flood攻擊報文都具有一定的特征。確定攻擊報文的特征后即可進行過濾,特征過濾也就是常說的指紋過濾。
指紋過濾包括靜態指紋過濾和動態指紋學習兩種方法。
