Sendmail
如何使用 saslpasswd2 為不同的機制生成條目?
我正在努力在
sasldb2.db
. 如果我使用正常saslpasswd2 -c user
根據 sasldblistusers2,我得到了一條記錄:
user@my.example.com: 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 和帶有 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 主機上。