Kinit ne se connectera pas à un serveur de domaine: le domaine n'est pas local à KDC lors de l'obtention des informations d'identification initiales

13

Je configure un environnement de banc d'essai où les clients Linux (Ubuntu 10.04) s'authentifieront sur un serveur de domaine Windows Server 2008 R2.

Je suis le guide officiel d'Ubuntu pour configurer un client Kerberos ici: https://help.ubuntu.com/community/Samba/Kerberos , mais j'ai rencontré un problème lors de l'exécution de la kinitcommande pour se connecter au serveur de domaine.

La commande est en cours d' exécution , je suis: kinit [email protected]. Cette commande renvoie l'erreur suivante:

Realm not local to KDC while getting initial credentials. Malheureusement, je ne peux trouver personne d'autre via les recherches Google qui ont rencontré cette erreur exacte, donc je n'ai aucune idée de ce que cela signifie.

Le client est en mesure d'envoyer une requête ping au nom d'hôte du serveur, de sorte que le serveur DNS pointe vers le serveur de domaine.

Voici mon fichier 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

Comment puis-je corriger ces erreurs? J'apprécierais grandement toute l'aide que je peux obtenir!

Phanto
la source

Réponses:

12

Votre nom de domaine est-il DS.DOMAIN.COMou tout simplement DOMAIN.COM?

Dans vos domaines, vous devez les faire correspondre, donc en supposant que DS.DOMAIN.COM est votre domaine, vous devez changer:

[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

Cependant, si votre domaine est vraiment, DOMAIN.COMvous devrez changer votre krb5.conf pour qu'il ressemble à:

[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

Et puis vous le souhaitez kinit:kinit [email protected]

Zypher
la source
headdesk Il était là, me regardant comme une chose évidente. Bien sûr, ad.domain.com = AD.DOMAIN.COM devrait être là. Gaah.
sysadmin1138
@sysadmin: Pas de soucis ... il se trouve que je suis en train de construire activement un serveur SMB intégré à AD et que je regarde mon krb5.conf essayer de comprendre un problème qui a fini par être un bogue dans Samba 3.0. :-D
Zypher
Je vais devoir essayer ça. Cependant, le nom de domaine: DS.DOMAIN.COM est mon Windows Server's Hostname+DOMAIN.COM
Phanto
@Phanto, vous devez utiliser ma suggestion inférieure. vous spécifiez un nom d'hôte en tant que domaine, ce qui vous donne vos erreurs. le serveur kdc et / ou admin est l'endroit où vous mettriez le nom d'hôte.
Zypher
3

Avec un pic dans le code source, il semble que cette erreur soit levée lorsque le processus de négociation reçoit une référence vers un autre domaine et que ce domaine n'est pas «local» ou dans votre configuration krb5.conf.

00219 / *
00220 * Si le backend a renvoyé un principal qui n'est pas dans le local
00221 * royaume, nous devons alors référer le client à ce domaine.
00222 * /
00223 if (! Is_local_principal (client.princ)) {
00224 / * L'entrée est une référence vers un autre domaine * /
00225 status = "REFERRAL";
00226 errcode = KRB5KDC_ERR_WRONG_REALM;
00227 goto errout;
00228}

Ce que cela pourrait être, je ne pourrais pas vous le dire. Cela dépend probablement de votre environnement Active Directory et de la présence ou non de plusieurs domaines dans l'arborescence. Vous avez probablement besoin de plus d'alias domain_realm, mais exactement ce que nous ne pouvons pas dire d'ici.

sysadmin1138
la source
2

J'ai eu le même message en utilisant le même krb5.conf que celui fourni par 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

(désolé, il semble que je ne puisse pas obtenir un formatage approprié: /)

Dans mon cas, j'avais besoin de kinit à MYDOMAIN.LOCAL plutôt qu'à MYDOMAIN.COM. Je ne sais pas si cela est dû à un paramètre d'authentification dans AD en général ou juste pour mon domaine AD. Mon domaine a 2 contrôleurs de domaine, l'un est W2k3 R2 et l'autre (celui spécifié comme mydc.mydomain.com dans krb5.conf) est W2k8 R2. Mais ceci est une autre cause possible du message "Domaine non local à KDC lors de l'obtention des informations d'identification initiales"

zsispeo
la source
2

J'avais exactement la même chose et j'ai trouvé la réponse si simple après avoir corrigé ma configuration, je l'avais toujours. Merci à logicfuzz sur 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

Les capitales font toute la différence ici. Je sais que cela est illustré dans des exemples mais je voulais le souligner.

user375207
la source
avait exactement le même problème, car mon env transformer le domaine en majuscules a fonctionné !!
Samir Ouldsaadi
0

J'ai eu cette erreur en essayant de connecter cette machine d'un domaine à un domaine différent. La modification de /etc/krb5.conf n'a pas fonctionné non plus. Ensuite, j'ai essayé la commande suivante pour reconfigurer les trucs pour différents domaines

# sudo dpkg-reconfigure -plow krb5-config

avec les options et les paramètres souhaités qui ont cessé de donner l'erreur ci-dessus dans la commande kinit. Résolu.

vallabh
la source
0

mal ajouter cela juste parce que je viens de terminer ici pour la même erreur mais que j'ai trouvé un autre correctif pour un autre problème ... assurez-vous que le domaine est en majuscules: [email protected] et non [email protected] ... je viens de perdre 2 heures de ma vie à cause de celle-ci ...

boiss007
la source
0

Je sais que c'est une vieille question, mais je veux ajouter pour les futurs dépanneurs que ma résolution de ce problème était une combinaison de toutes les réponses suggérées, ainsi que l'ajout de mon contrôleur de domaine principal à mon /etc/hosts

Norr
la source
-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

tenir un registre

Alex Real
la source
2
Veuillez ajouter des textes pertinents pour expliquer comment cela va résoudre le problème.
Diamant