我正在努力创建令人满意的记录集sasldb2.db
。如果我使用常规
saslpasswd2 -c user
根据 sasldblistusers2,我得到一条记录:
[email protected]: userPassword
然而这一页让我相信,每种机制都应该有一条线(DIGEST-MD5
,,CRAM-MD5
等等)。
如果我添加-n
以避免存储纯文本(我只需要 CRAM-MD5):
saslpasswd2 -n -c user
然后 sasldblistusers2 找不到要列出的记录根本。我的saslpasswd.conf
由两行组成:
mech_list: cram-md5 digest-md5 ntlm plain
log_level: 9
我在 FreeBSD 上尝试使用 cyrus-sasl-2.1.26_12 和 Ubuntu 2.1.25...我做错了什么?
我需要,CRAM-MD5
因为如果不进一步重新配置,我的 sendmail 只会列出和DIGEST-MD5
作为可接受的AUTH
机制。而 iPhone 显然不支持DIGEST-MD5
。我这样做只是为了几部 iPhone——普通电脑已经使用我自己颁发的客户端 SSL 证书进行了身份验证。
好的,显然,CRAM-MD5
身份验证一直都是成功的——尽管没有列出sasldblistusers2
。我创建了一个新问题——为什么尽管身份验证成功,sendmail 仍然拒绝中继。
答案1
我已设法通过以下方式使其工作:
/etc/mail/sendmail.mc 具有以下设置:
define(`confLOG_LEVEL', `13')dnl
define(`confAUTH_OPTIONS', `A')dnl
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5')dnl
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5')dnl
/etc/sasl2/Sendmail.conf 包含以下内容:
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: cram-md5 digest-md5
log_level: 9
使用以下命令将用户添加到 /etc/sasldb2:
# saslpasswd2 -c -u mail.example.com -a Sendmail test
<password>
<password>
然后测试:
# sendmail -O LogLevel=14 -bs -Am
220 server.example.com ESMTP Sendmail 8.14.7/8.14.7; Tue, 24 Oct 2017 09:24:44 +0100
ehlo localhost
250-server.example.com Hello root@localhost, pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
AUTH CRAM-MD5
334 <challenge>
<generate response using [email protected], password and the above challenge text>
235 2.0.0 OK Authenticated
您可能可以将设置缩减到最低限度,但上面的方法对我来说很有效。这是在 RHEL 7 主机上。