Centos7安裝mod_evasive模組預防DoS攻擊

 1,314 total views,  1 views today

在短時間內遭受到大量使用者的連線請求,常常就反應不及而當掉,此種的攻擊模式,稱為拒絕服務攻擊(Denial of service,簡稱為 DoS)在Apache 網頁服務安裝 mod_evasive 模組,就能有效的阻檔拒絕服務攻擊。

安裝mod_evasive

首先進入ssh命令列提示符號下安裝指令

yum install mod_evasive

2015-10-29_11h49_59

mod_evasive.conf設定檔編輯

# line 18: threshhold for the number of requests for the same page per page interval
DOSPageCount   5
# line 24: threshhold for the total number of requests for any object by the same client on the same listener per site interval
DOSSiteCount   50
# line 28: The interval for the page count threshhold
DOSPageInterval   1
# line 32: The interval for the site count threshhold
DOSSiteInterval   1
# line 41: amount of time (in seconds) that a client will be blocked for if they are added to the blocking list
DOSBlockingPeriod   10
# line 48: notification address if IP address becomes blacklisted
DOSEmailNotify   [email protected]
# line 66: specify log directory
DOSLogDir   "/var/log/mod_evasive"

*DOSPageInterval
設定 DOSPageCount 的時間區段,單位為秒,如果沒設定此值,預設為一秒。

*DOSSiteInterval
設定 DOSSiteCount 的時間區段,單位為秒,如果沒設定此值,預設為一秒。

*DOSBlockingPeriod
當發現有疑似攻擊(超過上述所設定的最大次數)時,需暫時停止對方存取的時間,如果沒設定此值,預設為 10 秒,在這段時間內,使用者會接收到 403 (Forbidden) 的訊息。

*DOSmailNotify
設定管理者的 Email 位址,當系統有疑似被攻擊時,即會寄發警告信至管理者的信箱中。

*DOSSystemCommand
當發現有疑似攻擊,即需自動執行的指令。Ex:DOSSystemCommand “/bin/mail -t %s (%s指的是 DOSEmailNotify設定的email address)”

*DOSLogdir
設定 mod_evasive 的記錄檔位置,如果沒設定此值,預設存放 log 的目錄為 /tmp。當 mod_evasive 發現有疑似攻擊時,會在該目錄下新增一個 dos_[ip] 的檔案,讀者可查看目錄下的相關檔案即可得知攻擊的惡意來源 IP。

模擬測試DoS攻擊

[[email protected] ~]# perl /usr/share/doc/mod_evasive-*/test.pl
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
…..
…..
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden

mod_evasive已經成功封鎖該連線回應

重新啟動apache服務

apachectl restart

發表迴響

%d 位部落客按了讚: