SEO
fail2ban didn't work due to wrong time in auth.log
问题
某台公网主机重装系统后fail2ban
工作不正常,表现为auth.log
有失败记录但ip无法被禁止。
排查
按照之前的文章使用fail2ban过滤ssh爆破进行配置
开始以为是findtime
间隔时间太长导致,查阅资料发现理解有误
ancient past | past | ban | future
----------------+--*--*-*--*---*-+-------------------+------------->
| | |
| | +--> now + bantime
| +--> now
+--> now - findtime
实际上fail2ban每时每刻都在扫描日志文件,而findtime
代表过去一段时间,统计该时段内失败次数进行封禁。
解决
仔细观察auth.log
发现时间不对劲,设置时区后date
可返回CST时间而日志中仍为UTC时间。
完美解释了为何无法触发封禁,因为失败都发生在8小时前……
重启日志服务sudo service rsyslog restart
问题解决。
参考
使用fail2ban过滤ssh爆破 - azureology - 博客园
linux - Get Fail2Ban To Check findtime Every X Minutes - Server Fault
linux - auth log file shows wrong time? - Server Fault