如何在 Ubuntu 下使用 mod_evasive 防止 Apache HTTP的DDoS

DDoS是一種阻斷式攻擊,可以在短時間內透過大量的連線來妨礙其他人無法取得伺服器的服務,對於一個伺服器來說,這是一場夢靨。幸好,Apache2有一個 mod_evasive 套件可以幫你阻絕 DDoS,並且擁有大量的數值可以讓你微調。

首先我們可以透過 apt-get install 來安裝此套件。

# apt-get install libapache2-mod-evasive

安裝完之後在 /etc/apache2/mods-enabled 目錄下多出兩個檔案,evasive.confevasive.load檔案,尤其evasive.conf是可以微調這些選項的組態檔案,內容為:

選項 解釋
DOSHashTableSize 處理雜湊表的大小,越大所需記憶體越大,需根據網站流量狀況來設定,建議流量越大,此數值就需要越大。
DOSPageCount 在DOSPageInterval所設定的時間內,同一個來源 IP 位址 存取同一個頁面的最大存取次數。
DOSSiteCount 在DOSSiteInterval所設定的時間內,同一個來源 IP 位址可同時發出 HTTP 存取的最大次數。
DOSPageInterval 設定 DOSPageCount 的時間區段,以秒為單位。
DOSSiteInterval 設定 DOSSiteCount 的時間區段,以秒為單位。
DOSBlockingPeriod 當某一IP 位址違反上述的DOSPageCount/DOSPageInterval或DOSSiteCount/DOSSiteInterval,將被block的秒數。
DOSmailNotify 管理者的 Email 位址,當有某個IP位址被阻斷時,會寄發警告信至此信箱中。
DOSSystemCommand 當發現有疑似攻擊,立即自動執行的指令。
DOSLogdir mod_evasive 的記錄檔位置,如果沒設定此值,預設存放記錄 的目錄為 /tmp。當有疑似攻擊時,會在該目錄下新增一個 dos_[ip] 的檔案。

然後把 /etc/apache2/mods-enabled/evasive.conf檔案的#去除掉之後填上自己所需要的數值,然後重新啟動 apache2 服務即可。

# service apache2 restart

但是要注意,如果你自己也安裝 ownCloud 私有雲的話,很有可能系統 ownCloud 會在短時間內上傳或是下載小的檔案,這就有可能會被 mods-evasive誤認為是一種DDoS行為而拒絕服務,所以裡面的數值自己要拿捏好,不然可能自己的 ownCloud 這一類程式會運作不正常。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *