fail2ban 过滤器不匹配 - 是正则表达式还是其他什么

fail2ban 过滤器不匹配 - 是正则表达式还是其他什么

我有一个网站,其中包含一个允许不频繁调用的 php 脚本。每隔几秒钟就会有一些烦人的用户访问我的脚本,我需要禁止他们。我设置了 failban,但没有发现他们。我阅读了 wiki 并根据示例模拟了我的设置。有人能告诉我这里哪里不对吗?

首先是我的监狱:

[my-checkversion]
enabled  = true
filter   = checkversion
logpath  = /data/logs/mydomain.com-access_log
findtime = 60
bantime = 86400
maxretry = 6
action = iptables[name=HTTP, port=http, protocol=tcp]

接下来是我的过滤器:

[INCLUDES]
before = apache-common.conf
[Definition]
# Example
# 144.217.80.24 - - [02/May/2019:07:02:00 -0500] "POST /hidden/readversion.php HTTP/1.1" 200 -
failregex = ^<HOST> - - \[.*\] "POST <checkversion_url> HTTP/1\.[01]" 200 .*$
ignoreregex =
[Init]
checkversion_url = /hidden/readversion.php

我在 apache 访问文件中放置了一行摘录,在正则表达式行上方的注释中显示了用户点击了有问题的 URL。

有人能告诉我哪里出了问题吗?是正则表达式吗?在线正则表达式编辑器由于变量替换而无济于事……所以这是最大的努力

答案1

fail2ban 有一个选项,可以强制它查看一个文件来尝试你的规则,并且打印出它是否有效。

你看过了fail2ban-regex <logfile> <fail2ban rule .conf>嗎?

相关内容