Kinit no se conectará a un servidor de dominio: el reino no es local para KDC mientras obtiene las credenciales iniciales

13

Estoy configurando un entorno de prueba donde los clientes de Linux (Ubuntu 10.04) se autenticarán en un servidor de dominio de Windows Server 2008 R2.

Estoy siguiendo la guía oficial de Ubuntu para configurar un cliente Kerberos aquí: https://help.ubuntu.com/community/Samba/Kerberos , pero he encontrado un problema al ejecutar el kinitcomando para conectarme al servidor de dominio.

El comando Me postulo es: kinit [email protected]. Este comando devuelve el siguiente error:

Realm not local to KDC while getting initial credentials. Desafortunadamente, no puedo encontrar a nadie más a través de las búsquedas de Google que hayan experimentado este error exacto, por lo que no tengo idea de lo que significa.

El cliente puede hacer ping al nombre de host del servidor, por lo que el servidor DNS apunta al servidor de dominio.

A continuación se muestra mi archivo 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

¿Cómo puedo corregir estos errores? ¡Apreciaría enormemente toda la ayuda que pueda obtener!

Phanto
fuente

Respuestas:

12

¿Es tu nombre de dominio DS.DOMAIN.COMo solo DOMAIN.COM?

En sus reinos necesita que coincidan, por lo que suponiendo que DS.DOMAIN.COM sea su dominio, debe cambiar:

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

a

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

Sin embargo, si su dominio es realmente DOMAIN.COM, necesitaría cambiar su krb5.conf para que se vea así:

[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

Y luego te kinitgustaría:kinit [email protected]

Zypher
fuente
headdesk Ahí estaba, mirándome como algo obvio. Del CURSO ad.domain.com = AD.DOMAIN.COM debería estar allí. Gaah
sysadmin1138
@sysadmin: No se preocupe ... Simplemente estoy construyendo activamente un servidor SMB integrado de AD y he estado mirando mi krb5.conf tratando de resolver un problema que terminó siendo un error en Samba 3.0. :-D
Zypher
Necesitaré probar esto. Sin embargo, el nombre de dominio: DS.DOMAIN.COM es mi Windows Server's Hostname+DOMAIN.COM
Phanto
@ Phanto, entonces necesitas usar mi sugerencia más baja. está especificando un nombre de host como dominio, que es lo que le está dando sus errores. el kdc y / o el servidor de administración es donde pondría el nombre de host.
Zypher
3

Al llegar al código fuente, parece que ese error se produce cuando el proceso de negociación recibe una referencia a otro dominio y ese dominio no es 'local', o en su configuración krb5.conf.

00219 / *
00220 * Si el back-end devolvió un principal que no está en el local
00221 * reino, entonces necesitamos referir al cliente a ese reino.
00222 * /
00223 if (! Is_local_principal (client.princ)) {
00224 / * La entrada es una referencia a otro reino * /
00225 status = "REFERENCIA";
00226 errcode = KRB5KDC_ERR_WRONG_REALM;
00227 goto errout;
00228}

Lo que podría ser, no podría decírtelo. Eso probablemente depende de su entorno de Active Directory y de si hay múltiples dominios en el árbol. Probablemente necesite más alias domain_realm, pero no podemos decir exactamente qué es eso desde aquí.

sysadmin1138
fuente
2

Recibí el mismo mensaje usando el mismo krb5.conf provisto por 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

(lo siento, parece que no puedo obtener el formato adecuado: /)

En mi caso, necesitaba conectarme a MYDOMAIN.LOCAL en lugar de MYDOMAIN.COM. No estoy seguro de si esto se debe a una configuración de autenticación en AD en general o solo para mi dominio de AD. Mi dominio tiene 2 DC, uno es W2k3 R2 y el otro (el especificado como mydc.mydomain.com en krb5.conf) es W2k8 R2. Pero esta es otra posible causa para el mensaje "Reino no local para KDC al obtener credenciales iniciales"

zsispeo
fuente
2

Tenía esto mismo y descubrí que la respuesta era tan simple después de arreglar mi configuración que todavía tenía esto. Gracias a logicalfuzz en 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

Las capitales hacen toda la diferencia aquí. Sé que esto se muestra en ejemplos, pero quería enfatizarlo.

usuario375207
fuente
Tuve exactamente el mismo problema, ¡para mi env, convertir el dominio en mayúsculas funcionó!
Samir Ouldsaadi
0

Recibí este error al intentar conectar esa máquina de un dominio a otro. Editar /etc/krb5.conf tampoco funcionó. Luego probé el siguiente comando para reconfigurar cosas para diferentes dominios

# sudo dpkg-reconfigure -plow krb5-config

con las opciones y configuraciones deseadas que dejaron de dar el error anterior en el comando kinit. Resuelto.

vallabh
fuente
0

agregaré esto solo porque acabo de terminar aquí por el mismo error pero encontré otra solución para otro problema ... asegúrese de que el dominio esté en TODAS LAS MAYÚSCULAS: [email protected] y no [email protected] ... acabo de perder 2 horas de mi vida por este ...

boiss007
fuente
0

Sé que esta es una pregunta antigua, pero quiero agregar para futuros solucionadores de problemas que mi resolución a este problema fue una combinación de todas las respuestas sugeridas, así como agregar mi controlador de dominio principal a mi /etc/hosts

Norr
fuente
-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

mantener un registro

Alex Real
fuente
2
Agregue textos relevantes para explicar cómo esto va a resolver el problema.
Diamant