因apache的被ddos攻擊和惡意刷新導(dǎo)致apache運(yùn)行異常,占用資源過大,現(xiàn)在新發(fā)現(xiàn)一個(gè)很好的解決方法
一些朋友的應(yīng)用也遇到過類似的煩惱,基本上都通過安裝mod_evasive模塊得到了較好的解決。
下面我就來以我在CentOS 5.4上安裝基于Apache2.2.9的mod_evasive經(jīng)過給大家分享一下經(jīng)驗(yàn),順便進(jìn)一步講述一下mod_evasive的特性。計(jì)算機(jī)基礎(chǔ)知識(shí)
mod_evasive通過對來訪IP地址和訪問URI建立內(nèi)部動(dòng)態(tài)哈希表來檢測是否有攻擊,如果有如下的行為將拒絕該IP的訪問:
1. 每秒對同一頁面的請求數(shù)超過平時(shí)(原文:Requesting the same page more than a few times per second)。
2. 每秒同一個(gè)子進(jìn)程有超過50次的并發(fā)請求。
3. 臨時(shí)被拒絕(在blacklist中)的時(shí)候還不斷進(jìn)行請求。
mod_evasive可以非常方便的和防火墻、路由器等進(jìn)行整合,進(jìn)一步提高抗拒絕服務(wù)的能力。
和別的防攻擊工具一樣,mod_evasive同樣收到帶寬、系統(tǒng)處理能力等因素的影響,所以要想應(yīng)對大規(guī)模的攻擊,最好的方式就是把mod_evasive和您的防火墻和路由器進(jìn)行整合,而不是簡單的安裝成為獨(dú)立的Apache模塊。
mod_evasive在apache2.2.9上的安裝方法:
一、使用源碼安裝:
1、下載最新源碼包mod_evasive_1.10.1.tar.gz
# cd /usr/local/src
# wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
# tar -zxvf mod_evasive_1.10.1.tar.gz
# cd mod_evasive
# /usr/local/apache/bin/apxs -i -a -c mod_evasive20.c
說明:動(dòng)態(tài)編譯apache, 這里編譯mod_evasive20.c是應(yīng)對2.X版本的apache,如果是1.x版本的apache則編譯mod_evasive.c就行了
最后出現(xiàn)
#############################################################
Libraries have been installed in:
/usr/local/apache/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
———————————————————————-
chmod 755 /usr/local/apache/modules/mod_evasive20.so
[activating module `evasive20 in /usr/local/apache/conf/httpd.conf]
[root@localhost mod_evasive]#
##############################################################
表示已經(jīng)編譯寫入了apache模塊
查看httpd.conf文件中已經(jīng)自動(dòng)添加了 計(jì)算機(jī)
LoadModule evasive20_module modules/mod_evasive20.so
至此,完成了mod_evasive的安裝,重啟apache服務(wù)后,它就開始工作了,這個(gè)時(shí)候您如果不作任何別的設(shè)置,它也可以使用默認(rèn)配置為您提供良好的防攻擊能力,當(dāng)然,您也可以自己進(jìn)行一些參數(shù)的定制配置,添加如下參數(shù):
DOSHashTableSize3097
DOSPageCount5
DOSSiteCount50
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 10
參數(shù)簡單說明:
DOSHashTableSize 3097 記錄和存放黑名單的哈西表大小,如果服務(wù)器訪問量很大,可以加大該值
DOSPageCount 5 同一個(gè)頁面在同一時(shí)間內(nèi)可以被統(tǒng)一個(gè)用戶訪問的次數(shù),超過該數(shù)字就會(huì)被列為攻擊,同一時(shí)間的數(shù)值可以在DosPageInterval參數(shù)中設(shè)置。
DOSSiteCount 50 同一個(gè)用戶在同一個(gè)網(wǎng)站內(nèi)可以同時(shí)打開的訪問數(shù),同一個(gè)時(shí)間的數(shù)值在DOSSiteInterval中設(shè)置。
DOSPageInterval 2 設(shè)置DOSPageCount中時(shí)間長度標(biāo)準(zhǔn),默認(rèn)值為1。
DOSSiteInterval 2 設(shè)置DOSSiteCount中時(shí)間長度標(biāo)準(zhǔn)。電腦入門
DOSBlockingPeriod 10 被封時(shí)間間隔秒,這中間會(huì)收到 403 (Forbidden) 的返回。
其他可選參數(shù):
DOSEmailNotify 125869495@qq.com 設(shè)置受到攻擊時(shí)接收攻擊信息提示的郵箱地址。電腦知識(shí)
DOSSystemCommand “su – someuser -c ‘/sbin/… %s …’” 受到攻擊時(shí)Apache運(yùn)行用戶執(zhí)行的系統(tǒng)命令
DOSLogDir “/var/lock/mod_dosevasive” 攻擊日志存放目錄/var/lock/mod_dosevasive 一般就可以存放到/tmp目錄
最后,嘗試用壓力測試工具看看效果吧,你會(huì)想象到不錯(cuò)的效果
原創(chuàng)作品,謝絕轉(zhuǎn)載。有疑問請直接致QQ:125869495 微塵