Dovecot auth_verbose = yes 开启了,但用户登录失败日志没有,可能哪里漏了?
auth_verbose = yes 只控制认证详细程度,不会自动启用认证日志的开关。Dovecot 的认证日志输出受多个参数叠加控制,一个参数开了不代表日志就能出来。常见遗漏是未设置 auth_verbose_passwords 和日志目标。
逐一检查以下配置项:
1. auth_verbose:确认设置为 yes(或 auth_verbose=yes)。这是基础开关。
2. auth_verbose_passwords:设为 sha1 或 plain 才能在日志中看到失败时尝试的密码(sha1 更安全)。设为 no 则密码不记录。
3. log_path / syslog_facility:如果 Dovecot 的日志输出到独立文件,确保 log_path = /var/log/dovecot.log 且文件可写。如果用 syslog,确认 syslog_facility = mail 和 syslog 配置正确。
4. auth_debug:临时设为 yes 可获得最详细的认证调试日志(生产环境慎用,日志量巨大)。
5. auth_failure_delay(可选):设为 2 secs 可添加失败延迟,同时日志中会有明确的 failure 记录。
6. 重启验证:改完后 dovecot reload 或 systemctl reload dovecot。然后故意输错密码登录一次,立刻看日志:tail -f /var/log/dovecot.log | grep -i auth。应看到类似 auth-worker: Error: passwd-file(user@domain): unknown user 或 auth: Error: Authentication failed。
7. 善后:调试完成后把 auth_debug 改回 no,避免日志吞噬磁盘。
Dovecot Wiki: Authentication · Dovecot Wiki: Logging · RFC 4954 (SMTP AUTH)
