Kinit nie połączy się z serwerem domeny: dziedzina nie jest lokalna dla KDC podczas uzyskiwania wstępnych poświadczeń

13

Konfiguruję środowisko testowe, w którym klienci Linux (Ubuntu 10.04) uwierzytelnią się na serwerze domeny Windows Server 2008 R2.

Postępuję zgodnie z oficjalnym przewodnikiem Ubuntu, aby skonfigurować klienta Kerberos tutaj: https://help.ubuntu.com/community/Samba/Kerberos , ale napotkałem problem podczas uruchamiania kinitpolecenia połączenia z serwerem domeny.

Polecenie używam jest: kinit [email protected]. To polecenie zwraca następujący błąd:

Realm not local to KDC while getting initial credentials. Niestety nie mogę znaleźć nikogo innego w wynikach wyszukiwania Google, w których wystąpił ten dokładnie błąd, więc nie mam pojęcia, co to znaczy.

Klient może wysłać polecenie ping do nazwy hosta serwera, więc serwer DNS wskazuje serwer domeny.

Poniżej znajduje się mój plik 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

Jak mogę poprawić te błędy? Byłbym bardzo wdzięczny za wszelką możliwą pomoc!

Phanto
źródło

Odpowiedzi:

12

Czy Twoja nazwa domeny jest DS.DOMAIN.COMpo prostu DOMAIN.COM?

W swoich domenach musisz je dopasować, więc zakładając, że DS.DOMAIN.COM jest Twoją domeną, musisz zmienić:

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

do

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

Jeśli jednak twoja domena jest naprawdę DOMAIN.COM, musisz zmienić swój plik krb5.conf, aby wyglądał następująco:

[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

A potem chciałbyś kinittak:kinit [email protected]

Zypher
źródło
headdesk Tam było, patrząc na mnie jak oczywistą rzecz. KURSU ad.domain.com = AD.DOMAIN.COM powinien tam być. Gaah
sysadmin1138
@sysadmin: Nie martw się ... akurat buduję zintegrowany z serwerem SMB serwer AD i wpatruję się w mój krb5.conf, próbując znaleźć problem, który ostatecznie jest błędem w Sambie 3.0. :-D
Zypher,
Będę musiał tego spróbować. Jednak nazwa domeny: DS.DOMAIN.COM to mój Windows Server's Hostname+DOMAIN.COM
Phanto
@Panto, musisz skorzystać z mojej niższej sugestii. określasz nazwę hosta jako domenę, która powoduje błędy. serwer kdc i / lub administrator to miejsce, w którym należy umieścić nazwę hosta.
Zypher,
3

Zagłębiając się w kod źródłowy, wygląda na to, że ten błąd zostanie zgłoszony, gdy proces negocjacji otrzyma odesłanie do innej domeny i domena ta nie jest „lokalna” lub w konfiguracji krb5.conf.

00219 / *
00220 * Jeśli backend zwrócił nazwę główną, która nie jest lokalna
00221 * dziedzina, musimy skierować klienta do tej dziedziny.
00222 * /
00223 if (! Is_local_principal (client.princ)) {
00224 / * Wejście jest odesłaniem do innej dziedziny * /
00225 status = „REFERRAL”;
00226 errcode = KRB5KDC_ERR_WRONG_REALM;
00227 mam błąd;
00228}

Co to może być, nie mogłem ci powiedzieć. Prawdopodobnie zależy to od środowiska Active Directory i tego, czy w drzewie jest wiele domen. Prawdopodobnie potrzebujesz więcej aliasów domain_realm, ale dokładnie tego nie możemy stąd powiedzieć.

sysadmin1138
źródło
2

Miałem tę samą wiadomość, używając tego samego pliku krb5.conf, który podał 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

(przepraszam, wydaje się, że nie mogę uzyskać właściwego formatowania: /)

W moim przypadku musiałem nawiązać kontakt z MYDOMAIN.LOCAL zamiast MYDOMAIN.COM. Nie jestem pewien, czy jest to spowodowane ogólnie ustawieniem uwierzytelniania w AD, czy tylko dla mojej domeny AD. Moja domena ma 2 kontrolery domeny, jeden to W2k3 R2, a drugi (ten określony jako mydc.mydomain.com w krb5.conf) to W2k8 R2. Jest to jednak inna możliwa przyczyna komunikatu „Dziedzina nie lokalna dla KDC podczas uzyskiwania początkowych poświadczeń”

zsispeo
źródło
2

Miałem to samo i stwierdziłem, że odpowiedź była tak prosta po naprawieniu konfiguracji, że nadal to mam. Dzięki logicalfuzz na linuxqustions.org.

kinit -V [email protected]
kinit: KDC reply did not match expectations while getting initial credentials

kinit -V [email protected]
Authenticated to Kerberos v5

Stolice robią tutaj różnicę. Wiem, że pokazano to w przykładach, ale chciałem to podkreślić.

użytkownik375207
źródło
miał dokładnie ten sam problem, dla mojej env przekształcenie domeny w wielkie litery działało !!
Samir Ouldsaadi
0

Wystąpił ten błąd podczas próby połączenia tego komputera z jednej domeny do innej domeny. Edycja /etc/krb5.conf również nie działała. Następnie spróbowałem następujące polecenie, aby ponownie skonfigurować rzeczy dla innej domeny

# sudo dpkg-reconfigure -plow krb5-config

z pożądanymi opcjami i ustawieniami, które przestały dawać powyższy błąd w poleceniu kinit. Zdecydowany.

vallabh
źródło
0

źle dodam to tylko dlatego, że właśnie skończyłem tutaj z powodu tego samego błędu, ale znalazłem inną poprawkę dla jeszcze innego problemu ... upewnij się, że domena jest w WSZYSTKICH KAPITACH: mó[email protected], a nie mó[email protected] ... właśnie straciłem 2 godziny życia z tego powodu ...

boiss007
źródło
0

Wiem, że to stare pytanie, ale chcę dodać do przyszłych narzędzi do rozwiązywania problemów, że moje rozwiązanie tego problemu było kombinacją wszystkich sugerowanych odpowiedzi, a także dodaniem mojego podstawowego kontrolera domeny do mojego /etc/hosts

Norr
źródło
-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

prowadzić rejestr

Alex Real
źródło
2
Dodaj odpowiednie teksty, aby wyjaśnić, jak to rozwiąże problem.
Diamant,