我为此绞尽脑汁 4 个小时,却无法解决!Google 发现很多问题与 SASL 身份验证失败有关:密码验证失败,但都无济于事。
基本上,IMAP 工作正常,我可以登录。但是使用 SASL+pam 的 smtp 却很麻烦!
mail.log 说:
SASL authentication failure: Password verification failed
身份验证日志:
pam_unix(smtp:auth): check pass; user unknown
Jan 4 13:43:30 favoritewords saslauthd[2193]: pam_unix(smtp:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
Jan 4 13:43:32 favoritewords saslauthd[2193]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure
Jan 4 13:43:32 favoritewords saslauthd[2193]: do_auth : auth failure: [[email protected]] [service=smtp] [realm=domain.com] [mech=pam] [reason=PAM auth error]
在 mysql 日志中我看到:
59 Query select crypt from users where id='[email protected]' and enabled = 1
59 Query COMMIT
59 Quit
60 Connect mail@localhost on mail_db
60 Quit
/etc/pam.d/smtp 如下所示:
auth required pam_mysql.so user=mail passwd=asdasdasd== host=127.0.0.1 db=mail_db table=users usercolumn=id passwdcolumn=crypt crypt=1 verbose=1
account sufficient pam_mysql.so user=mail passwd=asdasdasd== host=127.0.0.1 db=mail_db table=users usercolumn=id passwdcolumn=crypt crypt=1 verbose=1
和 /etc/postfix/sasl/smtpd.conf:
pwcheck_method: saslauthd
mech_list: plain login cram-md5 digest-md5
log_level: 7
allow_plaintext: true
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: mail
sql_passwd: asdasdasd==
sql_database: mail_db
sql_select: select crypt from users where id='%u@%r' and enabled = 1
注意,我认为 /etc/postfix/sasl/smtpd.conf 是在 /etc/pam.d/smtp 上使用的,这就是问题所在。
答案1
快速回答。重新启动 pam 服务。
PAM 中显然存在大量内存泄漏,尤其是 SASLauthd,它经常崩溃。
我正在尝试找出一种方法来限制允许的查找量,因为现在它每秒大约有 50 次查找并且经常崩溃。