您的位置:首页 > 运维架构 > Apache

老平台apache2.x添加流量控制和安全模块

2013-01-11 16:03 232 查看
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 image/* #对图片文件不限制

</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 cecnck@gmail.com

# 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 cecnck@gmail.com 设置受到攻击时接收攻击信息提示的邮箱地址。

#  DOSSystemCommand “su – someuser -c ‘/sbin/… %s …’” 受到攻击时Apache运行用户执行的系统命令

DOSLogDir “/var/log/mod_dosevasive” 攻击日志存放目录,BSD上默认是 /tmp

重新加载apache配置文件:

#/opt/apache/bin/apachectl -k graceful
本文出自 “Larry学习之路” 博客,请务必保留此出处http://5iqiong.blog.51cto.com/2999926/1114743
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: