apache 无原生指令限制单客户端并发连接数,但可通过 mod_evasive 实时监控单ip请求频率并动态拦截,配合 dospagecount、dossitecount 等参数实现轻量级 cc 防护。
apache 启用 mod_evasive 是防御小规模 cc 攻击的轻量有效手段,核心在于实时监控单 ip 的请求频率并动态拦截。它不依赖外部防火墙或复杂规则,直接在 web 层做响应,适合中小流量站点快速部署。
一、安装 mod_evasive 模块(按系统区分)
模块本身不随 Apache 默认安装,需手动添加:
-
CentOS/RHEL 7/8/9(推荐使用 EPEL):
yum install -y epel-release && yum install -y mod_evasive
或(RHEL/CentOS 8+):dnf install -y mod_evasive -
Ubuntu/Debian:
apt update && apt install -y libapache2-mod-evasive -
源码编译(通用,适用于自定义路径或旧版 Apache):
下载mod_evasive_1.10.1.tar.gz→ 解压 → 进入目录 → 执行:/usr/bin/apxs -i -a -c mod_evasive20.c(Apache 2.x)
安装后模块通常自动加载,无需手动写 LoadModule(但可检查 httpd -M | grep evasive 确认是否启用)。
二、关键参数配置说明与建议值
配置文件位置因系统而异:
– Ubuntu/Debian:/etc/apache2/mods-available/evasive.conf
– CentOS/RHEL:/etc/httpd/conf.d/mod_evasive.conf
核心参数含义及生产环境常用设置(兼顾防护与防误封):
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
DOSPageCount 2:同一 IP 在
DOSPageInterval秒内访问**同一页面**最多次数(如反复刷登录页)。设为 2~5 较稳妥。 -
DOSSiteCount 50:同一 IP 在
DOSSiteInterval秒内对**整个站点**的总请求数(含图片、CSS、JS)。设为 40~60,避免封禁正常浏览用户。 - DOSPageInterval 1 和 DOSSiteInterval 1:检测窗口均为 1 秒,适合识别短时洪泛;若站点有大量 AJAX 轮询,可酌情调至 2 秒。
- DOSBlockingPeriod 600:IP 被封禁时长(单位:秒),默认 3600 太长,易影响真实用户;建议设为 600(10 分钟)或 1800(30 分钟)。
- DOSHashTableSize 3097:哈希表大小,影响内存占用和查询效率,保持默认即可,无需修改。
-
DOSWhitelist 127.0.0.1:加入白名单防止本地调试被误封,可追加内网段如
192.168.0.0/16(需 Apache 2.4+ 支持 CIDR)。
三、增强防护与日常运维要点
仅靠基础配置不够,还需配合日志、通知和联动机制:
-
开启日志记录:确保
DOSSystemLog /var/log/httpd/evasive存在且目录可写,便于排查误封或攻击特征。 -
邮件告警(可选):配置
DOSEmailNotify admin@yourdomain.com,需系统已配置 sendmail 或 msmtp。 -
联动 iptables 封禁(进阶):设置
DOSBlockingExec "/sbin/iptables -I INPUT -s %s -j DROP",实现网络层硬封锁(注意需 root 权限且 Apache 运行用户能执行该命令)。 -
重启生效 & 验证加载:
systemctl restart httpd(CentOS)或systemctl restart apache2(Ubuntu)
再执行curl -I -x your_ip:80 http://localhost或用ab -n 100 -c 30 http://yoursite/模拟并发,观察是否返回 403。
四、注意事项与常见误区
mod_evasive 是辅助型防护,不是万能盾:
- 它无法防御大规模 DDoS(需 CDN 或云WAF);也不防慢速攻击(如 Slowloris),需结合
mod_reqtimeout。 - 共享 IP 场景(如校园网、大型运营商 NAT)容易误封,务必调高
DOSSiteCount并加白名单。 - 静态资源(JS/CSS/图片)同样计入统计,若站点大量使用 AJAX 或前端框架,应适当放宽阈值。
- 配置修改后必须重启 Apache,仅重载(
reload)可能不生效;修改前建议备份原配置。









