DirectAdmin添加mod_evasive模块优化Apache性能

时间:12-06-22 栏目:VPS教程 作者:赵 容 评论:15 点击: 9,964 次

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引擎,同样也可以安装该模块。

香港/美国/国内高速VPS

声明: 博客仅为分享信息绝非推荐,网站不参与交易绝非中介,内容均仅代表个人观点绝非权威,读者请自行考虑后入手并自担风险!一分钱一分货仍是恒久不变之真理,未成年读者(包括生理和心理)请在监护人陪同下访问本站!本文由( 赵 容 )原创编译,转载请保留链接: DirectAdmin添加mod_evasive模块优化Apache性能鄙视无耻复制行为!
关于隐私: 赵容非全职打理博客,所有评论不保证审核时间进度,我有义务保证您的个人信息不经由赵容部落透露给任何第三方,随意或虚假邮箱评论会自动进入垃圾箱无法展示和给您回应.
关于安全: 任何IDC都有倒闭和跑路的可能,出口线路更不可控,月付和备份是您的最佳选择,请保持良好的、有规则的备份习惯.

DirectAdmin添加mod_evasive模块优化Apache性能:目前有15 条留言

  1. 7楼
    风筝:

    安装好了,打开网站出现 404 文件不存在。环境是nginx+apache,apache测试也不行。

    2013-06-17 14:54 [回复]
    • 风筝:

      apache测试可以,nginx+apache不行。

      2013-06-17 15:47 [回复]
      • 赵 容:

        mod_evasive本身就是apache的模块,不是nginx的。
        这个我确实在文章说也说的有了。

        2013-06-17 15:47 [回复]
        • 风筝:

          好吧,谢谢。
          你怎么不用ONE的vps了,换到万网了

          2013-06-17 16:06 [回复]
          • 赵 容:

            嗯,嘿嘿,国内比国外更快嘛

            2013-06-17 16:08 [回复]
  2. 6楼
    mano:

    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。

    按照这个默认参数 可以吗?貌似请求速度稍快 就被灭了IP.

    2013-02-08 10:26 [回复]
    • 赵 容:

      这些参数只是案例,具体的要根据你的实际情况调整的哦。、。、。

      2013-02-08 10:55 [回复]
  3. 5楼
    xing:

    按博主说的装好了 期待效果 非常感谢!

    2013-01-22 22:40 [回复]
  4. 4楼
    Yusky:

    。。。郁闷啊。这是啥问题啊
    停止 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 01:32 [回复]
    • 赵 容:

      同样的,两个文件出错代码条数也明显的告诉你了……

      2012-07-09 06:36 [回复]
  5. 地板
    theend:

    vim /etc/httpd/conf/extra/httpd-evasive.conf提示找不到文件…… 😕

    2012-07-06 09:24 [回复]
    • 赵 容:

      如果没有,说明你没有装好,如果安装好了,这个文件是绝对会有的。

      2012-07-06 09:25 [回复]
  6. 板凳
    cc:

    DOSEmailNotify (xx@xx.xx) #有IP加入黑名单后通知管理员。

    2012-06-23 16:37 [回复]
  7. 沙发
    cc:

    DOSSiteInterval 1 #全站访问计数器间隔。
    DOSSiteInterval(DOSBlockingPeriod?) 60 #加入黑名单后拒绝访问时间。

    貌似

    2012-06-23 16:35 [回复]
    • lxmytsm:

      gracefully restaring httpd
      warning :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
      []

      2012-11-03 11:53 [回复]

发表评论


海星云主机

广而告之