Apache防DDOS模塊mod_evasive安裝和配置方法詳解
一、mod_evasive 介紹
mod_evasive 是Apache(httpd)服務(wù)器的防DDOS的一個(gè)模塊。對(duì)于WEB服務(wù)器來說,是目前比較好的一個(gè)防護(hù)DDOS攻擊的擴(kuò)展模塊。雖然并不能完全防御DDOS攻擊,但在一定條件下,還是起到緩服Apache(httpd)服務(wù)器的壓力。如配合iptables、硬件防火墻等防火墻設(shè)備配合使用,可能有更好的效果。
mod_evasive 的官方地址: http://www.zdziarski.com/
二、mod_evasive 工作原理
Apache模塊mod_evasive利用Hash表儲(chǔ)存相應(yīng)的HTTP請(qǐng)求,利用設(shè)定規(guī)則判斷是否拒絕對(duì)方的請(qǐng)求。
三、mod_evasive 安裝
wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
tar zxvf mod_evasive_1.10.1.tar.gz
cd mod_evasive/
apxs -i -a -c mod_evasive20.c
#編譯、安裝、并加載模塊
#注:apxs 用于編譯模塊工具;如果是用系統(tǒng)自帶的軟件包,一般位于/usr/sbin目錄。如果您是自己編譯安裝Apache(httpd)的,你應(yīng)該自己來指定路徑;
在編譯安裝完成后,會(huì)自動(dòng)插入一行到Apache 配置文件中,對(duì)于Apache 2.x 版本中,應(yīng)該在其配置文件中有類似下面的一行;
四、配置mod_evasive
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
#加入以下配置
<IfModule mod_evasive20.c>
DOSHashTableSize 3097 #表大小
DOSPageCount 2 #限制單位時(shí)間內(nèi)同一IP請(qǐng)求同一網(wǎng)頁次數(shù)
DOSSiteCount 10 #限制單位時(shí)間內(nèi)同一IP請(qǐng)求網(wǎng)站次數(shù)
DOSPageInterval 1 #網(wǎng)頁存取間隔
DOSSiteInterval 1 #網(wǎng)站存取間隔
DOSBlockingPeriod 10 #限制訪問時(shí)間
DOSEmailNotify #疑似攻擊時(shí)郵件通知
DOSSystemCommand "su - onovps -c iptables -I INPUT -s %s --dport 80 -j DROP"
#疑似攻擊時(shí)用防火墻限制IP訪問80端口
DOSLogDir "/var/log/ #日志目錄
DOSWhiteList 127.0.0.1 #添加白名單
</IfModule>
如果您不知道把這些插入到哪,用下面的辦法做也是可以的;
在/etc目錄中創(chuàng)建一個(gè)文件,比如mod_evasive.conf;
然后把根據(jù)自己的Apache版本來加入相應(yīng)的內(nèi)容;
接著我們?cè)傩薷?httpd.conf ,在最后一行加入
修改完成后,我們要重啟Apache服務(wù)器使配置生效:
五、測試mod_evasive
防DDOS的模塊做好后,我們可以要驗(yàn)證,可以用Apache 自帶的ab工具,系統(tǒng)默認(rèn)安裝在/usr/sbin目錄中;比如;
注:上面的例子的意思是,如果您的服務(wù)器是百度的WEB服務(wù)器,我們要發(fā)送數(shù)據(jù)請(qǐng)求包,總共1000個(gè),每次并發(fā)50個(gè);
另外一個(gè)測試工具就是mod_evasive的解壓包的目錄中,有個(gè)test.pl ,你可以修改IP地址,然后用
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
是不是有效果,請(qǐng)根據(jù) ab工具或 測試腳本出來的結(jié)果來查看;
注:因?yàn)槲覀兙幾gmod_evasive時(shí),用的是默認(rèn)配置,所以日志被存放在/tmp目錄中。如果有DDOS攻擊,會(huì)在/tmp產(chǎn)生日志。日志的文件是以 dos-開頭的;
六、配置參數(shù)詳解
DOSHashTableSize 3097:定義哈希表大小。
DOSSiteCount 50:允許客戶機(jī)的最大并發(fā)連接。
DOSPageCount 2:允許客戶機(jī)訪問同一頁的間隔。
DOSPageInterval 1:網(wǎng)頁訪問計(jì)數(shù)器間隔。
DOSSiteInterval 1:全站訪問計(jì)數(shù)器間隔。
DOSSiteInterval 60:加入黑名單后拒絕訪問時(shí)間。
DOSEmailNotify xxxx@gmail.com:有IP加入黑名單后通知管理員。
DOSSystemCommand "sudo iptables -A INPUT -s %s -j DROP":IP加入黑名單后執(zhí)行的系統(tǒng)命令。
DOSLogDir "/tmp":鎖定機(jī)制臨時(shí)目錄,日志目錄。
DOSWhiteList 127.0.0.1:防范白名單,不阻止白名單IP。
七、mod_evasive 的高級(jí)配置
如果想更改一些適合自己的參數(shù),有些必要的參數(shù),并不是通過配置文件修改就一下起作用的,我們要修改源碼包中的 mod_evasive.c(Apache 1.x用之) 或 mod_evasive20.c (Apache 2.x用之);
#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
比如我們改改其中的數(shù)字,根據(jù)英文很容易理解。比如修改日志存放目錄,就把/tmp改成別的目錄。如果您不知道放在哪好,還是用默認(rèn)的吧;
如果您在這里更改了參數(shù),不要忘記修改Apache 配置文件中關(guān)于mod_evasive 的參數(shù);
如果您想加入一些其它的參數(shù),請(qǐng)查閱源碼包中的README,里面有詳細(xì)說明,大多來說沒太大的必要……
這個(gè)文件相當(dāng)重要,如果您想更改某些設(shè)置,就要修改這個(gè)文件……
八、總結(jié)
mod_evasive 還是有點(diǎn)用的,對(duì)于apache服務(wù)器來說,是目前比較好的一個(gè)防護(hù)DDOS攻擊的擴(kuò)展模塊。雖然并不能完全防御 DDOS攻擊,但在一定條件下,還是起到緩服Apache(httpd)服務(wù)器的壓力。如果配合iptables、硬件防火墻等防火墻設(shè)備配合使用,可能有更好的效果。安裝也不費(fèi)力氣。如果你需要的時(shí)候,會(huì)想到這個(gè)模塊的。
相關(guān)文章
apache密碼生成工具h(yuǎn)tpasswd使用詳解
本文主要介紹了1、 htpasswd的作用與安裝,2、 htpasswd命令詳解,3、 htpasswd的實(shí)例,4、 htpasswd的應(yīng)用,有需要的小伙伴參考下2015-01-01linux下實(shí)時(shí)查看tomcat運(yùn)行日志的方法
下面小編就為大家?guī)硪黄猯inux下實(shí)時(shí)查看tomcat運(yùn)行日志的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起 小編過來看看吧2016-11-11Linux下nginx配置https協(xié)議訪問的方法
這篇文章主要介紹了Linux下nginx配置https協(xié)議訪問的方法,需要的朋友可以參考下2016-07-07vscode連接遠(yuǎn)程Linux服務(wù)器及免密登陸的詳細(xì)步驟
這篇文章主要介紹了vscode連接遠(yuǎn)程Linux服務(wù)器及免密登陸,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08Ubuntu16.04搭建NFS 文件共享服務(wù)器的方法
這篇文章主要介紹了Ubuntu16.04搭建NFS 文件共享服務(wù)器的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04淺析Linux中vsftpd服務(wù)配置(匿名,用戶,虛擬用戶)
vsftpd 是一個(gè) UNIX 類操作系統(tǒng)上運(yùn)行的服務(wù)器的名字,支持很多其他的 FTP 服務(wù)器所不支持的特征。這篇文章主要介紹了Linux中vsftpd服務(wù)配置(匿名,用戶,虛擬用戶),需要的朋友可以參考下2019-11-11centos8 使用yum 安裝 mongodb 4.2的方法
這篇文章主要介紹了centos8 使用yum 安裝 mongodb 4.2的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10