Sendmail

如何使用 saslpasswd2 為不同的機制生成條目?

  • October 27, 2017

我正在努力在sasldb2.db. 如果我使用正常

saslpasswd2 -c user

根據 sasldblistusers2,我得到了一條記錄:

user@my.example.com:    userPassword

這個頁面讓我相信,每個機制都應該有一條線(DIGEST-MD5CRAM-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 和帶有 2.1.25 的 Ubuntu 進行了嘗試……我做錯了什麼?


我需要CRAM-MD5,因為無需進一步重新配置,我的 sendmail 僅將其DIGEST-MD5列為可接受的AUTH機制。顯然,iPhone 不支持DIGEST-MD5. 而我這樣做只是為了幾部 iPhone——普通電腦已經通過我自己的權威機構頒發的客戶端 SSL 證書對自己進行身份驗證。


好的,顯然,CRAM-MD5身份驗證一直都是成功的——儘管沒有被sasldblistusers2. 我提出了一個新問題——儘管身份驗證成功,為什麼 sendmail 拒絕中繼。

我已經設法讓它與以下內容一起工作:

/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 test@mail.example.com, password and the above challenge text>
235 2.0.0 OK Authenticated

您可能可以將設置降低到絕對最小值,但以上對我有用。這是在 RHEL 7 主機上。

引用自:https://serverfault.com/questions/877434