发布于 2016-02-02 02:14:12 | 264 次阅读 | 评论: 0 | 来源: 网友投递
Apache Web服务器
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件。
一、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
[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>
[root@localhost ~]#touch /etc/mod_evasive.conf
Include /etc/mod_evasive.conf
修改完成后,我们要重启Apache服务器使配置生效:
/etc/init.d/httpd restart
[root@localhost ~]/usr/sbin/ab -n 1000 -c 50 http://www.baidu.com:80/
[root@localhost ~]perl test.pl
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
#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
八、总结
mod_evasive 还是有点用的,对于apache服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御 DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。如果配合iptables、硬件防火墙等防火墙设备配合使用,可能有更好的效果。安装也不费力气。如果你需要的时候,会想到这个模块的。