Настраиваю сервер IMAP (cyrus-imapd), который должен будет обслуживать
несколько доменов. База пользователей хранится в LDAP, стало быть,
sasl_pwcheck_method использую saslauthd.


Вопрос: умеет ли cyrus-imapd использовать realms при аутентификации при
помощи saslauthd ?
Если умеет, то что у меня не так? (подробный разбор полетов см. в конце письма)

Или может быть, можно как-то обойтись без использования saslauthd?
База пользователей тем не менее должна быть в LDAP.
Если да, то как это настраивается?



Обещанный разбор полетов:

[r...@imap sasl2]# rpm -qa | egrep '(cyrus|sasl)'
cyrus-imapd-2.2.13-alt1.1
cyrus-sasl2-2.1.22-alt1.1.0
libsasl2-2.1.22-alt1.1.0


Saslauthd настроен нормально:

[r...@imap ~]# testsaslauthd -u testuser -p secret -r domain.ru
0: OK "Success."


Cyrus-imapd настроен на использование saslauthd с использованием метода
PLAIN (т.к. DIGEST-MD5 и CRAM-MD5 работают только вместе с auxprop):

[r...@imap ~]# grep sasl /etc/imapd.conf  | egrep -v '^#'
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN


При проверке сервера IMAPD при помощи imtest такое впечатление, что он
игнорирует realm, не передает его к saslauthd, в результате чего
аутентификация не проходит:

$ imtest -a testuser -w secret -r domain.ru web

В логах:
Apr 20 19:47:55 imap imap[20079]: accepted connection
Apr 20 19:47:55 imap saslauthd[23775]: Domain/Realm not available.
Apr 20 19:47:55 imap saslauthd[23775]: Entry not found 
((&(mail=testuser@)(myorgUserEnabled=TRUE))).
Apr 20 19:47:55 imap saslauthd[23775]: Authentication failed for testuser: User 
not found (-6)
Apr 20 19:47:55 imap saslauthd[23775]: do_auth         : auth failure: 
[user=testuser] [service=imap] [realm=] [mech=ldap] [reason=Unknown]
Apr 20 19:47:55 imap imap[20079]: badlogin: [194.85.246.67] plaintext testuser 
SASL(-13): authentication failure: checkpass failed

Обратите внимание на строчку do_auth, а точнее на ее часть [realm=]
Если бы realm передавался к saslauthd, условие поиска было бы такое:
((&([email protected])(myorgUserEnabled=TRUE)))
и аутентификация прошла бы успешно.

Точно такие же записи в логах вижу и при virtdomains в /etc/imapd.conf
выставленном в off, userid и on, так же как и в следующих вариантах
команды:

$ imtest -a [email protected] -w secret -r domain.ru web
$ imtest -a testuser -w secret web
$ imtest -a [email protected] -w secret -r domain.ru web

В чем проблема?

Если какие-то конфиги помогут -- скажите, вышлю.

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Sysadmins mailing list
[email protected]
https://lists.altlinux.org/mailman/listinfo/sysadmins

Ответить