Kinit не будет подключаться к серверу домена: область не является локальной для KDC при получении начальных учетных данных

13

Я устанавливаю среду тестирования, в которой клиенты Linux (Ubuntu 10.04) будут проходить аутентификацию на доменном сервере Windows Server 2008 R2.

Я следую официальному руководству Ubuntu по настройке клиента Kerberos здесь: https://help.ubuntu.com/community/Samba/Kerberos , но у меня возникла проблема при запуске kinitкоманды для подключения к серверу домена.

Команда , которую я бегу это: kinit Administrator@DS.DOMAIN.COM. Эта команда возвращает следующую ошибку:

Realm not local to KDC while getting initial credentials, К сожалению, я не могу найти кого-то еще через поиски Google, которые столкнулись с этой ошибкой, поэтому я понятия не имею, что это значит.

Клиент может пропинговать имя хоста сервера, поэтому DNS-сервер указывает на сервер домена.

Ниже мой файл krb5.conf:

[libdefaults]
default = DS.DOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc true

[realms]
    DS.DOMAIN.COM = {
        kdc = ds.domain.com:88
        admin_server = ds.domain.com
        default_domain = domain.com
    }

[domain_realm]
    .domain.com = DS.DOMAIN.COM
    domain.com = DS.DOMAIN.COM

Как я могу исправить эти ошибки? Я был бы очень признателен за любую помощь!

Phanto
источник

Ответы:

12

Ваше доменное имя DS.DOMAIN.COMили просто DOMAIN.COM?

В ваших областях вам нужно, чтобы они совпадали, поэтому при условии, что DS.DOMAIN.COM является вашим доменом, вам нужно изменить:

[domain_realm]
    .domain.com = DS.DOMAIN.COM
    domain.com = DS.DOMAIN.COM

в

[domain_realm]
    .ds.domain.com = DS.DOMAIN.COM
    ds.domain.com = DS.DOMAIN.COM

Однако, если ваш домен действительно, DOMAIN.COMвам нужно изменить ваш krb5.conf, чтобы он выглядел так:

[libdefaults]
default = DOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc = true

[realms]
    DOMAIN.COM = {
        kdc = ds.domain.com:88
        #You can have more than one kds, just keep adding more kdc =
        #entries
        #kdc = dsN.domain.com:88
        #Uncomment if you have a krb admin server
        #admin_server = ds.domain.com:749
        default_domain = domain.com
    }

[domain_realm]
    .domain.com = DOMAIN.COM
    domain.com = DOMAIN.COM

И тогда вы хотели kinitбы так:kinit Administrator@DOMAIN.COM

Zypher
источник
Headdesk Вот так, уставившись на меня как на очевидную вещь. Of COURSE ad.domain.com = AD.DOMAIN.COM должен быть там. Gaah.
sysadmin1138
@sysadmin: Не беспокойтесь ... я просто собираюсь активно строить интегрированный сервер AD SMB и уставился на мой krb5.conf, пытаясь выяснить проблему, которая в итоге оказалась ошибкой в ​​Samba 3.0. :-D
Zypher
Мне нужно будет попробовать это. Тем не менее, доменное имя: DS.DOMAIN.COM является моим Windows Server's Hostname+DOMAIN.COM
Phanto
@Phanto тогда вам нужно использовать мое нижнее предложение. вы указываете имя хоста в качестве домена, который дает вам ваши ошибки. Сервер KDC и / или администратора - это то место, где вы бы указали имя хоста.
Zypher
3

В исходном коде создается впечатление, что ошибка возникает, когда процесс согласования получает ссылку на другой домен, и этот домен не является «локальным» или в вашей конфигурации krb5.conf.

00219 / *
00220 * Если бэкэнд возвратил принципала, которого нет в локальном
00221 * царство, тогда мы должны отослать клиента к этому царству.
00222 * /
00223 if (! Is_local_principal (client.princ)) {
00224 / * Запись является переходом в другое царство * /
00225 status = "REFERRAL";
00226 код ошибки = KRB5KDC_ERR_WRONG_REALM;
00227 Перейти к ошибке;
00228}

