我有一个网站,其中包含允许不经常调用的 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 访问文件中放置了 1 行摘录,显示用户在正则表达式行上方的评论中点击了有问题的 URL。
有人可以告诉我有什么问题吗?是正则表达式吗?由于变量替换,在线正则表达式编辑器无济于事......所以这是最好的努力
fail2ban 有一个选项可以强制它查看文件以尝试您的规则,并打印出它是否有效。
你看过
fail2ban-regex <logfile> <fail2ban rule .conf>
吗?