apache 安装mod_evasive

http://blog.sina.com.cn/s/blog_6b61ec070101a2ha.html

http://www.carvejade.net/?post=53

 

http://my.oschina.net/zhaocx/blog/10947

mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块。对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。

mod_evasive下载地址: http://www.zdziarski.com/blog/?page_id=442

mod_evasive功能:

限制同一个IP在一定秒数内请求一个页面;

限制同一个IP在一秒内只可发出X个请求;

设定被禁止的IP时间段内不能访问。

mod_evasive的安装方法:

1. 备份旧的httpd.conf 。

2. 到http://www.zdziarski.com/blog/?page_id=442下载mod_evasive 。

3. 解压编译:mod_evasive 。

tar zxvf mod_evasive_1.10.1.tar.gz

cd mod_evasive/
/usr/local/apache2/bin/apxs –c –i -a mod_evasive20.c

 

安装好:mod_evasive 后,修改httpd.conf内容

<IfModule mod_evasive20.c>

    DOSHashTableSize    3097

    DOSPageCount        3

    DOSSiteCount        50

    DOSPageInterval     2

    DOSSiteInterval     1

    DOSBlockingPeriod   10

</IfModule>

 

DOSHashTableSize : 这个是占用内存大小,如果服务器比较繁忙,这个数值要设定大一点。

DOSPageCount : 同一个IP 在一个时间段内可以打开的页面次数,超过会被禁止。

DOSSiteCount : 同一个IP在一个网站内可以占用多少个Object,超过会被禁止。

DOSPageInterval — DOSPageCount 的时间段设定。

DOSSiteInterval — DOSSiteCount 的时间设定,以秒为单位。

DOSBlockingPeriod — 当发现怀疑是攻击时,使用者收到403Forbidden,这个是设定封锁时间,以秒为单位。

 

5. 最后重启apache即可。

 

http://www.centos.bz/2011/10/apache-defence-ddos-modules-mod_evasive/

 

博客不时的有人拿来做压力测试,于是准备配置iptables限制每个IP的并发数。但配置iptables才发现,由于Linux内核版本比较低,iptables不支持connlimit模块,于是想到把conlimit模块编译到内核中,无奈openvzvps不支持编译内核。所以使用了Apache的防DDOS模块mod_evasive,具体安装配置如下:
一、下载模块

  1. wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
  2. tar xzvf mod_evasive_1.10.1.tar.gz
  3. cd mod_evasive

二、安装模块
1、对于Apache 1.x 请用下面的编译方法;

  1. /usr/local/apache/bin/apxs -iac mod_evasive.c

2、对于Apache 2.x 可以用下面的办法;

  1. /usr/local/apache/bin/apxs -i -a -c mod_evasive20.c

三、配置模块
在配置文件httpd.conf加入如下代码:
在Apache v1.x 版本中,要加入;

  1. <IfModule mod_evasive.c>
  2.     DOSHashTableSize    3097
  3.     DOSPageCount        2
  4.     DOSSiteCount        50
  5.     DOSPageInterval     1
  6.     DOSSiteInterval     1
  7.     DOSBlockingPeriod   10
  8. </IfModule>

在Apache v2.x加入;

  1. <IfModule mod_evasive20.c>
  2.     DOSHashTableSize    3097
  3.     DOSPageCount        2
  4.     DOSSiteCount        50
  5.     DOSPageInterval     1
  6.     DOSSiteInterval     1
  7.     DOSBlockingPeriod   10
  8. </IfModule>

之后重启httpd。
相关参数说明:
DOSHashTableSize 3097:定义哈希表大小。
DOSPageCount 2:允许客户机访问同一页的间隔。
DOSSiteCount 50:允许客户机的最大并发连接。
DOSPageInterval 1:网页访问计数器间隔。
DOSSiteInterval 1:全站访问计数器间隔。
DOSBlockingPeriod 10:加入黑名单后拒绝访问时间。
四、对mod_evasive测试验证
可以使用apache的ab工具,也可以使用evasive解压目录中的test.pl脚本测试。
ab工具:ab -n 1000 -c 50 http://www.centos.bz/
perl: perl test.pl
需要了解更多关于evasive模块的使用可以查看解压目录中的README文件。

 

 

 

posted @ 2013-05-28 17:05  陳聽溪  阅读(1269)  评论(0)    收藏  举报