Назад | Перейти на главную страницу

Ошибка Cyrus sasl - «0: НЕТ сбоев аутентификации» в Debian 9

Я пытаюсь заставить работать гибридную установку IMAP exim / cyrus. Постфикс не использую, он не устанавливается. ОС - это Debian 9 как на x64, так и на Raspberry Pi (Raspbian Scratch).

Я выполнил установку:

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 Краткое руководство.

Я застрял в точке:

testsaslauthd -u imapuser -p secret

описано в Разделе 4 статьи выше, и вместо того, чтобы получить ОК «Успех», я получил ошибку:

connect() : No such file or directory

Это означало, что я неправильно прочитал комментарий / etc / default / saslauthd о запуске. вы ДОЛЖНЫ отредактировать это, чтобы демон запустился правильно. Но теперь я получаю

0: NO "authentication failed"

но только на сервере x64. Pi выдает сообщение ОК.

[Edit 05/10/2018 22:18 BST] Должен признать, что я пытался установить Kolab Установка Kolab 16 на Debian 9 на x64 ранее в тот же день, но мне пришлось отступить, когда я обнаружил, что ему нужен постфикс. Это должно быть exim. Мне пришлось потратить пару часов на уборку оставшегося после него беспорядка. Однако Raspberry Pi не постигла такая участь.

Любые идеи приветствуются.

Ответ заключается в том, что я пропустил шаг на 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 sasldb. Это исправлено с помощью MECHANISMS = "sasldb" в файле / etc / default / saslauthd. Я прочитал инструкции и недостаточно внимательно следил за ними, после попытки восстановить повреждение от неработающей деинсталляции 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}}

поскольку смотрю на исходный код exim в expand.c. Это было задокументировано только в исходном коде:

Для хостинга виртуальных почтовых ящиков с / 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# 

И большой GOTCHA с OpenSSL, если вы наберете заглавную R, он перейдет в последовательность повторного согласования, поэтому в приведенном выше примере «mail from:» и «rcpt to:» в нижнем регистре.

[Edit 07/10/2018 15:42] Последняя часть того, как все это работает, находится здесь:

Заставляем Exim LMTP в Cyrus работать

Теперь это работает как мечта.