我已经设置了后缀使用Dovecot SASL和聚丙烯酰胺和 Unix 用户,以及用于本地邮箱存储的 Dovecot LDA (LMTP)。经过一些测试,发现收到的邮件被拒绝,原因是:
错误:[用户] 的 passdb 查找失败:配置的 passdb 不支持凭据查找
这既麻烦又令人困扰——我选择了基于 PAM 的身份验证,因为我找到的所有来源都表明这是最简单、最可靠的方法。目前我很难排除故障——我不确定这是否真的是 PAM 的问题,还是我的配置有问题。
日志
查找测试doveadm
:
$ doveadm auth lookup [user]
Error: passdb lookup failed for [user]: Configured passdbs don't support credentials lookups
查找测试后的 Dovecot 调试日志:
$ cat /var/log/dovecot/dovecot-debug.log | tail -5
[date][time] auth: Debug: master in: PASS 1 [user] service=doveadm debug
[date][time] auth: Debug: pam([user]): Performing passdb lookup
[date][time] auth: Debug: pam([user]): passdb doesn't support credential lookups
[date][time] auth: Debug: pam([user]): Finished passdb lookup
[date][time] auth: Debug: passdb out: FAIL 1 reason=Configured passdbs don't support credentials lookups
相关配置
文件/etc/dovecot/conf.d/10-auth.conf
:
auth_username_format = %Ln
auth_mechanisms = plain login
!include auth-system.conf.ext
文件/etc/dovecot/conf.d/auth-system.conf.ext
:
passdb {
driver = pam
args = session=yes failure_show_msg=yes dovecot
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/vmail/%n
}
该/etc/pam.d/dovecot
文件是 Rocky Linux(相当于 RHEL 并且与 Fedora 相同)Dovecot 包附带的默认文件:
#%PAM-1.0
auth required pam_nologin.so
auth include password-auth
account include password-auth
session include password-auth
不过我也尝试了官方建议的配置Dovecot PAM 文档并且没有产生任何不同的结果。我对其余配置很有信心,因为我花了大量时间研究选项,但我仍然不太了解 PAM 配置...
所有日志都表明问题出在 Dovecot SASL 本身,而不是 Postfix 或 Dovecot 配置。任何建议都将不胜感激。
答案1
我不知道这是否是解决问题的正确方法(现在回来阅读anx 的评论passdb
在我的原始帖子上让我怀疑是否如此),但我设法通过在 Dovecot 的配置中添加第二个条目来使查找和身份验证正常工作。
在 Dovecot 配置中,我先PAM 密码数据库带有密码密码数据库入口:
# e.g. /etc/dovecot/conf.d/auth-system.conf.ext
passdb { # This is not a typo
# Passwd can be used both as a passdb and a userdb
driver = passwd
}
passdb {
driver = pam
args = dovecot
}
这使得用户查找doveadm auth lookup [user]
成功。然而,密码数据库无法认证用户,因为密码不再存储在/etc/passwd
Unix 系统上的文件中。发生这种情况时,将继续使用 PAM 密码数据库进行查找,从而正确验证用户身份。可以使用以下命令对此进行测试doveadm auth test [user]
。
我将其添加为可接受的答案,因为解决方案/解决方法目前对我有用。如果有人有任何建议或知道如何以更好的方式解决这个问题,我很乐意接受它。只有 PAM 数据库是默认配置Rocky Linux(实际上是 RHEL),令我惊讶的是它不能开箱即用。