我有一个有效的 fail2ban 配置,它不仅可以阻止 IP,还可以将它们通告给 AbuseIPDB。这对于 sshd 和 postfix-sasl 来说工作正常,但对于 apache-badbots 则不行(因此我认为 apache-overflow 也不行)。这就是我所拥有的:
在 /etc/fail2ban/jail.d/defaults-debian.conf 中,它以与其他规则相同的方式启用:
[apache-badbots]
enabled = true
# Ban IP and report to AbuseIPDB
action = %(action_)s
%(action_abuseipdb)s[abuseipdb_apikey="<mykeyhere>", abuseipdb_category="19"]
在 /etc/fail2ban/filter.d/apache-badbots.conf 中配置不需要的机器人:
[Definition]
badbotscustom = EmailCollector|WebEMailExtrac|TrackBack/1\.02|sogou music spider|MJ12bot|DataForSeoBot|cyberscan.io|dataforseo|SemrushBot
badbots = <loads of predefined bots here>
failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*".*(?:%(badbots)s|%(badbotscustom)s).*"$
ignoreregex =
但这些机器人从未被检测/阻止/公布过。对于具有引荐来源的机器人和仅可通过客户端字符串识别的机器人而言,情况都是如此。
知道这里可能出了什么问题吗?
答案1
你检查过你的日期模式吗?我使用:
datepattern = ^[^\[]*\[({DATE})
{^LN-BEG}
%%d/%%b/%%Y:%%H:%%M:%%S
\[%%d/%%b[^/]*/%%Y:%%H:%%M:%%S %%z\]
\[%%d/%%b/%%Y:%%H:%%M:%%S %%z\]