当前位置:首页 > 信息技术 > 操作系统 > Linux > Ubuntu > Ubuntu Apache DDos防范模块 mod_evasive

Ubuntu Apache DDos防范模块 mod_evasive

网站被人恶意F5刷新,导致apache2反应缓慢甚至假死。通过查阅资料发现apache的mod_evasive可以良好解决这中DDos或者类似DDos的问题。
测试环境: Ubuntu 12.04.1 LTS, Ubuntu 12.10

以下是该模块的介绍
mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块。对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。如果配合iptables、硬件防火墙等防火墙设备配合使用,可能有更好的效果。其原理大致如下:
有新访问到达时:

  • 查看黑名单中是否有该客户IP。
  • 将IP和请求URL一起HASH;查找HASH表看过去1秒是否连续请求同一页。
  • 将IP和请求URL一起HASH;查找HASH表看过去1秒是否请求超过50个连接。

满足任意一条就返回403并阻止该IP一定时间,该时间由DOSSiteInterval决定。

解决步骤如下:
1、安装mod_evasive

sudo apt-get install libapache2-mod-evasive

2、配置mod_evasive

sudo vi /etc/apache/conf.d/mod_evasive

内容以下:

<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSSiteCount 50
DOSPageCount 2
DOSPageInterval 1
DOSSiteInterval 1
DOSSiteInterval 60

DOSEmailNotify xxxx@yrz,name
# DOSSystemCommand "sudo iptables -A INPUT -s %s -j DROP"
DOSLogDir "/var/log/apache2/mod_evasive"

# 白名单
DOSWhiteList 127.0.0.1
DOSWhiteList 127.0.0.*
</IfModule>

参数详解:

DOSHashTableSize 3097:定义哈希表大小。
DOSSiteCount 50:允许客户机的最大并发连接。
DOSPageCount 2:允许客户机访问同一页的间隔。
DOSPageInterval 1:网页访问计数器间隔。
DOSSiteInterval 1:全站访问计数器间隔。
DOSSiteInterval 60:加入黑名单后拒绝访问时间。
DOSEmailNotify xxxx@yrz,name:有IP加入黑名单后通知管理员。
DOSSystemCommand "sudo iptables -A INPUT -s %s -j DROP":IP加入黑名单后执行的系统命令。
DOSLogDir "/var/log/apache2/mod_evasive":锁定机制临时目录。
 DOSWhiteList 127.0.0.1:防范白名单,不阻止白名单IP。

3、测试

perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl

4、额外讲解IPTABLES
iptables 是与 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

更多关于IPTABLES的资料请访问:http://baike.baidu.com/view/504557.htm

 

Ubuntu Apache DDos防范模块 mod_evasive:等您坐沙发呢!

发表评论

表情
还能输入210个字