老平臺apache2.x添加流量控制和安全模塊

mod_cband           管理apache的帶寬和流量
mod_limitipconn     控制下載速度
mod_bw           控制apache併發連接數
mod_evasive        防ddos模塊

首先查看已經加載的模塊
/opt/apache/bin/apachectl  -l
Compiled in modules:
  core.c
  mod_authn_file.c
  mod_authn_default.c
  mod_authz_host.c
  mod_authz_groupfile.c
  mod_authz_user.c
  mod_authz_default.c
  mod_auth_basic.c
  mod_cache.c
  mod_disk_cache.c
  mod_mem_cache.c
  mod_log_config.c
  mod_env.c
  mod_expires.c
  mod_version.c
  http_core.c
  mod_mime.c
  mod_status.c
  mod_autoindex.c
  mod_asis.c
  mod_cgi.c

  .................
 
1、mod_cband
下載地址:
http://sourceforge.net/projects/cband/files/mod-cband/
http://nchc.dl.sourceforge.net/project/cband/mod-cband/mod-cband-0.9.6.1/mod-cband-0.9.6.1.tgz
#cd mod-cband-0.9.6.1
#./configure  --with-apxs=/opt/apache/bin/apxs
#make
#make install
查看apache主配置已經加入mod_cband.so
#grep cband /opt/apache/conf/httpd.conf
LoadModule cband_module       modules/mod_cband.so
#chown apache.apache  /opt/apache/modules/mod_cband.so
#ls -ld /opt/apache/modules/mod_cband.so
-rwxr-xr-x 1 apache apache 190265 Jan 11 09:32 /opt/apache/modules/mod_cband.so

虛擬主機加入如下2行:
CBandSpeed 2048 300 100
CBandRemoteSpeed 40kb/s 15 5

CBandSpeed限定總的最大鏈接速度爲2048kb,最多併發處理300個請求和100個鏈接
CBandRemoteSpeed限定一個用戶最多能有40kb的鏈接速度,最多併發15個請求和5個鏈接
重新加載apache主配置文件:
#/opt/apache/bin/apachectl  -k graceful

2、mod_limitipconn
下載地址:
http://dominia.org/djao/limit/
http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2
#tar jxvf mod_limitipconn-0.24.tar.bz2
#cd mod_limitipconn-0.24
#/opt/apache/bin/apxs -c -i -a mod_limitipconn.c
查看apache配置已經加入mod_limitipconn.so
#grep limitipconn /opt/apache/conf/httpd.conf
LoadModule limitipconn_module modules/mod_limitipconn.so
#chown apache.apache  /opt/apache/modules/mod_limitipconn.so

主配置添加ExtendedStatus On
虛擬主機添加如下:
<IfModule mod_limitipconn.c>
    <Location />
        MaxConnPerIP 5 #限制的線程數
        NoIPLimit index.htm #對此文件不做限制
        NoIPLimit p_w_picpath/* #對圖片文件不限制
    </Location>
    <Location /media>
        MaxConnPerIP 2 #對於audio音頻文件每IP最多保持2個連接
        OnlyIPLimit audio/mpeg video
    </Location>
</IfModule>
重新加載apache配置文件:
#/opt/apache/bin/apachectl  -k graceful

參考文檔:
http://blog.sina.com.cn/s/blog_4fc2b1b80100m8us.html
http://zhumeng8337797.blog.163.com/blog/static/100768914201135115238429/

3、mod_bw
下載地址:
http://ivn.cl/2010/01/06/downloads-for-bandwidth-mod/
http://legacy.ivn.cl/files/source/mod_bw-0.92.tgz
安裝mod_bw
#mkdir mod_bw-0.92
#tar zxvf mod_bw-0.92.tgz  -C mod_bw-0.92
#cd  mod_bw-0.92
#/opt/apache/bin/apxs -c -i -a mod_bw.c
查看apache主配置已經加入mod_bw.so
#grep mod_bw /opt/apache/conf/httpd.conf
LoadModule bw_module          modules/mod_bw.so
#chown apache.apache  /opt/apache/modules/mod_bw.so

#/opt/apache/bin/apxs -c -i -a mod_bw.c
虛擬主機加入如下幾行:
BandWidthModule On     #預設是關閉,開啓後會處理每個請求
ForceBandWidthModule On #這個沒加上之前試了幾次發現不起作用 
MaxConnection 10.100.10.0/24 20 #針對這個網段可以有20個線程 
MaxConnection all 50  #限制每個IP最大線程
Bandwidth all 102400 #所有的連接限速100K/s 
MinBandwidth all -1  #不限制最小速度
LargeFileLimit * 10240 200000 #文件大於10M的,下載速度控制在300K/s
LargeFileLimit .avi 1 30000  #avi文件控制在30K/s
LargeFileLimit .mpg 1 30000   #mpg文件控制在30K/s
重新加載apache配置文件:
#/opt/apache/bin/apachectl  -k graceful

參考文檔:
http://blog.sina.com.cn/s/blog_4fc2b1b80100m8us.html
http://zhumeng8337797.blog.163.com/blog/static/100768914201135115238429/

4、mod_evasive
下載地址:
http://fossies.org/unix/www/apache_httpd_modules/mod_evasive_1.10.1.tar.gz
http://fossies.org/unix/www/apache_httpd_modules/
#tar -zxvf mod_evasive_1.10.1.tar.gz
#cd mod_evasive
#/opt/apache/bin/apxs -i -a -c mod_evasive20.c

#grep evasive /opt/apache/conf/httpd.conf
LoadModule evasive20_module   modules/mod_evasive20.so
#chown apache.apache  /opt/apache/modules/mod_evasive20.so

apache虛擬主機加入:
<IfModule mod_evasive20.c>
DOSHashTableSize    3097
DOSPageCount        3
DOSSiteCount        50
DOSPageInterval     2
DOSSiteInterval     2
DOSBlockingPeriod   10
DOSEmailNotify  [email protected]
#    DOSSystemCommand    “su – someuser -c ‘/sbin/… %s …’”
DOSLogDir       “/var/log/mod_evasive”
</IfModule>
附:參數說明:
DOSHashTableSize 3097 記錄和存放黑名單的哈西表大小,如果服務器訪問量很大,可以加大該值
DOSPageCount 3 同一個頁面在同一時間內可以被同一個用戶訪問的次數,超過該數字就會被列爲***,同一時間的數值可以在DosPageInterval參數中設置。
DOSSiteCount 50 同一個用戶在同一個網站內可以同時打開的訪問數,同一個時間的數值在DOSSiteInterval中設置。
DOSPageInterval 2 設置DOSPageCount中時間長度標準,默認值爲1。
DOSSiteInterval 2 設置DOSSiteCount中時間長度標準。
DOSBlockingPeriod 10 被封時間間隔秒,這中間會收到 403 (Forbidden) 的返回。
其他可選參數:
DOSEmailNotify [email protected] 設置受到***時接收***信息提示的郵箱地址。
#  DOSSystemCommand “su – someuser -c ‘/sbin/… %s …’” 受到***時Apache運行用戶執行的系統命令
DOSLogDir “/var/log/mod_dosevasive” ***日誌存放目錄,BSD上默認是 /tmp
重新加載apache配置文件:
#/opt/apache/bin/apachectl  -k graceful

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章