Apache防DDOS模塊mod_evasive安裝和配置方法詳解
一、mod_evasive 介紹
mod_evasive 是Apache(httpd)服務(wù)器的防DDOS的一個(gè)模塊。對(duì)于WEB服務(wù)器來(lái)說(shuō),是目前比較好的一個(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)該自己來(lái)指定路徑;
在編譯安裝完成后,會(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)頁(yè)次數(shù)
DOSSiteCount 10 #限制單位時(shí)間內(nèi)同一IP請(qǐng)求網(wǎng)站次數(shù)
DOSPageInterval 1 #網(wǎng)頁(yè)存取間隔
DOSSiteInterval 1 #網(wǎng)站存取間隔
DOSBlockingPeriod 10 #限制訪問(wèn)時(shí)間
DOSEmailNotify #疑似攻擊時(shí)郵件通知
DOSSystemCommand "su - onovps -c iptables -I INPUT -s %s --dport 80 -j DROP"
#疑似攻擊時(shí)用防火墻限制IP訪問(wèn)80端口
DOSLogDir "/var/log/ #日志目錄
DOSWhiteList 127.0.0.1 #添加白名單
</IfModule>
如果您不知道把這些插入到哪,用下面的辦法做也是可以的;
在/etc目錄中創(chuàng)建一個(gè)文件,比如mod_evasive.conf;
然后把根據(jù)自己的Apache版本來(lái)加入相應(yīng)的內(nèi)容;
接著我們?cè)傩薷?httpd.conf ,在最后一行加入
修改完成后,我們要重啟Apache服務(wù)器使配置生效:
五、測(cè)試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è)測(cè)試工具就是mod_evasive的解壓包的目錄中,有個(gè)test.pl ,你可以修改IP地址,然后用
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
是不是有效果,請(qǐng)根據(jù) ab工具或 測(cè)試腳本出來(lái)的結(jié)果來(lái)查看;
注:因?yàn)槲覀兙幾gmod_evasive時(shí),用的是默認(rèn)配置,所以日志被存放在/tmp目錄中。如果有DDOS攻擊,會(huì)在/tmp產(chǎn)生日志。日志的文件是以 dos-開(kāi)頭的;
六、配置參數(shù)詳解
DOSHashTableSize 3097:定義哈希表大小。
DOSSiteCount 50:允許客戶機(jī)的最大并發(fā)連接。
DOSPageCount 2:允許客戶機(jī)訪問(wèn)同一頁(yè)的間隔。
DOSPageInterval 1:網(wǎng)頁(yè)訪問(wèn)計(jì)數(shù)器間隔。
DOSSiteInterval 1:全站訪問(wèn)計(jì)數(shù)器間隔。
DOSSiteInterval 60:加入黑名單后拒絕訪問(wèn)時(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ù),并不是通過(guò)配置文件修改就一下起作用的,我們要修改源碼包中的 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ì)說(shuō)明,大多來(lái)說(shuō)沒(méi)太大的必要……
這個(gè)文件相當(dāng)重要,如果您想更改某些設(shè)置,就要修改這個(gè)文件……
八、總結(jié)
mod_evasive 還是有點(diǎn)用的,對(duì)于apache服務(wù)器來(lái)說(shuō),是目前比較好的一個(gè)防護(hù)DDOS攻擊的擴(kuò)展模塊。雖然并不能完全防御 DDOS攻擊,但在一定條件下,還是起到緩服Apache(httpd)服務(wù)器的壓力。如果配合iptables、硬件防火墻等防火墻設(shè)備配合使用,可能有更好的效果。安裝也不費(fèi)力氣。如果你需要的時(shí)候,會(huì)想到這個(gè)模塊的。
相關(guān)文章
關(guān)于Linux下conda安裝caffe與pb轉(zhuǎn)caffe問(wèn)題
這篇文章主要介紹了關(guān)于Linux下conda安裝caffe與pb轉(zhuǎn)caffe問(wèn)題,文中以圖文說(shuō)明了conda安裝caffe的方法,需要的朋友可以參考下2023-03-03
詳解CentOS8更換yum源后出現(xiàn)同步倉(cāng)庫(kù)緩存失敗的問(wèn)題
這篇文章主要介紹了詳解CentOS8更換yum源后出現(xiàn)同步倉(cāng)庫(kù)緩存失敗的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
利用Apache?Common將java對(duì)象池化的問(wèn)題
對(duì)象被創(chuàng)建后,使用完畢不是立即銷毀回收對(duì)象,而是將對(duì)象放到一個(gè)容器保存起來(lái),下次使用的時(shí)候不用創(chuàng)建對(duì)象,而是從容器中直接獲取,這篇文章主要介紹了利用Apache?Common將java對(duì)象“池化”,需要的朋友可以參考下2022-06-06
linux mount報(bào)錯(cuò):you must specify the filesystem type的解決方法
這篇文章主要介紹了linux mount報(bào)錯(cuò):you must specify the filesystem type的解決方法,文中給出了詳細(xì)的解決方法示例,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03
linux vps服務(wù)器常用服務(wù)iptables策略
linux系統(tǒng)自帶防火墻必須要好好利用起來(lái),可是我有一年多沒(méi)寫過(guò)防火墻策略了,該忘的都忘了,不該忘的也都忘得差不多了,看筆記,找找感覺(jué)2017-04-04
Linux中BT5關(guān)于修改靜態(tài)IP和DNS方法
本篇文章給大家整理了關(guān)于Linux中BT5關(guān)于修改靜態(tài)IP和DNS的方法,有需要的朋友可以參考學(xué)習(xí)下。2018-02-02
深入理解Apache Airflow 調(diào)度器(最新推薦)
Apache Airflow調(diào)度器是數(shù)據(jù)管道管理系統(tǒng)的關(guān)鍵組件,負(fù)責(zé)編排dag中任務(wù)的執(zhí)行,通過(guò)理解調(diào)度器的角色和工作方式,正確配置調(diào)度器,并遵循最佳優(yōu)化實(shí)踐,你可以確保數(shù)據(jù)管道高效可靠地運(yùn)行,本文介紹Apache Airflow 調(diào)度器的相關(guān)知識(shí),感興趣的朋友一起看看吧2025-02-02
解決linux遠(yuǎn)程拷貝報(bào)錯(cuò)not?a?regular?file問(wèn)題
這篇文章主要介紹了解決linux遠(yuǎn)程拷貝報(bào)錯(cuò)not?a?regular?file問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12

