mod_limitipconn.c是一个非官方的apache模块,可以用来作为WEB文件的下载限制,使用ExtendedStatus On形式,工作在应用层。当同一个IP的连接到达限制时,apache对get请求发送:
HTTP/1.1 503 Service Temporarily Unavailable
从而使用户不能下载,但并不能阻止这种攻击,仍旧允许连接的。
不过这个模块在防止多线程下载方面,还是很有用处的。
下面分享下此模块的安装与配置过程,希望对大家有所帮助。
一,安装(动态模块方式)
安装,假设apache安装在/usr/local/apache目录。
下载:
# tar xzf mod_limitipconn-0.04.tar.gz
# cd mod_limitipconn-0.04
# vi Makefile
把第一行的:
APXS = apxs
修改为:
APXS = /usr/local/apache/bin/apxs
然后:
# make install
修改apache配置文件:
# vi /usr/local/apache/conf/httpd.conf
ExtendedStatus On ###make install时这句前面的#没有去掉,一定要去掉
###make install已经加了下面两句,确认存在即可
LoadModule limitipconn_module libexec/mod_limitipconn.so
AddModule mod_limitipconn.c
###针对web目录下的文件下载限制
<IfModule mod_limitipconn.c>;
<Location />;
MaxConnPerIP 3 ###限制web根目录同一个IP只能同时开3进程下载
# 还有其它选项,如:
# NoIPLimit image/*
# OnlyIPLimit audio/mpeg video
# 可以设置多个Location
</Location>;
</IfModule>;
完成以上的配置修改后,重启apache,用多线程的下载工具下载时,大于3个线程,多出来的下载链接将得到如下信息:
HTTP/1.1 503 Service Temporarily Unavailable
或根据User_Agent判断,把已知的多线程工具都给deny 掉,参考配置如下:
.....
BrowserMatch "NetAnt" badguy
BrowserMatch "GetRight" badguy
BrowserMatch "JetCar" badguy
BrowserMatch "Mass Downloader" badguy
BrowserMatch "ReGet" badguy
BrowserMatch "DLExpert" badguy
BrowserMatch "FlashGet" badguy
BrowserMatch "Offline Explorer" badguy
BrowserMatch "Teleport" badguy
...........
<Directory /xxx/xxx/xxx>;
order deny,allow
deny from env=badguy
allow from all
</Directory>;
注意:httpd中要有 mod_setenvif模块才可以。
本文出处参考:http://www.jbxue.com/article/10636.html