请稍候...
  • 企业级 VPS主机
  • Windows VPS 主机
  • Unmanaged VPS 主机
  • 通配符证书,部署全网SSL证书必备神器
  • 高速稳定独立主机High quality stable server

关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明

发布时间:2011-10-20 15:11:56 来源: 亚狐科技YAHUHOST

测试表明:

当mod_evasive在正常封掉某个ip时候,apache日志仍然会有访问记录;

 

 

mod_evasive 的官方地址: http://www.zdziarski.com/ 
projects
mod_evasive

 

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/webserver/apache2/bin/apxs -i -a -c mod_evasive20.c

 

最后出现:
Libraries have been installed in:
   /usr/local/webserver/apache2//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/webserver/apache2//modules/mod_evasive20.so
[activating module `evasive20' in /usr/local/webserver/apache2//conf/httpd.conf]

 

 

查看httpd.conf
vim /usr/local/webserver/apache2/conf/httpd.conf

自动添加了
LoadModule evasive20_module   modules/mod_evasive20.so

然后我们再修改 Apache 的配置文件,配置文件名为httpd.conf;

 

 

修改httpd.conf
LoadModule rpaf_module modules/mod_rpaf-2.0.so
LoadModule evasive20_module   modules/mod_evasive20.so


....

<IfModule mod_rpaf-2.0.c>
RPAFenable On
RPAFproxy_ips 127.0.0.1 192.168.12.201 192.168.12.202 192.168.12.203
RPAFsethostname On
RPAFheader X-Forwarded-For
</IfModule>

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        10
    DOSSiteCount        100
    DOSPageInterval     2
    DOSSiteInterval     2
    DOSBlockingPeriod   360
    DOSEmailNotify ***@qq.com
    DOSLogDir "/usr/local/webserver/apache2/logs/mod_evasive"
    DOSWhiteList 192.168.12.*
</IfModule>

 

 

 

 

<IfModule mod_evasive20.c>

 DOSHashTableSize 3097
#记录和存放黑名单表大小,如果服务器访问量很大,可以加大该值.
DOSPageCount 5        
#同一个页面在同一时间内可以被同一个用户访问的次数,超过该数字就会被列为攻击,同一时间的数值可以在DosPageInterval参数中设置.

DOSSiteCount 100
#同一个用户在同一个网站内可以同时打开的访问数,同一个时间的数值在DOSSiteInterval中设置。

DOSPageInterval 2
#设置DOSPageCount中时间长度标准,默认值为1。

DOSSiteInterval 2
设置DOSSiteCount中时间长度标准,默认值为1。

DOSBlockingPeriod 3600
#被封时间间隔秒,这中间会收到 403 (Forbidden) 的返回。

DOSEmailNotify **.@qq.com

#设置受到攻击时接收攻击信息提示的邮箱地址。有IP加入黑名单后通知管理员。

DOSSystemCommand "sudo iptables -A INPUT -s %s -j DROP"

#IP加入黑名单后执行的系统命令。

 DOSLogDir "/usr/local/webserver/apache2/logs/mod_evasive"#手动创建目录mod_evasive,攻击日志存放目录,注意这个目录的权限,是运行apache程序的用户。锁定机制临时目录

#白名单   
DOSWhiteList 127.0.0.1  
DOSWhiteList 192.168.12.*

</IfModule>

 

 

 

如果您不知道把这些插入到哪,用下面的办法做也是可以的;
在/etc目录中创建一个文件,比如mod_evasive.conf;


#touch /etc/mod_evasive.conf

然后把根据自己的Apache版本来加入相应的内容;

接着我们再修改 httpd.conf ,在最后一行加入


Include /etc/mod_evasive.conf

修改完成后,我们要重启Apache服务器;
service apachectl restart

--------------------------------对mod_evasive测试验证 ;
1 防DDOS的模块做好后,我们可以要验证,可以用Apache 自带的ab工具,系统默认安装在/usr/sbin目录中;比如;


/usr/local/webserver/apache2/bin/ab -n 1000 -c 50 http://****

注:上面的例子的意思是,如果您的服务器是google的WEB服务器,我们要发送数据请求包,总共1000个,每次并发50个;

 

 

 

 

2 另外一个测试工具就是mod_evasive的解压包的目录中test.pl, 修改test.pl IP地址

 

chmod 755 test.pl
./test.pl
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden


   测试结果

这个时候,你可以到你的/usr/local/webserver/apache2/logs/mod_evasive目录下面发现有日志文件

类似文件:dos-192.168.12.201 ,192.168.12.201 表示记录了攻击的ip 

 

 

 

 

邮件内容:

To: ***@qq.com
Subject: HTTP BLACKLIST 192.168.12.202

mod_evasive HTTP Blacklisted 192.168.12.202

 

 

 

 

================为apache安装rpaf模块,该模块用于apache做后端时获取访客真实的IP

 

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz

 


为apache安装rpaf模块,该模块用于apache做后端时获取访客真实的IP.
1.使用apxs安装模块.这里要使用此前apache编译安装后的apxs

cd /tmp
tar -zxf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/local/webserver/apache2/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c


2.编辑/usr/local/apache/conf/httpd.conf,添加模块参数,查找LoadModule php5_module modules/libphp5.so,在下方添加:

LoadModule rpaf_module modules/mod_rpaf-2.0.so

 

 

<IfModule mod_rpaf-2.0.c>
RPAFenable On
RPAFproxy_ips 127.0.0.1 192.168.12.201 192.168.12.202 192.168.12.203
RPAFsethostname On
RPAFheader X-Forwarded-For
</IfModule>


此区块应该在<IfModule mod_evasive20.c>之上

上面出现的请修改为你本机所监听web服务的ip.
# 填写Nginx所在的内网IP。
多个IP用空格空开.

上一页1下一页
【责任编辑:亚狐科技 (Top) 返回页面顶端