安裝該功能前先確定 Apapche 版本為 V2.4.6。
接著到 Apache Ha Us 下載 mod_evasive2。
解壓縮,將 mod_evasive2.so 放置 apache2\modules 下。
開啟Apache 的 httpd.conf 設定修改內容。
在 LoadModule 區,添加設定並存檔。
LoadModule evasive2_module modules/mod_evasive2.so
在 httpd.conf 最下面加入以下設定並存檔。
<IfModule evasive2_module> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSLogDir "logs/" </IfModule>設定檔內容說明:
DOSHashTableSize 3097
記錄和存放黑名單的哈西表大小,如果伺服器訪問量很大,可以加大該值
DOSPageCount 2
同一個頁面在同一時間內可以被 同一個用戶訪問的次數,超過該數字就會被列為攻擊,同一時間的數值可以在DosPageInterval參數中設置。
DOSSiteCount 50 同一個用戶在同一個網站內可以同時打開的訪問數,同一個時間的數值在DOSSiteInterval中設置。
DOSPageInterval 1
設定 DOSPageCount 的時間區段,單位為秒,如果沒設定此值,預設為一秒。
DOSSiteInterval 1
設定 DOSSiteCount 的時間區段,單位為秒,如果沒設定此值,預設為一秒。
DOSBlockingPeriod 10
當發現疑似攻擊後,使用者會收到 403 (Forbidden) 或 503 (Service Unavailable),這是設定封鎖的時間,以秒為單位。。
以下三個參數可是需求添加:
DOSEmailNotify
設定接收攻擊信息的電郵地址。
例:DOSEmailNotify you@yourdomain.com
DOSSystemCommand
這是收到攻擊信息時所使用的指令。
例:DOSSystemCommand ”su - someuser -c \’/sbin/… %s …\’”
/bin/mail -t %s (%s指的是DOSEmailNotify設定的email address)
DOSLogDir "logs/"
記錄連線進來的狀態。
完成後重啟 Apache,就完成安裝 mod_evasive 模組。
開網頁輸入 localhost 查看 mod_evasive 是否已被載入到 Apache 上。
可用下載 mod_evasive 的壓縮檔中的 test.pl 進行測試,不過要先安裝 ActivePerl,安裝 ActivePerl 後,開啟命令提示字元輸入以下指令,測試一下 mod_evasive 功能。
或是對網頁不斷按 F5 重新整理,測試 mod_evasive 功能。
以上就是 mod_evasive 安裝與測試。
參考資料:
- Mod_Evasive for Apache 2.4.X on Windows?
- Detect if Visual C++ Redistributable for Visual Studio 2012 is installed
- 以 mod_evasive 阻擋 D.o.S 攻擊