您好!欢迎光临赵容部落O(∩_∩)O~
时间:2012年6月22日 栏目:VPS教程 作者:赵 容 点击: 12,411 次
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引擎,同样也可以安装该模块。
声明: 博客仅为分享信息绝非推荐,网站不参与交易绝非中介,内容均仅代表个人观点绝非权威,读者请自行考虑后入手并自担风险!一分钱一分货仍是恒久不变之真理,未成年读者(包括生理和心理)请在监护人陪同下访问本站!本文由( 赵 容 )原创编译,转载请保留链接: DirectAdmin添加mod_evasive模块优化Apache性能码字不易,谢绝复制粘贴! 关于使用: 本站主要分享服务器及VPS信息,不提供任何产品销售及代购,所有访客朋友请在国家法律法规许可范围内购买和使用产品,QQ群讨论:683851361. 关于安全: 任何IDC都有倒闭和跑路的可能,主机线路更不可控,月付和备份是您的最佳选择,请保持良好的、有规则的备份习惯.
安装好了,打开网站出现 404 文件不存在。环境是nginx+apache,apache测试也不行。
2013-06-17 14:54apache测试可以,nginx+apache不行。
2013-06-17 15:47mod_evasive本身就是apache的模块,不是nginx的。
2013-06-17 15:47这个我确实在文章说也说的有了。
好吧,谢谢。
2013-06-17 16:06你怎么不用ONE的vps了,换到万网了
嗯,嘿嘿,国内比国外更快嘛
2013-06-17 16:08DOSHashTableSize 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。
按照这个默认参数 可以吗?貌似请求速度稍快 就被灭了IP.
2013-02-08 10:26这些参数只是案例,具体的要根据你的实际情况调整的哦。、。、。
2013-02-08 10:55按博主说的装好了 期待效果 非常感谢!
2013-01-22 22:40。。。郁闷啊。这是啥问题啊
2012-07-09 01:32停止 httpd: [失败]
启动 httpd:httpd: Syntax error on line 132 of /etc/httpd/conf/httpd.conf: Syntax error on line 15 of /etc/httpd/conf/extra/httpd-includes.conf: without matching section
同样的,两个文件出错代码条数也明显的告诉你了……
2012-07-09 06:36vim /etc/httpd/conf/extra/httpd-evasive.conf提示找不到文件…… 😕
2012-07-06 09:24如果没有,说明你没有装好,如果安装好了,这个文件是绝对会有的。
2012-07-06 09:25DOSEmailNotify (xx@xx.xx) #有IP加入黑名单后通知管理员。
2012-06-23 16:37DOSSiteInterval 1 #全站访问计数器间隔。
DOSSiteInterval(DOSBlockingPeriod?) 60 #加入黑名单后拒绝访问时间。
貌似
2012-06-23 16:35gracefully restaring httpd
2012-11-03 11:53warning :DoumentRoot【/home/admin/96xie.org】does not exist
httpd: apr_sockaddr_info_get() failed for es-005
httpd:could not reliably determine theserver’s fully qualified domain name,using 127.0.0.1 for serverName
[]