应优先通过行为模式(高频请求、无referer、固定路径、404集中、ua异常)识别恶意爬虫,再结合fail2ban自定义规则精准封禁;mod_evasive因规则僵化、不可审计,稳定性不如fail2ban。

直接看 /var/log/apache2/access.log(或 /var/log/httpd/access.log),攻击扫描行为会在请求行中留下重复、机械、高频率的“数字指纹”,不需要等真实入侵发生,就能提前预警。
高频且规律的 IP 访问模式
扫描器通常用固定 IP 发起大量请求,访问路径短、参数简单、User-Agent 单一。统计前 10 个最活跃 IP,能快速定位可疑源头:
- cat /var/log/apache2/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -10
- 若某 IP 在几分钟内发起数百次请求,尤其集中在 /phpmyadmin、/wp-login.php、/admin、/backup.zip 等敏感路径,基本可判定为目录爆破或 CMS 扫描
- 注意时间集中性:如连续 3 分钟内每秒 2–5 次请求,远超人工浏览节奏
可疑路径与参数组合
扫描器试探时会构造大量标准化载荷,常见于 URL 查询字符串中:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- /index.php?id=1' --、/product.asp?cid=1 AND 1=1 → SQL 注入探测
- /images/../../etc/passwd、/js/..%2f..%2f..%2fetc%2fshadow → 路径遍历试探
- /shell.php、/up.php、/1.php、/cmd.jsp → WebShell 文件名暴力枚举
- 含 .git/config、.env、web.config 的请求 → 配置文件泄露扫描
异常 User-Agent 与 Referer
真实用户浏览器标识丰富多样,而扫描工具往往暴露固定特征:
- 空白 User-Agent:"-" 或仅含 sqlmap、nikto、dirsearch、gobuster 字样
- Referer 异常:大量请求 Referer 为 http://localhost、http://127.0.0.1 或完全缺失
- 可快速提取并去重查看:awk -F'"' '{print $6}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -10
状态码分布异常
扫描过程常伴随大量非 200 响应,结合路径更易识别意图:
- 403 + 大量 /admin/* → 权限探测
- 404 + /phpmyadmin/、/wp-content/plugins/xxx/ → 目录/插件存在性验证
- 500 + 含单引号或 UNION 的 URL → 注入尝试已触达后端
- 命令示例:awk '$9 ~ /^40[34]|500/ && $7 ~ /\'|UNION|\.git|\.env/ {print $0}' /var/log/apache2/access.log










