Fail2ban正则匹配正常但服务未生效,请求排查方案
Fail2ban服务异常:正则匹配正常但无失败计数
问题详情
Fail2ban服务无法正常触发封禁,使用fail2ban-regex验证正则表达式匹配日志正常,但执行fail2ban-client status login_eiren_studio时始终显示0次失败认证。系统与日志时区均为Europe/Madrid,Fail2ban日志无相关匹配记录,服务以root权限运行,目标日志文件具备读取权限。
配置信息
Filter规则文件(/etc/fail2ban/filter.d/login_eiren_studio.conf)
[Definition] datepattern =\[%%Y-%%m-%%d\s%%H:%%M:%%S\s%%z\] failregex =^\s\|\sIP:\s<HOST>\s.*$ ignoreregex =
Jail配置文件(/etc/fail2ban/jail.local)
[login_eiren_studio] enabled = true filter = login_eiren_studio logpath = /var/www/openvscode/proyectos/login.eiren.studio/logs/badauth.log maxretry = 5 bantime = 3600 findtime = 600
目标日志示例(/var/www/openvscode/proyectos/login.eiren.studio/logs/badauth.log)
[2025-01-02 12:43:58 +0100] | IP: 85.87.24.22 | Dispositivo: Windows 10 | Navegador: Chrome 131.0.0.0 | Usuario: intento de login: josuenbeita@gmail.com | Mensaje: Error: El usuario existe pero la contraseña no es correcta. [2025-01-02 12:52:18 +0100] | IP: 85.87.24.22 | Dispositivo: Windows 10 | Navegador: Chrome 131.0.0.0 | Usuario: intento de login: josuenbeita@gmail.com | Mensaje: Error: El usuario existe pero la contraseña no es correcta.
解决思路
- 重新加载配置并重启服务:执行
sudo fail2ban-client reload login_eiren_studio或sudo systemctl restart fail2ban,确保配置变更生效 - 修正datepattern格式:Filter配置中的
datepattern使用了%%双重转义,这是错误的,应改为单个%,正确格式为:
(Fail2ban的filter配置中无需对datepattern = \[%Y-%m-%d\s%H:%M:%S\s%z\]%进行双重转义,双重转义仅适用于shell环境下的变量引用) - 启用Debug日志排查:修改
/etc/fail2ban/fail2ban.conf中的loglevel为DEBUG,重启服务后查看/var/log/fail2ban.log,获取日志匹配的详细过程 - 验证日志路径与写入权限:确认
logpath配置的绝对路径无拼写错误,手动向日志文件追加测试条目,查看Fail2ban是否能实时捕获 - 检查安全模块限制:若系统启用SELinux或AppArmor,临时关闭SELinux(
sudo setenforce 0)测试,或调整AppArmor规则允许Fail2ban读取目标日志文件
内容的提问来源于stack exchange,提问作者Eiren Studio
相关产品推荐
相关产品推荐

