无法为Bookstack配置Fail2ban过滤器,求助匹配失败问题
解决Bookstack的Fail2ban过滤器匹配失败问题
问题根源
你的过滤器正则无法匹配日志的核心问题有两个:
- 错误使用了HTML转义字符
<,Fail2ban正则规则需要原生的<HOST>占位符 - 原正则的分组逻辑没有完全贴合Apache错误日志的字段格式
修正后的过滤器配置
替换/etc/fail2ban/filter.d/bookstack.conf的内容为:
[Definition] failregex = \[client <HOST>:\d+\] Failed login for .+?, ignoreregex =
配置说明
<HOST>:\d+:精准匹配日志里的客户端IP+端口格式(比如82.32.100.175:52892)Failed login for .+?,:锁定包含登录失败关键字的日志段,避免误匹配其他无关日志行
验证与生效步骤
- 执行测试命令验证匹配效果:
sudo fail2ban-regex /var/log/apache2/error.log /etc/fail2ban/filter.d/bookstack.conf --print-all-matched
此时应该能看到目标日志行被成功匹配。
2. 重启Fail2ban使配置生效:
sudo systemctl restart fail2ban
额外检查项
- 确认
jail.local中的logpath指向正确的Apache错误日志路径,部分系统路径为/var/log/httpd/error_log - 确保日志文件权限允许Fail2ban读取:
sudo chmod o+r /var/log/apache2/error.log
内容的提问来源于stack exchange,提问作者DixFlatline
相关产品推荐
相关产品推荐

