Назад | Перейти на главную страницу

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

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

Ваше доменное имя 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      * If the backend returned a principal that is not in the local
00221      * realm, then we need to refer the client to that realm.
00222      */
00223     if (!is_local_principal(client.princ)) {
00224       /* Entry is a referral to another realm */
00225       status = "REFERRAL";
00226       errcode = KRB5KDC_ERR_WRONG_REALM;
00227       goto errout;
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 при получении начальных учетных данных».

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

# sudo dpkg-reconfigure -plow krb5-config

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

Я добавлю это только потому, что я только что закончил здесь из-за той же ошибки, но нашел другое исправление для еще одной проблемы ... убедитесь, что домен находится ВСЕМИ ЗАГЛАВНЫМИ БУКВАМИ: my.user@DOMAIN.LOCAL, а не my.user@domain.local ... я только что потерял 2 часа своей жизни из-за этого ...

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

[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

вести реестр