当前位置: 首页 > 工具软件 > mod_evasive > 使用案例 >

Apache如何防止DDOS攻击—mod_evasive模块的配置

唐默
2023-12-01

目前的网络攻击多种多样,什么CC,DDOS,碎片,死亡ping等等,但是最头疼的就是DDOS了。大多数网站都是使用使用Apache的httpd服务作为服务端的,可以在apache中加载mod_evasive模块来防止DDOS攻击。本文将介绍如何在apche中配置mod_evasive模块。

1.mod_evasive 介绍

mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块。对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御 DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。如配合iptables、硬件防火墙等防火墙设备配合使用,可能有 更好的效果。
mod_evasive 的官方地址: http://www.zdziarski.com

2、源码安装mod_evasive

[root@Centos6 ~] # wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
[root@Centos6 ~] # tar xzvf mod_evasive_1.10.1.tar.gz
[root@Centos6 ~] # cd mod_evasive
[root@Centos6 ~] # /usr/local/apache/bin/apxs -i -a -c mod_evasive20.c

3、修改httpd.conf,关于mod_evasive的相关参数

  1. <IfModule mod_evasive20.c>   
  2.  DOSHashTableSize 3097  
  3.  DOSPageCount 5  
  4.  DOSSiteCount 100  
  5.  DOSPageInterval 2  
  6.  DOSSiteInterval 2  
  7.  DOSBlockingPeriod 3600  
  8.  DOSEmailNotify lampbo@qq.com   
  9.  DOSLogDir "/var/log/mod_evasive"  
  10. </IfModule>  

参数说明:

  1. <IfModule mod_evasive20.c>   
  2. DOSHashTableSize 3097   
  3. #记录和存放黑名单表大小,如果服务器访问量很大,可以加大该值.   
  4. DOSPageCount 5           
  5. #同一个页面在同一时间内可以被同一个用户访问的次数,超过该数字就会被列为攻击,同一时间的数值可以在DosPageInterval参数中设置.   
  6.   
  7. DOSSiteCount 100   
  8. #同一个用户在同一个网站内可以同时打开的访问数,同一个时间的数值在DOSSiteInterval中设置。   
  9.   
  10. DOSPageInterval 2   
  11. #设置DOSPageCount中时间长度标准,默认值为1。   
  12.   
  13. DOSSiteInterval 2   
  14. #设置DOSSiteCount中时间长度标准,默认值为1。   
  15.   
  16. DOSBlockingPeriod 3600   
  17. #被封时间间隔秒,这中间会收到 403 (Forbidden) 的返回。   
  18.   
  19. DOSEmailNotify  lampbo@qq.com   
  20. #设置受到攻击时接收攻击信息提示的邮箱地址。   
  21.   
  22. DOSLogDir "/var/log/mod_evasive"  
  23. #攻击日志存放目录,注意这个目录的权限,是运行apache程序的用户。   
  24.   
  25. </IfModule>  

4、测试

在mod_evasive_1.10.1.tar.gz解压目录下面有个测试脚本,是用perl写的,如果可以看下一下结果,就表示该模块安装成功。

[root@Centos6 ~] # 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

这个时候,可以到你的/var/log/mod_evasive目录下面发现有一个日志文件,同时你的邮箱也会收到该报警信息。

  1. 相关参数   
  2. DOSHashTableSize 3097 #定义哈希表大小。     
  3. DOSSiteCount 50  #允许客户机的最大并发连接。     
  4. DOSPageCount 2 #允许客户机访问同一页的间隔。     
  5. DOSPageInterval 1 #网页访问计数器间隔。     
  6. DOSSiteInterval 1 #全站访问计数器间隔。     
  7. DOSSiteInterval 60 #加入黑名单后拒绝访问时间。     
  8. DOSEmailNotify xxxx@gmail.com #有IP加入黑名单后通知管理员。     
  9. DOSSystemCommand "sudo iptables -A INPUT -s %s -j DROP" #IP加入黑名单后执行的系统命令。     
  10. DOSLogDir "/tmp" #锁定机制临时目录。     
  11. DOSWhiteList 127.0.0.1  #防范白名单,不阻止白名单IP。  
 类似资料: