DDOS***類型以及iptables防範ddos腳本

 本文出自 “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鏈做拒絕。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章