Dovecot/AD-auth

Материал из ALT Linux Wiki

Dovecot поддерживает Kerberos5 используя GSSAPI. При использовании механизма Kerberos-аутентификации пропадает необходимость в файле passdb, но вам до сих пор потребуется файл userdb, для хранения специфичной пользовательской информации, например пути к их почтовым ящикам.

Эта статья предполагает, что у Вас уже есть настроенная Kerberos-область (realm) и что вы уже получили keytab-файл содержащий принципала нужного сервиса (Создание_SPN_и_Keytab_файла).

По-умолчанию Dovecot будет использовать системный keytab-файл (обычно он находится по пути /etc/krb5.keytab), изменить это можно с помощью параметра auth_krb5_keytab в конфигурационном файле /etc/dovecot/dovecot.conf. В любом случае keytab-файл должен быть доступен для чтения пользователю dovecot (или пользователю от имени которого выполняется процесс аутентификации). Если вы используете IMAP, необходимо создать принципала сервиса imap. Для POP3 необходимо создать принципала сервиса pop.

Переместим полученный keytab-файл в папку /etc/dovecot.
Изменим группу и права доступа keytab-файлу:

# chgrp dovecot /etc/dovecot/dovecot.keytab
# chmod 640 /etc/dovecot/dovecot.keytab

Убедимся что в keytab-файле есть необходимые нам ключи imap/doserver.domg.testg@DOMG.TESTG:

# klist -Kek /etc/dovecot/dovecot.keytab
Keytab name: FILE:/etc/dovecot/dovecot.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   3 imap/doserver.domg.testg@DOMG.TESTG (arcfour-hmac)  (0xada8d721251fe9f5614f7fd9bbeff919)

Для использования Kereberos-аутентификации на основе билетов добавьте в файл /etc/dovecot/conf.d/10-auth.conf следующие параметры:

auth_gssapi_hostname = "$ALL"
auth_mechanisms = gssapi
auth_krb5_keytab = /etc/dovecot/dovecot.keytab

И раскомментировать строчку:

!include auth-system.conf.ext

Также в PAM модуль /etc/pam.d/dovecot, используемый dovecot, необходимо добавить следующие строки:

auth            sufficient      pam_krb5.so
account         sufficient      pam_krb5.so

Установив необходимый pam-модуль:

# apt-get install pam_krb5

Проверим работоспособность kerberos-аутентификации. Для этого установим пакет telnet:

# apt-get install telnet

Подключимся к нашему серверу:

# telnet localhost 143
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS LOGINDISABLED AUTH=GSSAPI] Dovecot ready.

Проверим возможность аутентификации GSSAPI:

a capability
* CAPABILITY ... AUTH=GSSAPI

Проверим первичную GSS коммуникацию. "+" означает что сервер готов:

a authenticate GSSAPI
+