小知识:Apache防DDOS模块mod_evasive安装和配置方法详解

一、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

#加入以下配置

    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 xxxx@gmail.com:有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、硬件防火墙等防火墙设备配合使用,可能有更好的效果。安装也不费力气。如果你需要的时候,会想到这个模块的。

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Apache加速模块mod_pagespeed安装使用详细介绍

2023-3-18 10:18:05

建站知识

小知识:apache下ab.exe使用介绍

2023-3-18 10:32:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索