mod_evasive对单IP、HTTP/1.x轻量级CC和应用层DoS有效,需合理配置双阈值(DOSPageCount/DOSPageInterval、DOSSiteCount/DOSSiteInterval)、设DOSBlockingPeriod为300–600秒、加白名单,并通过ab压测+日志验证拦截生效;它不替代防火墙,仅返回403,对分布式、混淆、HTTP/2攻击无效。

mod_evasive 对轻量级 CC 攻击和应用层 DoS 有明确效果,但前提是配置合理、验证到位、不孤立使用。它不是防火墙替代品,而是 Apache 内部的“实时请求节流器”,靠内存哈希表毫秒级响应,适合中小站点快速布防。
确认模块已真正启用并运行
安装不等于生效。常见静默失效原因包括配置块被注释、日志目录无写权限、DOSBlockingPeriod 设为 0 或配置文件未被主配置 Include。
- Ubuntu/Debian:执行 sudo a2enmod evasive 后重启服务(sudo systemctl restart apache2)
- CentOS/RHEL:检查 /etc/httpd/conf.d/mod_evasive.conf 是否存在且未被注释,确认
块已启用 - 验证方式:用 ab -n 100 -c 30 http://localhost/ 模拟并发,立即查日志(tail -n 20 /var/log/apache2/mod_evasive.log 或 /var/log/httpd/mod_evasive.log),应看到 Blacklisted for exceeding request limits 记录
核心参数调优:双阈值 + 封禁时长
关键不在“严”,而在“准”。需兼顾真实用户行为与攻击特征:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- DOSPageCount 3–10 + DOSPageInterval 1:防单页高频刷新(如登录爆破)。设太低会误杀 SPA 首屏资源加载;静态页(/favicon.ico)建议配合白名单或忽略
- DOSSiteCount 40–60 + DOSSiteInterval 1:控整站总并发。50 是较稳妥起点;若含 AJAX 轮询,可延长 DOSSiteInterval 至 2–5 秒,改用累计计数
- DOSBlockingPeriod 300–600(5–10 分钟):太短(如 60 秒)易被绕过;太长(如 3600 秒)可能误伤临时网络抖动用户
避免误封与增强联动
默认只返回 403,不主动阻断连接,所以封禁后仍能发请求——这是正常现象,不代表失效。
- 务必加 DOSWhitelist:至少包含 127.0.0.1 和内网段(如 192.168.1.*),对搜索引擎爬虫(User-Agent 含 Googlebot/Bingbot)跳过限制
- 日志路径(DOSLogDir)需确保 Apache 运行用户(如 www-data 或 apache)有写权限,否则拦截不记录
- 可选增强:DOSBlockingExec "iptables -I INPUT -s %s -j DROP" 实现系统级封禁,但需注意 iptables 规则持久化问题
认清能力边界,不依赖单一手段
mod_evasive 仅对单 IP、简单节奏、HTTP/1.x 的轻量 CC 有效。面对以下场景即失效:
- 分布式多 IP 攻击(需结合 CDN 或云 WAF)
- 请求头混淆(如随机 User-Agent、Referer)、慢速攻击(Slowloris)
- HTTP/2 多路复用导致单连接高频请求(模块无法按流区分)
- 大量 404/400 扫描类流量(建议搭配 mod_security + CRS 的 REQUEST-912-DOS-PROTECTION 规则)










