From : http://www.onecho.com/2009-06-05/488.html
昨天我们的一台服务器apache出现了问题,页面无法访问,过段时间要重启apache才能访问页面。查看了系统日志,没有发现被攻击的迹象,然后查看 了所有网站的日志,发现一个论坛的LOG 显示了大量了mp3下载,而且是同一IP不断刷新,我想这就是我们Apache当机的原因,随后关闭了此网站,apache 再也没有出现问题,所以问题应该就在这。
下面就是如何解决这个问题了。因为这个论坛是提供音乐在线收听的,里面有大量的mp3文件,也就避免不了大量的下载链接,而我们之前也没有做任何限制(因 为这不是下载站,而且没有经验)。为此,我上网找了些资料,发现了两个很好的apache模块: mod_bw 和 mod_limitipconn ;分别是限速和限制IP连接数的模块。
安装mod_bw 和 mod_limitipconn 都非常简单。
1、下载:
wget http://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gz
wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz
2.安装
#tar -zxvf mod_limitipconn-0.22.tar.gz
#cd mod_limitipconn-0.22
#vi Makefile
修改:apxs = “/usr/local/apache2/bin/apxs” # 这里是自己apache的apxs路径,加载模块
或者
#/usr/local/apache2/bin/apxs -i -c -a mod_limitipconn.c 来加载模块
#make
#make install
#tar -xvf mod_bw-0.7.tgz
#cd mod_bw
#/usr/local/apache2/bin/apxs -i -c -a /home/kenami/mod_bw/mod_bw.c
下面用vi打开apache 的配置文件 httpd.conf
发现了以下两行:
LoadModule limitipconn_module modules/mod_limitipconn.so
LoadModule bw_module modules/mod_bw.so
说明这两个模块安装成功
以下在httpd.conf 配置这两个模块,我的配置如下:
<IfModule mod_limitipconn.c>
<Location /home/bo@znche.com/attachments/month _*> #需要控制的路径
MaxConnPerIP 3 #限制的线程数
NoIPLimit index.htm #对此文件不做限制
</Location>
</IfModule>
在论坛的虚拟主机配置文件下面加上:
BandwidthModule On
ForceBandWidthModule On
Bandwidth all 10000 #限速10K
MinBandwidth all -1
测试了一下,一切正常,下载mp3的速度限制在10K一下,这样就再也不用担心大量的下载链接导致apache当机的问题了,当然以上方法不能阻止攻击。
原创文章如转载,请注明:转载自等待喝彩 [ http://www.onecho.com ]
本文链接地址:http://www.onecho.com/2009-06-05/488.html