Apache防DDOS模块mod_evasive安装和配置方法详解

标签: apache ddos 模块 | 发表时间:2015-06-11 16:36 | 作者:zc_zhou_zhouchao
出处:http://www.iteye.com

一、mod_evasive 介绍
mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块。对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。如配合iptables、硬件防火墙等防火墙设备配合使用,可能有更好的效果。
mod_evasive 的官方地址: http://www.zdziarski.com/
二、mod_evasive 工作原理
Apache模块mod_evasive利用Hash表储存相应的HTTP请求,利用设定规则判断是否拒绝对方的请求。
三、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/
apxs -i -a -c mod_evasive20.c
#编译、安装、并加载模块
#注:apxs 用于编译模块工具;如果是用系统自带的软件包,一般位于/usr/sbin目录。如果您是自己编译安装Apache(httpd)的,你应该自己来指定路径;

 

在编译安装完成后,会自动插入一行到Apache 配置文件中,对于Apache 2.x 版本中,应该在其配置文件中有类似下面的一行;

复制代码代码如下:
LoadModule evasive20_module   lib/httpd/modules/mod_evasive20.so


四、配置mod_evasive

复制代码代码如下:

[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
#加入以下配置
<IfModule mod_evasive20.c>
    DOSHashTableSize    3097 #表大小
    DOSPageCount        2 #限制单位时间内同一IP请求同一网页次数
    DOSSiteCount        10 #限制单位时间内同一IP请求网站次数
    DOSPageInterval     1 #网页存取间隔
    DOSSiteInterval     1 #网站存取间隔
    DOSBlockingPeriod   10 #限制访问时间
    DOSEmailNotify     #疑似攻击时邮件通知
    DOSSystemCommand "su - onovps -c iptables -I INPUT -s %s --dport 80 -j DROP" 
    #疑似攻击时用防火墙限制IP访问80端口
    DOSLogDir  "/var/log/    #日志目录
    DOSWhiteList 127.0.0.1 #添加白名单
</IfModule>


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

复制代码代码如下:
[root@localhost ~]#touch /etc/mod_evasive.conf


然后把根据自己的Apache版本来加入相应的内容;
接着我们再修改 httpd.conf ,在最后一行加入

复制代码代码如下:
Include /etc/mod_evasive.conf

 

修改完成后,我们要重启Apache服务器使配置生效:

复制代码代码如下:
/etc/init.d/httpd restart


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

复制代码代码如下:
[root@localhost ~]/usr/sbin/ab -n 1000 -c 50 http://www.baidu.com:80/


注:上面的例子的意思是,如果您的服务器是百度的WEB服务器,我们要发送数据请求包,总共1000个,每次并发50个;
另外一个测试工具就是mod_evasive的解压包的目录中,有个test.pl ,你可以修改IP地址,然后用

复制代码代码如下:
[root@localhost ~]perl test.pl 
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden


是不是有效果,请根据 ab工具或 测试脚本出来的结果来查看;
注:因为我们编译mod_evasive时,用的是默认配置,所以日志被存放在/tmp目录中。如果有DDOS攻击,会在/tmp产生日志。日志的文件是以 dos-开头的;
六、配置参数详解
DOSHashTableSize 3097:定义哈希表大小。   
DOSSiteCount 50:允许客户机的最大并发连接。   
DOSPageCount 2:允许客户机访问同一页的间隔。   
DOSPageInterval 1:网页访问计数器间隔。   
DOSSiteInterval 1:全站访问计数器间隔。   
DOSSiteInterval 60:加入黑名单后拒绝访问时间。   
DOSEmailNotify [email protected]:有IP加入黑名单后通知管理员。   
DOSSystemCommand "sudo iptables -A INPUT -s %s -j DROP":IP加入黑名单后执行的系统命令。   
DOSLogDir "/tmp":锁定机制临时目录,日志目录。   
DOSWhiteList 127.0.0.1:防范白名单,不阻止白名单IP。
七、mod_evasive 的高级配置
如果想更改一些适合自己的参数,有些必要的参数,并不是通过配置文件修改就一下起作用的,我们要修改源码包中的 mod_evasive.c(Apache 1.x用之) 或 mod_evasive20.c (Apache 2.x用之);

复制代码代码如下:
#define DEFAULT_HASH_TBL_SIZE   3097ul  // Default hash table size
#define DEFAULT_PAGE_COUNT      2       // Default maximum page hit count per interval
#define DEFAULT_SITE_COUNT      50      // Default maximum site hit count per interval
#define DEFAULT_PAGE_INTERVAL   1       // Default 1 Second page interval
#define DEFAULT_SITE_INTERVAL   1       // Default 1 Second site interval
#define DEFAULT_BLOCKING_PERIOD 10      // Default for Detected IPs; blocked for 10 seconds
#define DEFAULT_LOG_DIR         "/tmp"  // Default temp directory


比如我们改改其中的数字,根据英文很容易理解。比如修改日志存放目录,就把/tmp改成别的目录。如果您不知道放在哪好,还是用默认的吧;
如果您在这里更改了参数,不要忘记修改Apache 配置文件中关于mod_evasive 的参数;
如果您想加入一些其它的参数,请查阅源码包中的README,里面有详细说明,大多来说没太大的必要……
这个文件相当重要,如果您想更改某些设置,就要修改这个文件……

 

八、总结
mod_evasive 还是有点用的,对于apache服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御 DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。如果配合iptables、硬件防火墙等防火墙设备配合使用,可能有更好的效果。安装也不费力气。如果你需要的时候,会想到这个模块的。



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [apache ddos 模块] 推荐:

Apache防DDOS模块mod_evasive安装和配置方法详解

- - 互联网 - ITeye博客
一、mod_evasive 介绍. mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块. 对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块. 虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力. 如配合iptables、硬件防火墙等防火墙设备配合使用,可能有更好的效果.

Google 发布Apache自动优化模块

- 火锅土豆 - Solidot
mod_pagespeed 下载 ,详细介绍".

Python 防止 ddos 攻击

- way - python.cn(jobs, news)
这个周末叫一个烦啊,网站突然打不开了,赶紧的远程连上去看看是啥问题 结果悲剧了,ssh连不上去,总是超时 第一反应就是被ddos了. 联系机房结果说流量占满了,更悲剧的是这个机房竟然没有硬件防火墙,没有办法只能跑去机房看看找下IP了. 结果一查不得了啊,满屏的连接,唯有先断网查查几个访问比较多的IP.

DDOS攻击解决过程

- - 龙浩的blog
网站受到DDOS的攻击,Inbound最高请求58.85Mb/sec. 尽管一开始解决问题的思路是错误的,但是在这个过程中,我们思考问题的思路对团队的成长有所帮助,我们知道什么方法无法解决问题.      1:nginx端屏蔽访问. 修改nginx配置文件,添加如下记录. 问题:发现请求堵塞在haproxy上面去了.

DDoS deflate - Linux下防御/减轻DDOS攻击

- - CSDN博客系统运维推荐文章
互联网如同现实社会一样充满钩心斗角,网站被DDOS也成为站长最头疼的事. 在没有硬防的情况下,寻找软件代替是最直接的方法,比如用iptables,但是iptables不能在自动屏蔽,只能手动屏蔽. 今天要说的就是一款能够自动屏蔽DDOS攻击者IP的软件: DDoS deflate. DDoS deflate是一款免费的用来防御和减轻DDoS攻击的脚本.

博客服务器遭到DDOS攻击

- 太平犬 - 月光博客
  由于早先我在微博上发布了一些对黑客这个群体的负面看法,今天起博客服务器就遭到黑客DDOS攻击,导致全日服务器都访问故障.   DDOS攻击(分布式拒绝服务攻击)是一种常见的网络攻击,一般都出于商业目的,而这次居然对一个IT科技博客DDOS攻击比较少见. 除此之外,我的很多个人信箱、微博也遭到攻击,手机收到了大量恶意电话和短信的骚扰,拨号号码随机显示.

深入浅出DDoS攻击防御

- - 技术改变世界 创新驱动中国 - 《程序员》官网
DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是目前最强大、最难防御的攻击之一. 按照发起的方式,DDoS可以简单分为三类. 第一类以力取胜,海量数据包从互联网的各个角落蜂拥而来,堵塞IDC入口,让各种强大的硬件防御系统、快速高效的应急流程无用武之地.

浅谈Ddos攻击攻击与防御

- - 80sec
三 常见ddos攻击及防御. 在前几天,我们运营的某网站遭受了一次ddos攻击,我们的网站是一个公益性质的网站,为各个厂商和白帽子之间搭建一个平台以传递安全问题等信息,我们并不清楚因为什么原因会遭遇这种无耻的攻击. 因为我们本身并不从事这种类型的攻击,这种攻击技术一般也是比较粗糙的,所以讨论得比较少,但是既然发生了这样的攻击我们觉得分享攻击发生后我们在这个过程中学到得东西,以及针对这种攻击我们的想法才能让这次攻击产生真正的价值,而并不是这样的攻击仅仅浪费大家的时间而已.

网站遭遇DDOS简易处理

- - CSDN博客推荐文章
我们看到有大量的链接存在着,并且都是ESTABLISHED状态. for i in `netstat -an | grep -i ‘:80 ‘|grep ‘EST’ | awk ‘{print $5}’ | cut -d : -f 1 | sort | uniq -c | awk ‘{if($1 > 50) {print $2}}’` do.

防范 DDoS 攻击的 15 个方法

- - 外刊IT评论
为了对抗 DDoS(分布式拒绝服务)攻击,你需要对攻击时发生了什么有一个清楚的理解. 简单来讲,DDoS 攻击可以通过利用服务器上的漏洞,或者消耗服务器上的资源(例如 内存、硬盘等等)来达到目的. DDoS 攻击主要要两大类: 带宽耗尽攻击和资源耗尽攻击. 为了有效遏制这两种类型的攻击,你可以按照下面列出的步骤来做:1.