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

Я устанавливаю среду тестирования, в которой клиенты 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

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

9 ответов

Ваше доменное имя 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

В исходном коде создается впечатление, что ошибка возникает, когда процесс согласования получает ссылку на другой домен, и этот домен не является "локальным" или в вашей конфигурации 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, но мы не можем сказать, что именно это.

У меня было то же самое, и я обнаружил, что ответ был таким простым после исправления моей конфигурации, у меня все еще было это. Благодаря 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

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

У меня было то же сообщение, использующее тот же 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 при получении начальных учетных данных"

Конфигурации из этой статьи мне помогли.

Содержимое правильно настроенного файла krb5.conf с именем области, например:

      [root@HOST]# cat $INFA_HOME/services/shared/security/krb5.conf
[libdefaults]
#specifies the default realm that needs to be picked up for authentication
default_realm = INFA.COM
dns_lookup_realm = true
dns_lookup_kdc = true

#this is a mandatory flag as we need to obtain forwardable tickets from the KDC
forward = true
forwardable = true

[realms]
#Realm configuration with different possible way to be resolved
INFA.COM = {
admin_server = WINDOWSHOST.INFA.COM
kdc = ​WINDOWSHOST.INFA.COM
}

[domain_realm]
infa.com = INFA.COM
.infa.com = INFA.COM​

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

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

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

# sudo dpkg-reconfigure -plow krb5-config

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

[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

вести реестр

Другие вопросы по тегам