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

Как предоставить билет Kerberos после успешной аутентификации imap от dovecot

Надеюсь, интересный вопрос.

Я запускаю набор виртуальных машин под debian 6 для создания почтового сервера / сервера совместной работы. В основном я использую dovecot, postfix, openldap и heimdal. Электронная почта хранится с использованием maildir в общей папке NFSv4.

Мои пользователи являются пользователями системы, но используют LDAP и libpam-ldap и libnss-ldap для кэширования информации об учетных данных.

Все работает как положено ну почти.

Поскольку NFS использует Kerberos, по умолчанию мои пользователи не могут получить доступ к своему почтовому хранилищу, если они не получили свой билет Kerberos.

Например, если я ничего не делаю, это ошибки, которые возникают у меня от dovecot при попытке входа в систему с использованием любого клиента imap:

31 марта 09:33:07 titan dovecot: imap-login: Login: user =, method = PLAIN, rip = 127.0.0.1, lip = 127.0.0.1, secure
31 марта 09:33:07 titan dovecot: dovecot: Fatal: chdir (/ home / emails / team / arodier /) не удалось: разрешение отклонено (euid = 1003 (arodier) egid = 1001 (red2team) missing + x perm: / home / электронные письма)
31 марта 09:33:07 titan dovecot: dovecot: child 5089 (imap) вернул ошибку 89 (фатальный сбой)

Однако, если я просто войду в консоль для пользователя "ародье", Я вижу, что получил билет, и вижу его с помощью klist:

Кеш учетных данных: ФАЙЛ: / tmp / krb5cc_1001_ywvktf
Заказчик: arodier@RED2.SRV

Выпущенный истекает основной
31 марта 09:25:55 31 марта 19:25:53 krbtgt/RED2.SRV@RED2.SRV
31 марта 09:25:57 31 марта 19:25:53 nfs/ananke.red2.srv@RED2.SRV

После того, как я просто зашел на консоль, я могу получить доступ к своей электронной почте с помощью любого клиента IMAP.

Вопрос в том:
Как мне настроить libpam (или dovecot?) Для инициализации / получения билета Kerberos после успешной аутентификации?

Спасибо за ответы.

Поскольку вы используете аутентификацию по паролю, вы сможете использовать pam-krb5 (упаковано как libpam-krb5 в Debian), чтобы получить Kerberos TGT от имени ваших пользователей. Вам нужно будет настроить pam так, чтобы служба dovecot использовала (возможно, /etc/pam.d/dovecot) или /etc/pam.d/common-* файлы (см. /usr/share/doc/libpam-krb5/README.Debian для подробностей.

Однако, поскольку вы упомянули, что если вы входите на сервер с консоли, у вас уже есть настроенный TGT, возможно, у вас уже есть libpam-krb5 установлен и используется. Если это так, это может быть просто вопрос проверки конфигурации Dovecot, чтобы убедиться, что он правильно использует PAM (в частности, конфигурация сеанса, которая, я считаю, будет частью, ответственной за настройку TGT). В прокомментированном файле dovecot.conf, на который я смотрю, говорится:

# session=yes makes Dovecot open and immediately close PAM session. Some
# PAM plugins need this to work, such as pam_mkhomedir.

так что похоже, что он не может быть включен по умолчанию.