本文出自 “gehailong 的BLOG” 博客,請務必保留此出處http://gehailong.blog.51cto.com/765312/691701
一. 常見的DDos***類型
SYN Flood:是當前最流行的DoS(拒絕服務***)與,這是一種利用TCP協議缺陷,發送大量僞造的TCP連接請求,從而使得被***方資源耗盡(CPU滿負荷或內存不足)的***方式。
Smurf:該***向一個子網的廣播地址發一個帶有特定請求(如ICMP迴應請求)的包,並且將源地址僞裝成想要***的主機地址。子網上所有主機都回應廣播包請求而向被***主機發包,使該主機受到***。
Land-based:***者將一個包的源地址和目的地址都設置爲目標主機的地址,然後將該包通過IP欺騙的方式發送給被***主機,這種包可以造成被***主機因試圖與自己建立連接而陷入死循環,從而很大程度地降低了系統性能
Ping of Death:根據TCP/IP的規範,一個包的長度最大爲65536字節。儘管一個包的長度不能超過65536字節,但是 一個包分成的多個片段的疊加卻能做到。當一個主機收到了長度大於65536字節的包時,就是受到了Ping of Death***,該***會造成主機的宕機。
Teardrop:IP數據包在網絡傳遞時,數據包可以分成更小的片段。***者可以通過發送兩段(或者更多)數據包來實現TearDrop***。第一個包的偏移量爲0,長度爲N,第二個包的偏移量小於N。爲了合併這些數據段,TCP/IP堆棧會分配超乎尋常的巨大資源,從而造成系統資源的缺乏甚至機器的重新啓動。
二. 如何檢測是否遭受了DDos***
第一種方法:這裏有一條非常實用的命令
# netstat -an|grep SYN_RECV|wc –l
如果顯示的數據比較大的話,你很可能已經中招了。
第二種方法:用監控軟件,比如mrtg或cacti都可以,比如下面顯示,流量在某一時刻突然劇增
三. 如何預防DDos,這裏有一個非常實用的腳本
#!/bin/bash
netstat -an|grep SYN_RECV|awk '{print$5}'|awk -F: '{print$1}'|sort|uniq -c|sort -rn|awk '{if ($1 >1) print $2}'
for i in $(cat /tmp/dropip)
do
/sbin/iptables -A INPUT -s $i -j DROP
echo “$i kill at `date`” >>/var/log/ddos
done
該腳本會把處於SYN_RECV並且數量達到5個的ip做統計,並且寫到iptables的INPUT鏈做拒絕。