Ubuntu 22.04下sshd日志级别设置失效,auth.log内容过短导致Fail2ban无法识别sshd日志
我明白你碰到的问题了——Ubuntu 22.04上sshd生成的auth.log内容太简略,导致Fail2ban的sshd规则没法正确抓取这些失败登录尝试。从你贴的日志片段来看,确实只有PAM的认证失败提示,缺少Fail2ban默认过滤器需要的关键条目(比如明确的“Failed password for...”这类日志),这大概率是sshd的日志级别没开够导致的。
给你几个解决步骤:
调整sshd日志级别
先打开sshd的配置文件:sudo nano /etc/ssh/sshd_config找到
LogLevel这一行,默认可能是INFO,把它改成VERBOSE(这个级别足够输出Fail2ban需要的细节,又不会产生太多冗余日志)。如果LogLevel行被注释了,记得去掉前面的#再修改。保存退出后,重启sshd服务让配置生效:
sudo systemctl restart sshd验证日志输出
等个几分钟,再去查看/var/log/auth.log,应该会出现类似这样的条目:Mar 6 19:00:00 laphs sshd[12345]: Failed password for invalid user test from 192.168.1.100 port 12345 ssh2
这类日志就是Fail2ban的sshd过滤器能正确识别的格式了。
(可选)确认Fail2ban过滤器配置
如果你调整日志级别后还是有问题,可以检查Fail2ban的sshd过滤器:cat /etc/fail2ban/filter.d/sshd.conf默认的过滤器已经包含了匹配“Failed password”“invalid user”这类关键词的正则,只要日志内容正确,应该就能正常匹配。
需要注意的是,别把日志级别设得太高(比如DEBUG2及以上),这类级别会输出敏感信息(比如部分密码内容),VERBOSE是最平衡的选择。
备注:内容来源于stack exchange,提问作者booraik




