[apache] 防止DDOS
這時候又要先忍不住抱怨一下 hostmonster .
又來一次 ,無預警的網站掛點 , 只有噴 Fatal error :
一定又是他們升級 Zend 然後路徑又改了
改成怎樣沒人知道 ....
用 live chat 不理人 , 完全沒人上線服務
賣送拉 .. 把 pic.segaa.net 搬回家了
正式放棄 hostmonster ... 凸O凸
bye ~~~ fuck hostmonster
不過搬回家之後 , 才知道被轟炸的恐怖 Q___Q
不只流量的問題 , cpu loading 更是一大挑戰阿 -_-
mysql 的cpu time 常常飆高到 9x%
先來弄個 apache 防止 ddos 的外掛
這邊搜尋到的是非官方的外掛
1. 下載
segaa $ wget http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz
segaa $ tar zxvf mod_evasive_1.10.1.tar.gz
segaa $ cd mod_evasive
2. 加入 apache
segaa $ apxs -cia mod_evasive20.c
segaa $ chmod 755 /usr/local/libexec/apache2/mod_evasive20.so
3. 編輯 httpd.conf ,確認是否自動加入這行
LoadModule evasive20_module libexec/apache2/mod_evasive20.so
4. 最後加入以下設定 , 下面是參照別人文章的說明 , 也可自行參閱 REDME 自行調整相關參數
#記錄和存放黑名單的哈西表大小,如果服務器訪問量很大,可以加大該值
DOSHashTableSize 3097
#同一個頁面在同一時間內可以被統一個用戶訪問的次數,超過該數字就會被列為攻擊
DOSPageCount 3
#同一個用戶在同一個網站內可以同時打開的訪問數,同一個時間的數值在DOSSiteInterval中設置。
DOSSiteCount 40
#設置DOSPageCount中時間長度標準,默認值為1。
DOSPageInterval 2
#DOSSiteInterval 2 設置DOSSiteCount中時間長度標準,默認值為1。
DOSSiteInterval 2
#被封時間間隔秒,這中間會收到 403 (Forbidden) 的返回。
DOSBlockingPeriod 10
#設置受到攻擊時接收攻擊信息提示的郵箱地址。
#DOSEmailNotify you@yourdomain.com
#受到攻擊時Apache運行用戶執行的系統命令
#DOSSystemCommand 「su - someuser -c 『/sbin/… %s …』」
#攻擊日誌存放目錄,BSD上默認是 /tmp
#DOSLogDir 「/var/lock/mod_evasive」
5. 設好之後重新啟動 apache 就套用了
segaa $ apachectl restart
« [遊記] 08 初三 高雄一日遊 - 2 (劉家酸菜白肉鍋 + 冒煙的喬 ) | Main | [apache] 防止圖片 盜連 、 直連 »