今天是: 收藏本站 设为主页
网站首页 >  技术专栏  >  apache  > 

apache2防止防止DDOS攻击、恶意刷新页面

日期:2011-03-15  点击率:2367


上次网站被人恶意F5刷新,导致apache2反应缓慢。查了一些资料。发现mod_evasive可以解决。
以下是该模块的介绍
mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块。对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。如果配合iptables、硬件防火墙等防火墙设备配合使用,可能有更好的效果。
解决如下
sudo apt-get install libapache2-mod-evasive
mkdir /var/log/apache2/mod_evasive
chown www-data:www-data /var/log/apache2/mod_evasive

cd /etc/apache2/conf.d

sudo vim evasive
内容如下:

在Apache v1.x 版本中,要加入;


    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10

在Apache v2.x加入;


    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10



DOSHashTableSize 3097

DOSPageCount 2

DOSSiteCount 50

DOSPageInterval 1

DOSSiteInterval 1

DOSBlockingPeriod 10

DOSLogDir /var/log/apache2/mod_evasive

DOSEmailNotify you@example.com


重启
/etc/init.d/apache2 restart
测试
perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl


参数简单说明:
  DOSHashTableSize 3097 记录和存放黑名单的哈西表大小,如果服务器访问量很大,可以加大该值
  DOSPageCount 5 同一个页面在同一时间内可以被统一个用户访问的次数,超过该数字就会被列为攻击,同一时间的数值可以在DosPageInterval参数中设置。
  DOSSiteCount 50 同一个用户在同一个网站内可以同时打开的访问数,同一个时间的数值在DOSSiteInterval中设置。
  DOSPageInterval 2 设置DOSPageCount中时间长度标准,默认值为1。
  DOSSiteInterval 2 设置DOSSiteCount中时间长度标准。
  DOSBlockingPeriod 10 被封时间间隔秒,这中间会收到403(Forbidden) 的返回。







下一篇:Mysql中使用GRANT语句创建用户帐户   上一篇:Apache虚拟主机指南