關於Apache (httpd)伺服器防DDOS模組mod_evasive的使用說明

來源:互聯網
上載者:User

標籤:發送   預設   count   實驗   target   restart   interval   位置   並發   

關於Apache (httpd)伺服器防DDOS模組mod_evasive的使用說明

1、 mod_evasive 介紹;

mod_evasive 是Apache(httpd)伺服器的防DDOS的一個模組。對於WEB伺服器來說,是目前比較好的一個防護DDOS攻擊的擴充模組。雖然並不能完全防禦 DDOS攻擊,但在一定條件下,還是起到緩服Apache(httpd)伺服器的壓力。如果配合iptables、硬體防火牆等防火牆裝置配合使用,可能 有更好的效果。可惜LinuxSir.Org 並沒有硬體防火牆,所以是否這種組合效果有更好的效果,我沒辦法驗證。

mod_evasive 的官方地址: http://www.zdziarski.com/projects/mod_evasive


2、 mod_evasive 的安裝和配置;


2.1 mod_evasive 的;

mod_evasive_1.10.1.tar.gz


2.2 mod_evasive 的安裝;

安裝 mod_evasive 之前,你要用安裝Apache(httpd)伺服器軟體包,還要安裝httpd-devel或 apache-dev。在Slackware 12.0中,安裝httpd軟體即可;

對於Apache 1.x 請用下面的編譯方法;

#/usr/sbin/apxs -iac mod_evasive.c

對於Apache 2.x 可以用下面的辦法;

#tar zxvf mod_evasive_1.10.1.tar.gz
#cd mod_evasive
#/usr/sbin/apxs -i -a -c mod_evasive20.c

註:apxs 用於編譯模組工具;如果是用系統內建的軟體包,一般位於/usr/sbin目錄。如果您是自己編譯安裝Apache(httpd)的,你應該自己來指定路徑;

我們然後修改/etc/ld.so.conf 檔案,把編譯出來的動態模組的所在位置指定在 ld.so.conf中;比如我用的是Aapche 2.x ,編譯完成後,模組mod_evasive20.so 安裝到了 /usr/lib/httpd/modules 目錄中;那我們就要把 這個目錄寫入到ld.so.conf中。

#echo "/usr/lib/httpd/modules" >> /etc/ld.so.conf
#ldconfig

註: 具體要與你的系統內容為準,不要照搬照抄,如果你對Linux不太熟的話;


2.3 mod_evasive 的配置;

在編譯安裝完成後,會自動插入一行到Apache 設定檔中,對於Apache 2.x 版本中,應該在其設定檔中有類似下面的一行;

LoadModule evasive20_module   lib/httpd/modules/mod_evasive20.so

對於Apache 1.x來說,也應該差不多,大體只是路徑不同罷了;

然後我們再修改 Apache 的設定檔,設定檔名為httpd.conf;

在Apache v1.x 版本中,要加入;

<IfModule mod_evasive.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
</IfModule>

在Apache v2.x加入;

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
</IfModule>

如果您不知道把這些插入到哪,用下面的辦法做也是可以的;

在/etc目錄中建立一個檔案,比如mod_evasive.conf;

#touch /etc/mod_evasive.conf

然後把根據自己的Apache版本來加入相應的內容;

接著我們再修改 httpd.conf ,在最後一行加入

Include /etc/mod_evasive.conf

修改完成後,我們要重啟Apache伺服器;

比如在Slackware 12.0中,Apache 2.x的重啟,我們要用到

#/etc/rc.d/rc.httpd restart

在Redhat、Fededora、Debian、Ubuntu、CentOS中的Apache,可以用;

#/etc/init.d/httpd restart

#/etc/init.d/apache restart

大體上差不多是這樣的……


2.4 對mod_evasive測實驗證 ;

防DDOS的模組做好後,我們可以要驗證,可以用Apache 內建的ab工具,系統預設安裝在/usr/sbin目錄中;比如;

#/usr/sbin/ab -n 1000 -c 50 http://www.google.com:80/

註:上面的例子的意思是,如果您的伺服器是google的WEB伺服器,我們要發送資料請求包,總共1000個,每次並發50個;

另外一個測試載入器就是mod_evasive的解壓包的目錄中,有個test.pl ,你可以修改IP地址,然後用

#perl test.pl

是不是有效果,請根據 ab工具或 測試指令碼出來的結果來查看;

因為我們編譯mod_evasive時,用的是預設配置,所以日誌被存放在/tmp目錄中。如果有DDOS攻擊,會在/tmp產生日誌。日誌的檔案是以 dos-開頭的;


3、mod_evasive 的進階配置;

如果想更改一些適合自己的參數,有些必要的參數,並不是通過設定檔修改就一下起作用的,我們要修改源碼包中的 mod_evasive.c(Apache 1.x用之) 或 mod_evasive20.c (Apache 2.x用之);

#define DEFAULT_HASH_TBL_SIZE   3097ul  // Default hash table size
#define DEFAULT_PAGE_COUNT      2       // Default maximum page hit count per interval
#define DEFAULT_SITE_COUNT      50      // Default maximum site hit count per interval
#define DEFAULT_PAGE_INTERVAL   1       // Default 1 Second page interval
#define DEFAULT_SITE_INTERVAL   1       // Default 1 Second site interval
#define DEFAULT_BLOCKING_PERIOD 10      // Default for Detected IPs; blocked for 10 seconds
#define DEFAULT_LOG_DIR         "/tmp"  // Default temp directory

比如我們改改其中的數字,根據英文很容易理解。比如修改日誌存放目錄,就把/tmp改成別的目錄。如果您不知道放在哪好,還是用預設的吧;

如果您在這裡更改了參數,不要忘記修改Apache 設定檔中關於mod_evasive 的參數;

如果您想加入一些其它的參數,請查閱源碼包中的README,裡面有詳細說明,大多來說沒太大的必要……

這個檔案相當重要,如果您想更改某些設定,就要修改這個檔案…… 


4、關於本文;

mod_evasive 還是有點用的,安裝也不費力氣。如果你需要的時候,會想到這個模組的 …… mod_evasive 是否有更進階的用法,也不是在這篇文章裡能說的清楚的。如果不懂怎麼辦?請查看源碼包中的README。

關於Apache (httpd)伺服器防DDOS模組mod_evasive的使用說明

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.