我在 RedHat 7.1 机器上运行 sendmail。我想将其配置为使用 PLAIN 或 CRAM-MD5 进行身份验证。我让它与 PLAIN 一起工作(所以我知道客户端可以工作,我的用户名/密码正确,等等)但是 CRAM-MD5 总是返回“535 5.7.0 authentication failed”。为了测试,我使用了一个简单的 python 脚本,它使用了 smtplib 模块;我假设他们对 CRAM-MD5 的实现是正确的。
它以“AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN”响应 EHLO,并在我发送“AUTH CRAM-MD5”时发送质询,因此它确实接受 CRAM-MD5 请求,但拒绝对其进行身份验证。
我知道 CRAM-MD5 要求服务器可以访问明文密码;有可能没有吗?我怎么知道,如果没有,我该如何配置机器以使其正常运行?
我已将用户名/密码添加到 /etc/mail/authinfo 并运行map hash /etc/mail/authinfo < /etc/mail/authinfo
. /var/log/maillog 文件中没有错误消息。
根据sasl 系统管理员文档,
但是,一些供应商可能会在编译时更改事物的位置,因此
strings
在 sasl 二进制文件中或strace
可能有必要显示确切saslauthd
的位置。这可能会帮助某人...
当你运行
sendmailconfig
它时,它会说......“不幸的是,没有自动迁移到 /etc/sasldb2 的方法”翻译给我:它有问题。
所以我只是删除了 sasldb2 (无论如何都认为它搞砸了。)也许这不是必需的,也许我只需要将我的用户添加到它?
无论如何,我运行
saslpasswd2
了我假设创建一个没有用户的空数据库。在我运行之前,用户身份验证不起作用......saslpasswd2 -c username
提示输入密码。这就像一个魅力:-)
我正在使用带有 sasl2-bin 的 Debian 9,这是
sendmailconfig
推荐的。