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

2019-01-17 04:01:36王冬梅
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