DirectAdmin添加mod_evasive模块优化Apache性能

DirectAdmin是一款国外主机常用的商业主机管理面板,默认采用Apache引擎,简单易用,功能全面,我们还可以通过添加一些模块来优化它的性能。上个月赵容分享了添加Mod_cache模块(前情回顾),今天我们来看看另一个模块:mod_evasive

mod_evasive是apache防DDoS攻击的模块,当有新访问到达时:查看黑名单中是否有该客户IP,将IP和请求URL一起HASH;查找HASH表看过去1秒是否连续请求同一页,将IP和请求URL一起HASH;查找HASH表看过去1秒是否请求超过XX个连接;满足任意一条就返回403并阻止该IP一定时间,该时间由DOSSiteInterval决定。下面,我们一起来看看如何安装和配置mod_evasive。

********☆☆☆安装☆☆☆********

以root账户SSH登陆服务器,依次运行下列指令。

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                      #进入目录

/usr/sbin/apxs -i -a -c mod_evasive20.c         #安装(注意,这里我们的DA面板Apache版本为2.*)

OK了,做完以上,mod_evasive就已经正确安装了。

********☆☆☆配置☆☆☆********

这时候,mod_evasive模块已正确安装,并自动加入到httpd.conf,我们可以检查该文件/etc/httpd/conf/httpd.conf,看到下面这行:

LoadModule evasive20_module   /usr/lib/httpd/modules/mod_evasive20.so

接下来,我们配置mod_evasive。

编辑httpd-evasive.conf文件,并加入规则。SSH运行:

vim /etc/httpd/conf/extra/httpd-evasive.conf

加入以下内容:

<IfModule mod_evasive20.c>
DOSHashTableSize 3097   #定义哈希表大小。
DOSSiteCount 50    #允许客户机的最大并发连接。
DOSPageCount 2    #允许客户机访问同一页的间隔。
DOSPageInterval 1    #网页访问计数器间隔。
DOSSiteInterval 1    #全站访问计数器间隔。
DOSBlockingPeriod  3600    #加入黑名单后拒绝访问时间。
DOSEmailNotify     #有IP加入黑名单后通知管理员。
DOSSystemCommand “sudo iptables -A INPUT -s %s -j DROP”    #IP加入黑名单后执行的系统命令。
DOSLogDir “/tmp”    #锁定机制临时目录。
DOSWhiteList 127.0.0.1    #防范白名单,不阻止白名单IP。
</IfModule>

然后,保存规则,退出。

最后,重启httpd。

service httpd restart      #或者/etc/init.d/httpd restart

现在,我们的Apache已经加入了mod_evasive模块了。

mod_evasive压缩包内有个测试脚本test.pl,你可以修改后自行测试是否有效。

perl test.pl       #测试

以上参数仅供参考,mod_evasive模块还有一些高级的功能,期待大家来讨论,本文以DirectAdmin面板为例,其他的环境如果以Apache引擎,同样也可以安装该模块。


【AD】美国洛杉矶CN2 VPS/香港CN2 VPS/日本CN2 VPS推荐,延迟低、稳定性高、免费备份_搬瓦工vps

【AD】RackNerd 推出的 KVM VPS 特价优惠,在纽约、西雅图、圣何塞和阿什本每年仅需 12.88 美元!