Kinit non si connetterà a un server di dominio: regno non locale a KDC durante il recupero delle credenziali iniziali


13

Sto configurando un ambiente testbed in cui i client Linux (Ubuntu 10.04) eseguiranno l'autenticazione su un server di dominio Windows Server 2008 R2.

Sto seguendo la guida ufficiale di Ubuntu per configurare un client Kerberos qui: https://help.ubuntu.com/community/Samba/Kerberos , ma ho riscontrato un problema durante l'esecuzione del kinitcomando per connettersi al server di dominio.

Il comando Sono in esecuzione è: kinit Administrator@DS.DOMAIN.COM. Questo comando restituisce il seguente errore:

Realm not local to KDC while getting initial credentials. Sfortunatamente, non riesco a trovare nessun altro tramite le ricerche di Google che hanno riscontrato questo errore esatto, quindi non ho idea di cosa significhi.

Il client è in grado di eseguire il ping del nome host del server, quindi il server DNS punta al server di dominio.

Di seguito è il mio file 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

Come posso correggere questi errori? Gradirei molto tutto l'aiuto che posso ottenere!

Risposte:


12

Il tuo nome di dominio è DS.DOMAIN.COMo solo DOMAIN.COM?

Nei tuoi regni devi averli abbinati, quindi supponendo che DS.DOMAIN.COM sia il tuo dominio devi cambiare:

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

per

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

Tuttavia, se il tuo dominio è veramente, DOMAIN.COMdovresti cambiare il tuo krb5.conf in modo che assomigli a:

[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

E poi ti kinitpiacerebbe così:kinit Administrator@DOMAIN.COM


Headdesk Eccolo lì, che mi fissava come una cosa ovvia. Of COURSE ad.domain.com = AD.DOMAIN.COM dovrebbe essere presente. Gaah.
sysadmin1138

@sysadmin: Non preoccuparti ... mi capita solo di creare attivamente un server SMB integrato AD e sto fissando il mio krb5.conf cercando di capire un problema che alla fine è diventato un bug in Samba 3.0. :-D
Zypher

Dovrò provare questo. Tuttavia, il nome di dominio: DS.DOMAIN.COM è il mio Windows Server's Hostname+DOMAIN.COM
Phanto

@Phanto quindi è necessario utilizzare il mio suggerimento inferiore. stai specificando un nome host come dominio che è ciò che ti dà i tuoi errori. il server kdc e / o admin è dove dovresti inserire il nome host.
Zypher,

3

Con un picco nel codice sorgente, sembra che l'errore venga generato quando il processo di negoziazione riceve un riferimento a un altro dominio e quel dominio non è "locale" o nella configurazione di krb5.conf.

00219 / *
00220 * Se il back-end ha restituito un'entità che non si trova nel locale
00221 * regno, quindi dobbiamo riferire il cliente a quel regno.
00222 * /
00223 if (! Is_local_principal (client.princ)) {
00224 / * La voce è un riferimento ad un altro regno * /
00225 status = "RIFERIMENTO";
00226 errcode = KRB5KDC_ERR_WRONG_REALM;
00227 goto errout;
00228}

Cosa potrebbe essere, non potrei dirtelo. Ciò dipende probabilmente dall'ambiente di Active Directory e dalla presenza o meno di domini nella struttura. Probabilmente avrai bisogno di più alias domain_realm, ma esattamente quello che non possiamo dire da qui.


2

Ho avuto lo stesso messaggio usando lo stesso krb5.conf fornito da 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

(mi dispiace, sembra che non riesca a ottenere una formattazione corretta: /)

Nel mio caso, dovevo avvicinarmi a MYDOMAIN.LOCAL piuttosto che MYDOMAIN.COM. Non sono sicuro che ciò sia dovuto a un'impostazione di autenticazione in AD in generale o solo per il mio dominio AD. Il mio dominio ha 2 controller di dominio, uno è W2k3 R2 e l'altro (quello specificato come mydc.mydomain.com in krb5.conf) è W2k8 R2. Ma questa è un'altra possibile causa del messaggio "Reame non locale a KDC durante il recupero delle credenziali iniziali"


2

Ho avuto la stessa cosa e ho scoperto che la risposta era così semplice dopo aver corretto la mia configurazione. Grazie a logicalfuzz su 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

Le capitali fanno la differenza qui. So che questo è mostrato negli esempi, ma volevo sottolinearlo.


ha avuto esattamente lo stesso problema, perché il mio ambiente ha trasformato il dominio in maiuscolo ha funzionato !!
Samir Ouldsaadi,

0

Ho riscontrato questo errore mentre provavo a connettere quella macchina da un dominio a un altro dominio. Anche la modifica di /etc/krb5.conf non ha funzionato. Quindi ho provato il seguente comando per riconfigurare cose per domini diversi

# sudo dpkg-reconfigure -plow krb5-config

con le opzioni e le impostazioni desiderate che hanno smesso di dare l'errore sopra riportato nel comando kinit. Risolto.


0

aggiungerò questo solo perché ho appena finito qui per lo stesso errore ma ho trovato un'altra soluzione per l'ennesimo problema ... assicurati che il dominio sia in TUTTI MAIUSCOLI: my.user@DOMAIN.LOCAL e non my.user@domain.local ... ho appena perso 2 ore della mia vita a causa di questo ...


0

So che questa è una vecchia domanda, ma desidero aggiungere per i futuri strumenti di risoluzione dei problemi che la mia risoluzione a questo problema era una combinazione di tutte le risposte suggerite, nonché l'aggiunta del mio controller di dominio primario al mio /etc/hosts


-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

tenere un registro


2
Si prega di aggiungere testi pertinenti per spiegare come questo risolverà il problema.
Diamant,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.