在上篇博客(http://cloudapps.blog.51cto.com/3136598/1708539)中,介紹瞭如何使用Apache的模塊mod_evasive進行反DDOS***的設置,在這種模式中,主要預防的是對http的volume attack,然而DDOS的***方式,各類工具很是多,隨便搜一搜就知道了,咱們回過頭來看看,什麼叫DOS/DDOS,看看維基百科:php
「拒絕服務***(Denial of Service Attack,縮寫:DoS)亦稱洪水***,是一種網絡***手法,其目的在於使目標電腦的網絡或系統資源耗盡,使服務暫時中斷或中止,致使其對目標客戶不可用。服務器
當***使用網絡上兩個或以上被攻陷的電腦做爲「殭屍」向特定的目標發動「拒絕服務」式***時,其稱爲分佈式拒絕服務***(Distributed Denial of Service attack,縮寫:DDoS)。據2014年統計,被確認爲大規模DDoS的***已達平均每小時28次。[1]***發起者通常針對重要服務進行***,如銀行,信用卡支付網關,甚至根域名服務器。」網絡
***方式能夠分爲:
app
帶寬消耗類型***(DDoS帶寬消耗***能夠分爲兩個不一樣的層次;洪泛***或放大***。)分佈式
資源消耗性***spa
協議分析***(SYN flood,SYN洪水)
LAND attack
CC***
僵屍網絡***
Application level floods(應用程序級洪水***)
若是你概括彙總一下***的類型的話,會發現,主要有:
應用層級DDOS***
協議層DDOS***(UDP/ICMP/SYN等)
量級DDOS***(僵屍網絡/CC等)
其中後兩種,如今大部分的DDOS的設備均可防禦,但應用級別的DDOS就會比較麻煩,很難防禦,上篇博文中介紹的實際是該種***的一種,基於http的volume attack的預防,屬於大批量,快速***類的;那還有一種比較常見的應用***叫慢速***(slow http DDOS),偏偏相反,就是慢速鏈接,耗掉你全部資源,比較有名的如Slowloris等。
對於第一種,基本原理是檢測訪問量和訪問頻率,封掉IP
對於第二種,使用netstat檢測鏈接狀態,而後將***地址加入iptable中,拒絕訪問
今天咱們來介紹第二種方式的預防工具,不須要咱們來寫腳本了,有一個開源的軟件能夠幫助咱們來作,軟件名字叫DOS Deflate,這個軟件是一個法國的大神Zaf(zaf@vsnl.com)開發的,基本原理同上介紹。在本文中使用CentOS6.5座位演示環境:
1. 準備目錄:
$sudo mkdir -p /usr/local/src/
$cd /usr/local/src/
$sudo mkdir ddos
$cd ddos
2.下載DOS Deflate軟件
$ sudo wget http://www.inetbase.com/scripts/ddos/install.sh
3. 安裝軟件
4. 安裝完成以後,須要進一步配置該軟件:
$ sudo vi /usr/local/ddos/ddos.conf
4.1 須要檢查一下配置路徑是否和你的實際環境一致,本測試中保持不變:
##### Paths of the script and other files
PROGDIR="/usr/local/ddos"
PROG="/usr/local/ddos/ddos.sh"
IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list"
CRON="/etc/cron.d/ddos.cron"
APF="/etc/apf/apf"
IPT="/sbin/iptables"
4.2 FREQ參數的值定義,ddos腳本***時間被執行一次,使用的是Linux crontab服務,默認是1分鐘執行一次:
FREQ=1
4.3 NO_OF_CONNECTIONS是定義你認爲,若是是一個DDOS慢速***的客戶端,會創建多少鏈接來還非你的資源,默認是150,我將他改爲70
NO_OF_CONNECTIONS=70
4.4 DDOS Deflate支持兩種防火牆APF和iptables,本測試中咱們使用iptables,因此將值改爲0:
APF_BAN=0
4.6 定義了你是否使用交互模式來處理***IP,若是逆選擇交互,則只會給你發封郵件,咱們設爲1
##### KILL=0 (Bad IPs are'nt banned, good for interactive execution of script)
##### KILL=1 (Recommended setting)
KILL=1
4.6 郵件通知地址:
EMAIL_TO="xxx@microsoft.com"
4.7 將這個被禁止掉的IP封掉多長時間,以秒爲單位
##### Number of seconds the banned ip should remain in blacklist.
BAN_PERIOD=600
5. 全部的配置完成後,咱們從新啓動服務:
6.配置完成後,咱們須要測試一下效果,光說不練不是真把式啊,DDOS***的工具很是多,常見的有如下這些:
HOIC (High Orbit Ion Canon)
LOIC ( Low Orbit Ion Canon)
XOIC
R-U-DEAD-Yet
Pyloris
OWASP DOS HTTP Post
GoldenEye HTTP Denial of Service Tool
Slowloris HTTP Dos
大部分的下載到目前爲止都是不可用的,好比HOIC,Slowloris等,我找了一些能夠作測試的分享給你們:
Slow Http Test :https://code.google.com/p/slowhttptest/downloads/detail?name=slowhttptest-1.6.tar.gz&can=2&q=
https://www.owasp.org/index.php/OWASP_HTTP_Post_Tool
http://www.proactiverisk.com/tools/
本測試Demo中,使用的是後者,能夠作慢速***
6.1 首先檢測一下當前iptables的狀態:
能夠看到一切正常,那麼就誒下來準備***。
6.2 配置你要***的IP地址,設置***鏈接數,時間等信息,開始慢速***
6.3 你們會記得咱們設置的***檢測時間是1分鐘,***一段時間以後,咱們監測一下iptables的狀態,能夠看到,***的IP地址被檢測到,並禁止了:
6.4 最終***被封殺,沒法鏈接
能夠看到這種設置很是有效的防止了慢速***,能夠在具體的實踐中嘗試用一用~