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