You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:无法配置Fail2Ban正则规则拦截指定User Agent(Amazonbot)

修复Fail2Ban正则以拦截指定日志条目

你的正则无法生效主要有三个核心问题:

  • 没有匹配日志开头的IP地址:Fail2Ban必须捕获到客户端IP才能完成封禁动作,你的正则直接跳过了IP部分
  • 错误使用字符类[.*?]:日志里的日期是用方括号包裹的,正则里需要用转义的\[和\]来匹配,而你写的[.*?]是匹配任意单个字符(.、*、?中的一个),完全不符合需求
  • 正则结构和日志格式不匹配,导致整体无法命中

正确的正则配置

[Definition]
failregex = ^<HOST> - - \[.*?\] "(GET|POST|HEAD) .* HTTP/.*" .* "Mozilla/5.0.*Amazonbot.*"
ignoreregex =

关键说明

  • <HOST>:Fail2Ban的内置占位符,专门用来匹配各种格式的IP地址(IPv4/IPv6),自动帮你处理IP的正则匹配,比自己写IP正则更可靠
  • \[.*?\]:转义方括号,匹配日志里的日期时间部分(非贪婪模式避免过度匹配)
  • 保留了对请求方法、User-Agent中Amazonbot的匹配,确保只拦截符合特征的请求

测试正则是否生效

可以用Fail2Ban自带的工具测试:

fail2ban-regex 你的日志文件路径 /etc/fail2ban/filter.d/你的配置文件名.conf

如果测试结果显示"Matches found",说明正则已经可以正确命中目标日志条目。

内容的提问来源于stack exchange,提问作者Andrzej Majewski Phones Rescue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 10:28:11