Автор Тема: Cyrus SASL [Решено]  (Прочитано 1838 раз)

Оффлайн grumbler

  • alt linux team
  • ***
  • Сообщений: 126
Cyrus SASL [Решено]
« : 06.03.2016 20:15:45 »
Пытаюсь настроить Cyrus-IMAPD в Centaurus P7. Установил cyrus-imapd, cyrus-sasl и web-cyradm.

Cоздал пользователя cyrus, у него сразу создались две записи в sasldb - с паролем и с OTP:
[root@servmul web-cyradm]# saslpasswd2 cyrus
Password:
Again (for verification):
[root@servmul ~]# sasldblistusers2
cyrus@servmul: cmusaslsecretOTP
cyrus@servmul: userPassword

Подключаюсь программой cyradm - не пускает, в /var/log/auth/all ошибка аутентификации PAM:
Mar  6 21:46:44 servmul saslauthd[35681]: pam_tcb(imap:auth): Authentication failed for cyrus from (uid=0)
Mar  6 21:46:46 servmul saslauthd[35681]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure
Mar  6 21:46:46 servmul saslauthd[35681]: do_auth         : auth failure: [user=cyrus] [service=imap] [realm=] [mech=pam] [reason=PAM auth error]

В /etc/pam.d/imap настройка по умолчанию:
#%PAM-1.0
auth substack system-auth
account substack system-auth
Это "system-auth" меня смущает.

Что самое смешное, с cyrus я раньше работал и всё получалось, но тут не выходит.
« Последнее редактирование: 07.03.2016 11:21:52 от grumbler »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Re: Cyrus SASL
« Ответ #1 : 06.03.2016 21:12:23 »
По умолчанию там без saslauthd. Пользвателя cyrus надо добавить в группу sasl, чтобы он мог читать /etc/sasl2/sasldb2.
Это "system-auth" меня смущает.
Проверил, есть у меня это, но не мешает. Для cyradm используется cyrus@servmul, или cyrus ? Там есть зависимость от включения/выключения опции поддержки виртуальных доменов, кажется.
« Последнее редактирование: 06.03.2016 21:23:13 от asy »

Оффлайн grumbler

  • alt linux team
  • ***
  • Сообщений: 126
Re: Cyrus SASL
« Ответ #2 : 07.03.2016 10:21:18 »
По умолчанию там без saslauthd. Пользователя cyrus надо добавить в группу sasl, чтобы он мог читать /etc/sasl2/sasldb2.
В пакете cyrus-imapd в скрипте preinstall пользователь включен в группу sasl при его создании:
/usr/sbin/useradd -g cyrus -G sasl -c "Cyrus IMAP Server" -d /var/lib/imap \
  -s /dev/null -r cyrus 2> /dev/null ||:
Кстати, там сделано некорректно, потому что группа может и не существовать: зависимость от cyrus-sasl отсуствует в cyrus-imapd.

Для cyradm используется cyrus@servmul, или cyrus ? Там есть зависимость от включения/выключения опции поддержки виртуальных доменов, кажется.

Пробовал и так, и эдак, безрезультатно.


Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Re: Cyrus SASL
« Ответ #3 : 07.03.2016 10:48:46 »
В пакете cyrus-imapd в скрипте preinstall пользователь включен в группу sasl при его создании:
/usr/sbin/useradd -g cyrus -G sasl -c "Cyrus IMAP Server" -d /var/lib/imap \
  -s /dev/null -r cyrus 2> /dev/null ||:
А, точно, запись в  changelog от 2008-11-01.
Кстати, там сделано некорректно, потому что группа может и не существовать: зависимость от cyrus-sasl отсуствует в cyrus-imapd.
Нет. Группа создаётся в %pre пакета libsasl2, а на него зависимость есть.
Пробовал и так, и эдак, безрезультатно.
У меня работает, но всё достаточно давно установлено, только обновляется. Могу завтра попробовать поставить с нуля. Какой вариант надо, с виртуальными доменами, или нет ? Напишу, что делал.

Оффлайн grumbler

  • alt linux team
  • ***
  • Сообщений: 126
Re: Cyrus SASL
« Ответ #4 : 07.03.2016 11:05:18 »
Пробовал и так, и эдак, безрезультатно.
Поправка. Когда указываю логин с доменом (cyradm -u cyrus@servmul), аутентификация не проходит, но в логе другая информация:
Mar  7 12:47:54 servmul perl: attempting client step after doneflag
Mar  7 12:48:56 servmul perl: attempting client step after doneflag
В messages есть ещё:
Mar  7 13:08:01 servmul imap[6822]: badlogin: localhost.localdomain [127.0.0.1] PLAIN [SASL(-13): authentication failure: cross-realm login cyrus@servmul denied]
Могу завтра попробовать поставить с нуля. Какой вариант надо, с виртуальными доменами, или нет ? Напишу, что делал.

Это было бы прекрасно! Я уже собрался продираться через всю документацию.
Нужно с виртуальными доменами.
Конечно, я могу повторить старую конфигурацию, но там был cyrus + sendmail и аутентификация без PAM, разделение по доменам проводил sendmail.
« Последнее редактирование: 07.03.2016 11:09:19 от grumbler »

Оффлайн grumbler

  • alt linux team
  • ***
  • Сообщений: 126
Re: Cyrus SASL
« Ответ #5 : 07.03.2016 11:21:22 »
Уф! Разобрался. Ответ тут:
Нужно было в /etc/imapd.conf вставить:
loginrealms: servmul

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Re: Cyrus SASL
« Ответ #6 : 07.03.2016 11:32:45 »
Конечно, я могу повторить старую конфигурацию, но там был cyrus + sendmail и аутентификация без PAM, разделение по доменам проводил sendmail.
А с Sendmail проще всего, кстати. И не надо заставлять  sendmail делить, его дело спросить у cyrus-imap. У Cyrus есть сервис smmapd, его надо запустить, sendmail.cf собрать из sendmail-cyrus-imap-mailertable.mc (в пакете sendmail-cf лежит). Ещё почитать sendmail-README.cyrus-imap. Авторизацию у Sendmail сделать через saslauthd, через rimap. В итоге, пользователи заводиться будут только в Cyrus-IMAP, там же квоты.
« Последнее редактирование: 07.03.2016 11:57:06 от asy »