mod_evasive 是Apache服务器的防CC攻击的一个模块,它可以检测和限制同个IP的请求次数,达到一定条件时执行命令(如使用iptables封禁IP),虽然并不能完全防御CC攻击,但在一定条件下能起到缓解Apache服务器的压力。
一、获得mod_evasive
wget http://soft.kwx.gd/module/mod_evasive_1.10.1.tar.gz
SSH执行以上命令。下载mod_evasive 1.10.1。
二、解压
tar zxvf mod_evasive_1.10.1.tar.gz #解压
cd mod_evasive #进入目录
三、安装该组件
/usr/sbin/apxs -i -a -c mod_evasive20.c
SSH执行以上命令。安装mod_evasive。
四、添加配置文件
1)新建httpd-evasive.conf
vim /etc/httpd/conf/extra/httpd-evasive.conf
SSH执行以上命令,使用vim新建httpd-evasive.conf,并填入以下内容
<IfModule mod_evasive20.c>
DOSHashTableSize 3097 #哈希表大小(无需修改)
DOSPageCount 10 #允许单IP的最大并发连接(瞬间值)
DOSSiteCount 50 #允许单台机在指定秒数内访问同一页的次数。
DOSPageInterval 1 #单页请求检测时间(默认1秒)
DOSSiteInterval 1 #全站请求检测时间(默认1秒)
DOSBlockingPeriod 3600 #黑名单封禁时间(默认3600秒)
DOSEmailNotify root #有新黑名单记录通知管理员(可修改为邮箱)
DOSSystemCommand "iptables -A INPUT -s %s -j DROP" #进黑名单执行命令
</IfModule>
如下图:
五、引用以上文件
1)编辑httpd.conf
vim /etc/httpd/conf/httpd.conf
2)在适当位置处插入以下内容
Include conf/extra/httpd-evasive.conf
如下图:
六、重启apache
service httpd restart