Порты свежие, всё обновлено.
Клиентский компьютер windows 10. введён в домен, на шары заходит. Почтовый клиент Thunderbird
Dovecot собран с поддержкой GSSAPI_HEIMDAL. Пользователи хранятся в AD самбы.
шифрование пока не делал.
без кербероса и гссапи, чистым плайнтекстом, тандербирд работает. Отправляет, принимает и получает почту и по рор3 и по имап.
Но хочется то прозрачной авторизации, чтобы не заморачиваться со сменой пароля на почтовых клиентах при смене пароля в AD.
Авторизация с использованием билетов кербероса представлялась самой естественной.
А вот тут начались проблемы.
сделал всё по мануалу от wiki.dovecot.org
получаю dovecot.keytab
в тандербирде ставлю настройки "метод аутентификации - kerberos/gssapi"# ktutil -k /usr/local/etc/dovecot.keytab list
/usr/local/etc/dovecot.keytab:
Vno Type Principal Aliases
8 aes256-cts-hmac-sha1-96 imap/dc1.pisk.npo@PISK.NPO
8 aes128-cts-hmac-sha1-96 imap/dc1.pisk.npo@PISK.NPO
8 arcfour-hmac-md5 imap/dc1.pisk.npo@PISK.NPO
8 des-cbc-md5 imap/dc1.pisk.npo@PISK.NPO
8 des-cbc-crc imap/dc1.pisk.npo@PISK.NPO
klist на клиентском компе говорит, что билет получен,
- Клиент: larchik @ PISK.NPO
Сервер: imap/dc1.pisk.npo @ PISK.NPO
Тип шифрования KerbTicket: RSADSI RC4-HMAC(NT)
флаги билета 0x40a80000 -> forwardable renewable pre_authent 0x80000
Время начала: 11/16/2017 16:00:37 (локально)
Время окончания: 11/17/2017 2:00:37 (локально)
Время продления: 11/23/2017 16:00:37 (локально)
Тип ключа сеанса: RSADSI RC4-HMAC(NT)
Флаги кэша: 0
Вызванный центр распространения ключей: dc1.pisk.npo
Билет Kerberos/GSSAPI не был принят IMAP сервером "larchik@pisk.npo"
проверьте, что Вы вошли в Kerberos/GSSAPI реалм.
в логах довекота следующее
- Nov 16 17:21:37 auth: Debug: Loading modules from directory: /usr/local/lib/dovecot/auth
Nov 16 17:21:37 auth: Debug: Module loaded: /usr/local/lib/dovecot/auth/lib20_auth_var_expand_crypt.so
Nov 16 17:21:37 auth: Debug: Read auth token secret from /var/run/dovecot/auth-token-secret.dat
Nov 16 17:21:37 auth: Debug: auth client connected (pid=36366)
Nov 16 17:21:37 auth: Debug: client in: AUTH 1 GSSAPI service=imap session=TxyDVhpeFOfAqAEC lip=192.168.0.2 rip=192.168.1.2 lport=143 rport=59156
Nov 16 17:21:37 auth: Debug: gssapi(?,192.168.1.2,<TxyDVhpeFOfAqAEC>): Using all keytab entries
Nov 16 17:21:37 auth: Debug: client passdb out: CONT 1
Nov 16 17:21:37 auth: Debug: client in: CONT 1 бла-бла-бла
Nov 16 17:21:37 auth: Debug: gssapi(larchik@pisk.npo,192.168.1.2,<TxyDVhpeFOfAqAEC>): security context state completed.
Nov 16 17:21:37 auth: Debug: client passdb out: CONT 1 бла-бла-бла
Nov 16 17:21:37 auth: Debug: client in: CONT 1 (previous base64 data may contain sensitive data)
Nov 16 17:21:37 auth: Debug: gssapi(larсhik@pisk.npo,192.168.1.2,<TxyDVhpeFOfAqAEC>): Negotiated security layer
Nov 16 17:21:37 auth: Debug: client passdb out: CONT 1 бла-бла-бла
Nov 16 17:21:37 auth: Debug: client in: CONT 1 бла-бла бла (previous base64 data may contain sensitive data)
Nov 16 17:21:37 auth: Info: gssapi(larchik@pisk.npo,192.168.1.2,<TxyDVhpeFOfAqAEC>): While gss_import_name: Miscellaneous failure (see text)
Nov 16 17:21:37 auth: Info: gssapi(larchik@pisk.npo,192.168.1.2,<TxyDVhpeFOfAqAEC>): no authz_name
Nov 16 17:21:39 auth: Debug: client passdb out: FAIL 1 user=larchik@pisk.npo original_user=larchik@PISK.NPO
Nov 16 17:21:39 imap-login: Info: Disconnected (auth failed, 1 attempts in 2 secs): user=<larchik@pisk.npo>, method=GSSAPI, rip=192.168.1.2, lip=192.168.0.2, session=<TxyDVhpeFOfAqAEC>
и что тут делать?
настройки довекота.
# dovecot -n
# 2.2.33.2 (d6601f4ec): /usr/local/etc/dovecot/dovecot.conf
# OS: FreeBSD 11.1-RELEASE amd64 ufs
auth_debug = yes
auth_debug_passwords = yes
auth_default_realm = pisk.npo
auth_gssapi_hostname = $ALL
auth_krb5_keytab = /usr/local/etc/dovecot.keytab
auth_mechanisms = plain login gssapi
auth_verbose = yes
auth_verbose_passwords = yes
disable_plaintext_auth = no
first_valid_uid = 3000
last_valid_uid = 3000
log_path = /var/log/dovecot.log
mail_gid = vmail
mail_location = maildir:/usr/home/Maildir/%u/mail:LAYOUT=fs
mail_uid = vmail
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
}
passdb {
driver = pam
}
service auth-worker {
user = $default_internal_user
}
service auth {
unix_listener auth-userdb {
group = vmail
mode = 0666
user = vmail
}
}
ssl = no
userdb {
args = uid=vmail gid=vmail
driver = passwd
override_fields = home=/home/Maildir/%d/%u
}