运行以下测试脚本来查看 Fail2ban 是否正常运行:
fail2ban-regex /var/log/apache*/*access.log /etc/fail2ban/filter.d/apache-auth.conf
我收到这样的回复:
Running tests
=============
Use ignoreregex line : /etc/fail2ban/filter.d/apache-badbots
No section headers in /var/log/apache2/other_vhosts_access.log
它没有运行我的日志的测试扫描。我已经用类似的语法测试了我的 SSH fail2ban 设置,并且测试正常。不知道我做错了什么。
答案1
我认为你遇到的问题是由于外壳的膨胀方式
/var/log/apache*/*access.log
我想你确实/etc/fail2ban/filter.d/apache-auth.conf
也是这个意思。
尝试用单引号括住该参数
fail2ban-regex '/var/log/apache*/*access.log' /etc/fail2ban/filter.d/apache-auth.conf
它将把它未扩展地传递给fail2ban-regex
。
进一步研究 - 它看起来不像fail2ban-regex
采用通配符:
fail2ban-regex '/var/log/apache*/*access.log' /etc/fail2ban/filter.d/apache-auth.conf
...
Use regex file : /etc/fail2ban/filter.d/apache-auth.conf
Use single line: /var/log/apache*/*access.log
请注意,它认为我们传递的是一行,然后尝试
fail2ban-regex /var/log/apache2/access.log /etc/fail2ban/filter.d/apache-auth.conf
...
Use regex file : /etc/fail2ban/filter.d/apache-auth.conf
Use log file : /var/log/apache2/access.log
请注意,它看到我们已经传递了一个日志文件。