Cyrus sasl 錯誤 - ‘‘0: NO authentication failed’ 在 Debian 9 上
我正在嘗試使混合 exim/cyrus IMAP 設置正常工作。我不使用postfix,它沒有安裝。作業系統是 x64 和 Raspberry Pi(Raspbian Scratch)上的 Debian 9。
我已經執行了安裝:
apt-get install cyrus-common cyrus-doc cyrus-pop3d cyrus-imapd cyrus-admin cyrus-murder cyrus-replication cyrus-nntpd cyrus-caldav cyrus-clients cyrus-dev libcyrus-imap-perl sasl2-bin
並按照Cyrus Quickstart Guide頁面上的說明進行操作。
我被困在這一點上:
testsaslauthd -u imapuser -p secret
在上面文章的第 4 節中描述,而不是獲得 OK “成功”,我得到一個錯誤:
connect() : No such file or directory
這意味著我誤讀了 /etc/default/saslauthd 關於啟動的評論。您必須編輯它以使守護程序正確啟動。但現在我明白了
0: NO "authentication failed"
但僅在 x64 伺服器上。Pi 給出 OK 消息。
$$ Edit 05/10/2018 22:18 BST $$我必須承認,當天早些時候我曾嘗試在 x64上的 Debian 9上安裝 Kolab 16 安裝,但當我發現它需要後綴時不得不退出。應該是exim 我不得不花幾個小時清理它留下的爛攤子。然而,樹莓派並沒有遭受這種命運。 任何想法都會受到歡迎。
答案是我在 x64 上錯過了一步。
Kolab 解除安裝刪除了我的
/etc/default/saslauthd
文件,我必須從 Raspberry Pi 上傳一個新副本。
如果你看到這樣的東西:
root@example:/var/run/saslauthd# ps -deaf | grep sasl root 1559 1 0 Oct05 ? 00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5 root 1560 1559 0 Oct05 ? 00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5 root 1561 1559 0 Oct05 ? 00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5 root 1562 1559 0 Oct05 ? 00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5 root 1563 1559 0 Oct05 ? 00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5 root 21671 21496 0 00:56 pts/1 00:00:00 grep sasl
注意**-a pam**,它應該是**-a sasldb**。這是由 /etc/default/saslauthd 文件中的 MECHANISMS=“sasldb” 修復的。在嘗試修復損壞的 Kolab 解除安裝造成的損壞後,我閱讀了說明並且沒有足夠嚴格地遵循它們。
$$ Edit 07/10/2018 01:56 $$進入下一階段時的其他資訊: 我已在https://github.com/Exim/exim/wiki/AuthenticatedSmtpUsingSaslauthd更新頁面以添加“領域”參數
server_condition = ${if saslauthd{{${local_part:$auth1}}{$auth2}{}{${domain:$auth1}}}{1}{0}}
因為在expand.c 中查看了exim 的來源。這僅記錄在原始碼中:
對於使用 /etc/default/saslauthd:MECHANISMS=“sasldb” 的虛擬郵箱託管,使用 LOGIN 身份驗證器,並且您的登錄名格式為 username@example.com,您需要提取域部分並將其作為“領域”參數如下:
// From the source code comment in expand.c ${if saslauthd {{username}{password}{service}{realm}} {yes}{no}}
您可以使用 cyrus 測試伺服器外殼上的使用者名和密碼,例如
testsaslauthd -u username -r example.com -p secret
它不適用於
testsaslauthd -u username@example.com -p secret
我現在遇到的問題是郵件卡在 exim 中並且 lmtp 無法正常工作。
如果你已經到了這個程度,如果你使用 OpenSSL,你應該能夠得到類似的東西,來驗證它:
root@raspberrypi:/usr/local/src/exim-4.91/src# openssl s_client -starttls smtp -crlf -connect mx.yourbigserver.co.uk:25 CONNECTED(00000003) depth=0 C = GB, ST = Somewhere, L = Else, O = yourbigserver.co.uk, CN = Your Name, emailAddress = you@yourpersonalemailserver.co.uk verify error:num=18:self signed certificate verify return:1 depth=0 C = GB, ST = Somewhere, L = Else, O = yourbigserver.co.uk, CN = Your Name, emailAddress = you@yourpersonalemailserver.co.uk verify return:1 --- Certificate chain 0 s:/C=GB/ST=Somewhere/L=Else/O=yourbigserver.co.uk/CN=Your Name/emailAddress=you@yourpersonalemailserver.co.uk i:/C=GB/ST=Somewhere/L=Else/O=yourbigserver.co.uk/CN=Your Name/emailAddress=you@yourpersonalemailserver.co.uk --- Server certificate -----BEGIN CERTIFICATE----- MIID <snip/> == -----END CERTIFICATE----- subject=/C=GB/ST=Somewhere/L=Else/O=yourbigserver.co.uk/CN=Your Name/emailAddress=you@yourpersonalemailserver.co.uk issuer=/C=GB/ST=Somewhere/L=Else/O=yourbigserver.co.uk/CN=Your Name/emailAddress=you@yourpersonalemailserver.co.uk --- No client certificate CA names sent Peer signing digest: SHA512 Server Temp Key: X25519, 253 bits --- SSL handshake has read 1776 bytes and written 302 bytes Verification error: self signed certificate --- New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384 Session-ID: xxxxxxxxxxxxxxxxxxxx Session-ID-ctx: Master-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx PSK identity: None PSK identity hint: None SRP username: None Start Time: 1538862964 Timeout : 7200 (sec) Verify return code: 18 (self signed certificate) Extended master secret: yes --- 250 HELP EHLO test.com 250-myserver.myprovider.net Hello me.my.example.com [8.8.8.8] 250-SIZE 36700160 250-8BITMIME 250-PIPELINING 250-AUTH PLAIN LOGIN 250-CHUNKING 250-PRDR 250 HELP AUTH LOGIN 334 VXNlcm5hbWU6 dXNlcm5hbWVAZXhhbXBsZS5jb20= 334 UGFzc3dvcmQ6 c2VjcmV0 235 Authentication succeeded mail from:username@example.com 250 OK rcpt to:username@example.com 250 Accepted DATA 354 Enter message, ending with "." on a line by itself Hello 2! . 250 OK id=1g8uZF-00027o-TS quit 221 myserver.myprovider.net closing connection closed root@raspberrypi:/usr/local/src/exim-4.91/src#
而帶有 OpenSSL 的大 GOTCHA,如果你輸入一個大寫的 R,它會進入一個重新協商的序列,這就是為什麼在上面的例子中“mail from:”和“rcpt to:”都是小寫的。
$$ Edit 07/10/2018 15:42 $$讓這一切正常工作的最後一部分在這裡: 讓 Exim LMTP 到 Cyrus 工作
它現在就像一個夢。