LINUX.ORG.RU

Проблема с авторизацией пользователей через 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 ★★★★ ()