Надеюсь, интересный вопрос.
Я запускаю набор виртуальных машин под 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.
так что похоже, что он не может быть включен по умолчанию.