Что бы это могло быть, я не могу вам сказать. Вероятно, это зависит от вашей среды Active Directory и от того, есть ли в дереве несколько доменов. Вероятно, вам нужно больше псевдонимов domain_realm, но мы не можем сказать, что именно это.

sysadmin1138
источник
2

У меня было то же сообщение, использующее тот же krb5.conf, что и Zypher:

[libdefaults]
   default = MYDOMAIN.COM
   dns_lookup_realm = true
   dns_lookup_kdc = true
   ticket_lifetime = 24h
   renew_lifetime = 7d
   forwardable = true

[realms]
MYDOMAIN.COM = {
   kdc = mydc.mydomain.com:88
   admin_server = mydc.mydomain.com:749
   default_domain = mydomain.com
}

[domain_realm]
   .mydomain.com = MYDOMAIN.COM
   mydomain.com = MYDOMAIN.COM

(извините, кажется, я не могу получить правильное форматирование: /)

В моем случае мне нужно было подключиться к MYDOMAIN.LOCAL, а не к MYDOMAIN.COM. Не уверен, что это связано с настройкой аутентификации в AD в целом или только для моего домена AD. В моем домене 2 DC, один W2k3 R2, а другой (указанный как mydc.mydomain.com в krb5.conf) - W2k8 R2. Но это еще одна возможная причина для сообщения «Область не локальна для KDC при получении начальных учетных данных»

zsispeo
источник
2

У меня было то же самое, и я обнаружил, что ответ был таким простым после исправления моей конфигурации, у меня все еще было это Благодаря logicfuzz на linuxqustions.org.

kinit -V myname@domain.net
kinit: KDC reply did not match expectations while getting initial credentials

kinit -V myname@DOMAIN.NET
Authenticated to Kerberos v5

Столицы имеют все значение здесь. Я знаю, что это показано в примерах, но я хотел подчеркнуть это.

user375207
источник
была точно такая же проблема, для моего env превращение домена в верхний регистр работал !!
Самир Улдсаади
0

Я получил эту ошибку при попытке подключить эту машину из одного домена в другой домен. Редактирование /etc/krb5.conf также не сработало. Затем я попробовал следующую команду, чтобы перенастроить вещи для другого домена

# sudo dpkg-reconfigure -plow krb5-config

с желаемыми параметрами и настройками, которые перестали выдавать вышеуказанную ошибку в команде kinit. Решено.

Vallabh
источник
0

Я добавлю это только потому, что я только что закончил здесь из-за той же ошибки, но нашел другое исправление для еще одной проблемы ... убедитесь, что домен находится во ВСЕХ CAPS: my.user@DOMAIN.LOCAL, а не my.user@domain.local ... я потерял 2 часа своей жизни из-за этого ...

boiss007
источник
0

Я знаю, что это старый вопрос, но я хочу добавить для будущих специалистов по устранению неполадок, что мое решение этой проблемы было комбинацией всех предложенных ответов, а также добавлением моего основного контроллера домена в мой /etc/hosts

Norr
источник
-1
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = DOMAIN.LOCAL
dns_lookup_kdc = true
dns_lookup_realm = true
ticket_lifetime = 24h
#default_keytab_name = /etc/squid3/PROXY.keytab

; for Windows 2003
; default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
; default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
; permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
; for Windows 2008 with AES
default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
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]
DOMAIN.LOCAL = {
kdc = dc.domain.local
admin_server = dc.domain.local
default_domain = domain.local
kpasswd_server = dc.domain.local
}

[domain_realm]
.DOMAIN.LOCAL = DOMAIN.LOCAL
DOMAIN.LOCAL = DOMAIN.LOCAL

вести реестр

Алекс Реал
источник
2
Пожалуйста, добавьте соответствующие тексты, чтобы объяснить, как это решит проблему.
Diamant