postfix/sasl/pam (mysql) 身份验证错误

postfix/sasl/pam (mysql) 身份验证错误

我已经按照教程http://flurdy.com/docs/postfix/设置电子邮件服务器,大部分功能都正常(从 Courier 切换到 Dovecot 后)。只是无法通过 SMTP 发送电子邮件。使用 发送sendmail功能正常。

/var/log/auth.log这是我尝试使用 Thunderbird 发送电子邮件时看到的内容:

May 22 18:45:59 myserver postfix/submission/smtpd[16560]: sql auxprop plugin using mysql
May 22 18:45:59 myserver saslauthd[16141]: pam_unix(smtp:auth): check pass; user unknown
May 22 18:45:59 myserver saslauthd[16141]: pam_unix(smtp:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
May 22 18:46:01 myserver saslauthd[16141]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure
May 22 18:46:01 myserver saslauthd[16141]:                 : auth failure: [user=user1] [service=smtp] [realm=myserver.nl] [mech=pam] [reason=PAM auth error]
May 22 18:46:01 myserver saslauthd[16142]: pam_unix(smtp:auth): check pass; user unknown
May 22 18:46:01 myserver saslauthd[16142]: pam_unix(smtp:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
May 22 18:46:04 myserver saslauthd[16142]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure
May 22 18:46:04 myserver saslauthd[16142]:                 : auth failure: [user=user1] [service=smtp] [realm=myserver.nl] [mech=pam] [reason=PAM auth error]

(我以 身份登录[email protected],并且 IMAP 可以正常运行。)

我可以看到一些针对用户的 mysql 查询[email protected],但是有许多进程、守护进程和配置一起工作,我不知道哪个部分失败了。

总结:

  • postfix 设置为使用 sasl(在/etc/postfix/main.cf和 中/etc/postfix/sasl/smtpd.conf
  • saslauthd 设置为使用 pam(在 中/etc/default/saslauthd
  • pam smtp 设置为使用 mysql 作为其用户数据库(但似乎从来没有?)(在/etc/pam.d/smtp

from用于查询。我可以在 mysql 日志中看到那里的更改sql_select/etc/postfix/sasl/smtpd.confuser1

配置的表和列/etc/pam.d/smtp从未使用过。更改那里的内容不会产生任何影响。

testsaslauthd仅当我添加时才对我“有效” -f /var/spool/postfix/var/run/saslauthd/mux,但它始终返回NO "authentication failed"并且从不查询 mysql,所以我不知道它怎么会起作用。但输出auth.log与 Thunderbird 的真实请求的输出非常相似(确实触发了 mysql 查询/查找):

May 22 18:59:56 myserver saslauthd[16756]: pam_unix(imap:auth): check pass; user unknown
May 22 18:59:56 myserver saslauthd[16756]: pam_unix(imap:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
May 22 18:59:58 myserver saslauthd[16756]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure
May 22 18:59:58 myserver saslauthd[16756]:                 : auth failure: [[email protected]] [service=imap] [realm=] [mech=pam] [reason=PAM auth error]

然后是密码哈希。我已将 Dovecot 设置为仅接受 SSL 并使用纯文本密码 ( users.clear)。我不知道哈希密码 ( users.crypt) 是否正确,或者 Postfix 是否使用它。我已在所有配置文件中尝试了所有组合。输出auth.log始终相同。没有详细信息。

Thunderbird 告诉我它无法发送消息,然后显示一种错误消息:...“意外错误 80004005”...“由于未知原因无法发送”。这似乎不是密码错误,而是某个内部服务器错误。但日志中没有可怕的错误消息......

在某处添加一些调试级别后(抱歉我记不清了,配置文件太多了!)系统日志包含更多有关 smtp 连接的信息:

May 22 19:10:45 myserver postfix/submission/smtpd[16779]: SSL_accept:SSLv3/TLS read finished
...
May 22 19:10:45 myserver postfix/submission/smtpd[16779]: Anonymous TLS connection established from ip-1.2.3.4.ip.myisp.net[4.3.2.1]: TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
...
May 22 19:10:45 myserver postfix/submission/smtpd[16779]: Read 22 chars: EHLO [192.168.0.101]??
...
May 22 19:10:45 myserver postfix/submission/smtpd[16779]: Read 49 chars: AUTH PLAIN AHVzZXIxQG15c2VydmVyLm5sAHBp
May 22 19:10:48 myserver postfix/submission/smtpd[16779]: warning: SASL authentication failure: Password verification failed
May 22 19:10:48 myserver postfix/submission/smtpd[16779]: warning: ip-1.2.3.4.ip.myisp.net[4.3.2.1]: SASL PLAIN authentication failed: authentication failure
May 22 19:10:48 myserver postfix/submission/smtpd[16779]: Write 64 chars: 535 5.7.8 Error: authentication failed:
...
May 22 19:10:48 myserver postfix/submission/smtpd[16779]: Read 12 chars: AUTH LOGIN??
May 22 19:10:48 myserver postfix/submission/smtpd[16779]: Write 18 chars: 334 VXNlcm5hbWU6??
...
May 22 19:10:50 myserver postfix/submission/smtpd[16779]: warning: ip-1.2.3.4.ip.myisp.net[4.3.2.1]: SASL LOGIN authentication failed: authentication failure
May 22 19:10:50 myserver postfix/submission/smtpd[16779]: Write 64 chars: 535 5.7.8 Error: authentication failed:
...
May 22 19:10:52 myserver postfix/submission/smtpd[16779]: disconnect from ip-1.2.3.4.ip.myisp.net[4.3.2.1] ehlo=2 starttls=1 auth=0/2 quit=1 commands=4/6

+很有趣... EHLO 就没意思了?记录的 base64 被截断了?然后是“密码验证失败”,但没有关于哪部分失败的详细信息EHLOAUTH PLAIN ...myserver

我找不到比这更多的调试了。系统日志、邮件日志、身份验证日志、mysql 日志。所有配置文件都很大,所以我没有添加大部分。我跟着http://flurdy.com/docs/postfix/非常准确,并且对每个步骤进行了多次验证,所以这就是我得到的。除了 clear 与 crypt,我对此进行了几次更改。

有什么好主意吗?

答案1

我认为它有效……天哪,感觉真好!现在要弄清楚在哪里可以禁用这种大量的调试……

解决方案:https://unix.stackexchange.com/a/417882/43000

而且我还从 PAM 更改为 Postfix 的 SQL 插件(“auxprop sql”?):http://www.postfix.org/SASL_README.html#auxprop_sql因为我不想要加密密码。

现在

postfix/submission/smtpd[16560]: Read 49 chars: AUTH PLAIN AHVzZXIxQG15c2VydmVyLm5sAHBp
postfix/submission/smtpd[16560]: warning: SASL authentication failure: Password verification failed
postfix/submission/smtpd[16560]: warning: ip-1-2-3-4.ip.prioritytelecom.net[4.3.2.1]: SASL PLAIN authentication failed: authentication failure
postfix/submission/smtpd[16560]: Write 64 chars: 535 5.7.8 Error: authentication failed:

我明白了

postfix/submission/smtpd[23504]: Read 49 chars: AUTH PLAIN AHVzZXIxQG15c2VydmVyLm5sAHBp
postfix/submission/smtpd[23504]: Write 37 chars: 235 2.7.0 Authentication successful??

我不知道发生了什么??,但是的,它似乎是成功了。

它甚至将已发送的邮件复制到已发送邮件文件夹几次,但现在不再如此(Thunderbird 永远挂起)。

相关内容