debuggingPostfix Saslauthd PAM-PGsql身份validation失败

我已经设置了pam-pgsql来通过Saslauthd在Postfix的数据库中查找密码。

我可以使用命令行testing凭据:

$ sudo testsaslauthd -u [email protected] -p password 0: NO "authentication failed" 

身份validation将失败,我不知道为什么。

 $ sudo tail /var/log/auth.log Feb 5 15:33:12 saslauthd[7460]: pam_unix(imap:auth): check pass; user unknown Feb 5 15:33:12 saslauthd[7460]: pam_unix(imap:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost= Feb 5 15:33:14 saslauthd[7460]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure Feb 5 15:33:14 saslauthd[7460]: do_auth : auth failure: [[email protected]] [service=imap] [realm=] [mech=pam] [reason=PAM auth error] 

我怎么知道pam-pgsql在做什么? 我怎样才能获得更有用的信息?

乔恩从过去! 我有你所有问题的答案。

你的日志中有一条线索:

 saslauthd[8044]: pam_unix(imap:auth): check pass; user unknown 

记住你如何把PAMconfiguration放在/etc/pam.d/smtp而不是imap ? 而你的日志说imap ? 是的,你正在尝试validation错误的服务。

我实际上在Postfix SASL手册中find了解决scheme,就在您发现Sasltesting命令的地方 :

testingsaslauthdauthentication

如果将saslauthdconfiguration为联系PAM身份validation框架,请指定一个附加的“ -s smtp

是的,你很快就会发现,正确的调用是:

 $ sudo testsaslauthd -u [email protected] -p password -s smtp 0: OK "Success." 

我假设你已经通过configuration文件/etc/pam_pgsql.conf来configuration这个模块,它接受debugging参数:

  database = db user = user [...] debug = 1 

还有一个全局debugging参数,您应该附加到pamconfiguration行:

  auth required pam_pgsql.so debug 

来源: [github]官方回购