LINUX.ORG.RU
решено ФорумAdmin

Проблема с авторизацией пользователей через kerberos

 , ,


0

2

Дратути! Был настроен и работал сервис, с авторизацией через krb5.

Генерил keytab на DC так:

ktpass -out c:\keys\prt.keytab -princ HTTP/portal.domain.ru@MY-DOMAIN.LOCAL -mapUser portal -mapOp set -pass PASS -crypto RC4-HMAC-NT -pType KRB5_NT_PRINCIPAL

Затем был написан конфиг krb5.conf

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = MY-DOMAIN.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
kdc_timesync = 1
ticket_lifetime = 24h
forwardable = true
rdns = false

default_keytab_name = /etc/prt.keytab
default_tgs_enctypes = arcfour-rc4-md5 rc4-hmac des-cbc-crc des-cbc-md5
default_tkt_enctypes = arcfour-rc4-md5 rc4-hmac des-cbc-crc des-cbc-md5
permitted_enctypes = arcfour-rc4-md5 rc4-hmac des-cbc-crc des-cbc-md5
clock_skew = 300

[realms]
MY-DOMAIN.LOCAL = {
kdc = my-dc.my-domain.local
admin_server = my-dc.my-domain.local
default_domain = my-domain.local
}

[domain_realm]
.my-domain.local = MY-DOMAIN.LOCAL
my-domain.local = MY-DOMAIN.LOCAL

[appdefaults]
autologin = true
forwardable=true
pam = {
ccache = FILE:/krb5/krb5cc_%u
}

Так же в .htaccess написал

AuthType Kerberos
KrbMethodNegotiate On
KrbMethodK5Passwd Off
KrbAuthRealms MY-DOMAIN.LOCAL
Krb5KeyTab /etc/prt.keytab
KrbServiceName HTTP
require valid-user

И еще в апаче

ServerName localhost
<Location />
    AuthType Kerberos
    Krb5Keytab /etc/prt.keytab
    KrbServiceName HTTP/portal.domain.ru@MY-DOMAIN.LOCAL
    Require valid-user
</Location>

Через несколько дней что-то пошло не так, у юзеров начались запросы авторизации в гугле хроме и было решено перевыпустить keytab. Все прошло успешно,

klist -ket /etc/prt.keytab
показывает
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   3 01.01.1970 05:00:00 HTTP/portal.domain.ru@MY-DOMAIN.LOCAL (arcfour-hmac)

Билеты выдает:

kinit -kt /etc/prt.keytab HTTP/portal.domain.ru@MY-DOMAIN.LOCAL
kvno HTTP/portal.domain.ru@MY-DOMAIN.LOCAL
HTTP/portal.domain.ru@MY-DOMAIN.LOCAL: kvno = 3
klist -e
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: HTTP/portal.domain.ru@MY-DOMAIN.LOCAL

Valid starting       Expires              Service principal
11.04.2018 18:01:32  12.04.2018 04:01:32  krbtgt/MY-DOMAIN.LOCAL@MY-DOMAIN.LOCAL
        renew until 12.04.2018 18:01:32, Etype (skey, tkt): arcfour-hmac, arcfour-hmac
11.04.2018 18:02:05  12.04.2018 04:01:32  HTTP/portal.domain.ru@MY-DOMAIN.LOCAL
        renew until 12.04.2018 18:01:32, Etype (skey, tkt): arcfour-hmac, arcfour-hmac

А в логах апача, ошибка:

gss_accept_sec_context() failed: Unspecified GSS failure.  Minor code may provide more information (, Cannot find key for HTTP/portal.domain.ru@MY-DOMAIN.LOCAL kvno 9 in keytab)

Не понимаю, что и как делать?


-crypto RC4-HMAC-NT

Не уверен, что это единственная проблема, но проблема точно. R4-HMAC считается уязвимым и давно нафиг никому не нужен. Выпускай с -crypto ALL

01.01.1970 05:00:00

чет подозрительно. должно быть время создания принципала. Расхождения по времени с сервером kerberos нет?

router ★★★★★ ()

Cannot find key for HTTP/portal.domain.ru@MY-DOMAIN.LOCAL kvno 9 in keytab)

kvno 9

Ну все же понятно. Апач ищет kvno 9, а у тебя в кейтабе kvno 3.
Неправильные ключи у тебя в кейтабе. Выгружай зайново ktpass'ом и копируй в свой кейтаб.

bigbit ★★★★★ ()
Ответ на: комментарий от pipp

KVNO постоянно увеличивается

Подымаю тему, проблема похожая. Каждые 4 часа повышается KVNO у аккаунта.

Написал скрипт, который считывает error.log апача и выдает новый KVNO. Сейчас уже KVNO 23

Из-за чего может постоянно повышаться KVNO? Учетку никто не трогает

epiphone ()
Ответ на: комментарий от epiphone

Куда же ты ее подевал? :) Дата смены пароля в AD есть, ее не может не быть.
Это атрибут pwdLastSet в LDAP, посмотреть ее можно тем же ldapsearch.
Рассказывай, как в домен заводил. Самбой небось?

SPN хранится в учетке типа компьютер или обычной пользовательской учетке? Если типа компьютер, то кто-то другой (например, самба) может работать с ней.
Для апача лучше создать отдельную пользовательскую учетку и SPN добавить в нее.

bigbit ★★★★★ ()
Последнее исправление: bigbit (всего исправлений: 1)
Ответ на: комментарий от bigbit

пароль ставится в момент ktpass. так что у меня уже перевалило за две сотни этих версий

Проблема в том, то если создать новый тикет СМогут авторизоваться только новые пользователи. А старые будут гулять со старой версией KVNO, а там время ожидания новой версии около 6000 дней/часов

epiphone ()
Ответ на: комментарий от bigbit

Проблемы нет уже 2 дня Удалил юзаря, создал чистый keytab. Настройки временного континиума для создания новый кейтабов сбросил по умолчанию. Жду и надеюсь, что не будет снова таких косяков.

epiphone ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.