测试 mod_evasive
检查是否已加载 mod_evasive 模块。
[root@appserver ~]# httpd -M | grep evasive Syntax OK evasive20_module (shared) [root@appserver ~]#
使用 mod_evasive 提供的 Perl 脚本生成流量以测试配置。
[root@appserver html]# /usr/share/doc/mod_evasive-1.10.1/test.pl HTTP/1.1 200 OK HTTP/1.1 200 OK HTTP/1.1 200 OK HTTP/1.1 403 Forbidden HTTP/1.1 403 Forbidden
从输出中,很明显 mod_evasive 正在阻止DDOS连接。
我们可以根据服务器流量,使用 mod_evasive 参数对其进行优化。
Web服务器如何应对DDOS 攻击?
我们可以使用 Apache HTTP 服务器的模块mod_evasive,它用于保护 Apache HTTP 服务器免受 DoS(拒绝服务)、DDoS(分布式拒绝服务)和蛮力攻击。
该模块通过维护 IP 地址和 URI 的内部动态表以及在以下任何情况下拒绝任何单个 IP 地址来工作:
- 每秒请求同一页面超过 n 次
- 每秒对同一个子进程发出 n 个以上的并发请求
- 在暂时列入黑名单时提出任何请求
在本文中,我们将介绍如何为 Apache HTTP Server 安装和配置 mod_evasive 以防御 DoS、DDoS 和蛮力攻击。
欢迎 on
it
road
apache 安装mod_evasive
mod_evasive 在 EPEL (Extra Packages for Enterprise Linux) 存储库上可用,因此我们应该首先将 EPEL 存储库添加到 yum 。
[root@appserver ~]# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
使用 yum 安装 mod_evasive。
[root@appserver ~]# yum install mod_evasive
为 mod_evasive 创建日志目录
[root@appserver ~]# mkdir -p /var/log/mod_evasive [root@appserver ~]# chown -R apache:apache /var/log/mod_evasive
mod_evasive 不需要任何另外的配置,它在默认设置下工作正常。
但是,根据我们服务器的流量自定义 /etc/httpd/conf.d/mod_evasive.conf 中的以下参数是一个很好的做法。
DOSEmailNotify jackli_mansoor@hotmail.com DOSPageInterval 1 DOSPageCount 2 DOSSiteInterval 1 DOSSiteCount 50 DOSBlockingPeriod 60 DOSLogDir "/var/log/mod_evasive"
重新启动 httpd 服务使更改生效。
[root@appserver mod_evasive]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] [root@appserver mod_evasive]#
配置 mod_evasive
检查 mod_evasive 是否已经安装。
[root@appserver ~]# httpd -M | grep evasive Syntax OK
日期:2020-09-17 00:16:34 来源:oir作者:oir