LINUX.ORG.RU
ФорумAdmin

Kerberos авторизация в Squid через AD

 , ,


1

2

Авторизация не проходит. Пишет

kinit: Client not found in Kerberos database while getting initial credentials

[logging]
Default = FILE:/var/log/krb5libs.log
Kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = CORP.WILLESDEN.BY
dns_lookup_realm = true
dns_lookup_kdc = true
kdc_timesync = 1
ccache_type =4
default_keytab_name = /etc/squid3/squid.keytab
default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md
default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5

[realms]
CORP.WILLESDEN.BY = {
kdc = 172.16.0.73:88

dmin_server = 172.16.0.73:749
default_domain = corp.willesden.by

}

[domain_realm]
corp.willesden.by = CORP.WILLESDEN.BY
.corp.willesden.by = CORP.WILLESDEN.BY

[appdefaults]
Pam = {
Debug = true
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false


Кейтаб делал на Win2008 вот так :

ktpass /princ HTTP/mo02vpxs02.corp.willesden.by@CORP.WILLESDEN.BY /mapuser squid_int@corp.willesden.by /pass «123456» /crypto RC4-HMAC-NT /ptype KRB5_NT_PRINCIPAL /out c:\squid.keytab

dc пингуется и по имени и по ip. Время правильное. Авторизация просто через пользователя проходит ,тикет получает.

Покажи с какими аргументами вызываешь kinit.

Можешь посмотреть в этом треде мои конфиги -рабочие, с 2008r2: Squid + win2008r2 kerberos authentification: suqid_kerb_auth не хочет видеть keytab

По мелочам, проблему не решит, но не помешает: можно попробовать kdc и admin server указать по fqdn, а не по ip.

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

kinit -V -k -t /etc/squid3/squid.keytab

пробовал заменять айпишники , ничего не меняет (( почему кейтаб не срабатывает а учетка с кейтаба отдельно, нормально проходит(

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

Пробуй

kinit -V -k -t /etc/squid3/squid.keytab HTTP/mo02vpxs02.corp.willesden.by

Без указания principal ты непонятно для кого TGT получать собрался

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

squid_int@corp.willesden.by
Этой учеткай просто авторизоваться на сервере получается , но кейтабом не получается ((
Что значит учетка именно для mo02vpxs02.corp.willesden.by ?

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

Есть в домене компьютер mo02vpxs02? У компьютеров, как и у пользователей, в домене есть учётная запись, кстати даже с паролем. Не особенно разбираюсь, но по-моему SPN к ней привязан, то есть HTTP/mo02vpxs02.corp.willesden.by - это служба HTTP на сервере mo02vpxs02. Чтобы ввести компьютер в домен, можно использовать Самбу(net ads join ...) или msktutil(она проще, но только создаёт учётку: логинить пользователей домена на никсовый сервер, шарить папки/принтеры и прочий навороченный функционал она не умеет).

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

Есть в домене компьютер mo02vpxs02?

Есть. Попробовал ваш конфиг керберос подогнать под свой т.е убрал:

[appdefaults] Pam = { Debug = true ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false

Все равно не работает (( . самба не вариант , начальник хочет именно через kerberos

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

Самба и Kerberos никак друг другу не противоречат, более того, самба его использует(насколько я понимаю, опционально). Сервер, на котором мои конфиги работают, был введён в домен с помощью samba: net ads join ... -U .... Из самбы после этого оставил работать winbind для возможности фолбека на NTLM, smbd и nmbd вырубил. Если нужен только kerberos - можно вырубить и winbind.

kinit: Client not found in Kerberos database while getting initial credentials по идее говорит о том, что учётная запись пользователя либо компьютера не найдена. Можно попробовать сбросить учётку компьютера(в Users and Computres - правый клик по компу - Reset, или что-то типа того), и заново ввести в домен через самбу. После этого перегенерить keytab, и пробовать.

Ещё могут быть проблемы с DNS: A и PTR записи для mo02vpxs02.corp.willesden.by существуют и верны? В /etc/resolv.conf указаны нужные DNS-сервера? В /etc/hosts присутствует

mo02vpxs02 mo02vpxs02.corp.willesden.by 127.0.1.1

?

Ну и банальное: kinit-y домен указывается большими буквами, как имя realm в krb.conf?

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

Ещё могут быть проблемы с DNS: A и PTR записи для mo02vpxs02.corp.willesden.by существуют и верны?

Да есть , все пингутся и через nslookup возвращает.

В /etc/resolv.conf указаны нужные DNS-сервера?


domain corp.willesden.by
search corp.willesden.by
nameserver 172.16.0.73

/etc/hosts присутствует

172.16.0.108 mo02vpxs02.corp.willesden.by mo02vpxs02
127.0.0.1 localhost

Ну и банальное: kinit-y домен указывается большими буквами, как имя realm в krb.conf?


где в команде kinit указывается имя домена :? при авторизации через кейтаб.

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

где в команде kinit указывается имя домена :? при авторизации через кейтаб

Можно попробовать HTTP/server.domain@DOMAIN. Ну это из серии «колёса пинал? а заркала протирал? ну тогда прям незнаю» :)

Попробовал пересоздать учётку компьютера и перегенерить keytab?

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

Попробовал пересоздать учётку компьютера и перегенерить keytab?


Ну у меня учетка не Пк ,а с AD так на Dc нельзя же ,создавать локал пользователя . В AD пересоздавал не раз , keytab генерил , уже кучу раз , с разными зависимостями и шифрованием ...
Уже сил нет , как это победить (
Какие ты пакеты ставил ?

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

Ну у меня учетка не Пк ,а с AD так на Dc нельзя же ,создавать локал пользователя .

Нифига не понял. Есть учётная запись пользователя, от имени которого создаётся кейтаб: ktpass /mapuser усер@домен ... И есть учётная запись _компьютера_ в домене Active Directory, для которой создаётся SPN вида HTTP/какой-то-там-сервер. В контейнере Computers должна быть. По-умолчанию там все компьютеры домена, кроме контроллеров домена, которые в Domain Controllers. Смотреть в оснастке Users and Computers. Если учётки <какой-то-там-сервер> нет, или она не валидна - SPN HTTP/какой-то-там-сервер будет кривой. Создать учётку можно двумя способами: msktutil(проще, но надо собирать стороннюю утилиту) и samba - так делал я: net ads join -D DOMAIN.RU -U user@DOMAIN.RU

Пакеты: squid samba krb3-user, вроде всё.

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

2 вариант так сделал их оба . 1. У меня из-за кучи попыток было создано 5 SPN записей на DC .Можно проверить их через команду setspn -Q «principal». Все их удалил. И сделал одну верную 2. Кейтаб генерировал для компа . AD в Computers создал комп и обозвал его точно так же как и имя проксика .

ktpass -princ HTTP/mo02vpxs02.corp.willesden.by@CORP.WILLESDEN.BY -mapuser mo02vpxs02$@CORP.WILLESDEN.BY -crypto all +rndpass -ptype KRB5_NT_PRINCIPAL -out c:\squid.keytab

Обязательно перед @ нужен знак $ , что бы он понял что это пк а не user

3. На проксике через kutil с начало , открыл кейтаб , потом пересохранил с новым именем. Но не знаю наверно это не обязательно делать ,т.к проверял и старый и пересозданный кейтабы работаю.

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