最新消息

[公告2014/05/30] 如有需要將部落格中,任何一篇文章的程式碼使用在商業用途,請與我聯繫。

[公告2015/04/26] Line版的 iInfo程式與投資應用 群組已上線想加入的朋友們,請先查看 "入群須知" 再與我聯繫 Line : aminwhite5168,加入請告知身分與回答 "入群須知" 的問題。

[公告2018/04/22] 台北 Python + Excel VBA 金融資訊爬蟲課程,課程如網頁內容 金融資訊爬蟲班:台北班 Python 金融資訊爬蟲、EXCEL VBA 金融資訊爬蟲

[公告2019/01/08] 請注意:我再次重申,部落格文章的程式碼,是要提供各位參考與學習,一旦網頁改版請自行修改,別要求東要求西要我主動修改,你們用我寫東西賺錢了、交差了,請問有分我一杯羹嗎?既然賺錢沒分我,請問有什麼理由要求我修改,如果沒能力改,就花錢來找我上課。

[公告2019/12/01] 若各位有 Excel VBA 案子開發需求,歡迎與我聯繫,可接案處理。

[公告2020/05/22] 頁面載入速度慢,起因為部分JS來源(alexgorbatchev.com)失效導致頁面載入變慢,目前已做調整,請多見諒。

2018年2月1日 星期四

Server 設定(1) --- Apache 安裝mod_evasive 模組 防DDOS攻擊

這幾天將手邊的小型伺服器 USBWebserver 進行優化設定功能,如網站遇到大量包封攻擊時,採用鎖定 IP 並拒絕提供服務。
安裝該功能前先確定 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 安裝與測試。

參考資料: