Windows – Kerberos y sus manías

Kerberos Authentication

Voy a comenzar el año el año (para mi empieza en septiembre, algún trauma infantil) implicándome más en el blog y lo voy a hacer a lo grande, escribiendo posts técnicos! Me comprometo a uno semanal, todos los Lunes y además lo hago por escrito, para que quede constancia y sea usado en mi contra si no cumplo XD. Aprovechando mi conocimiento en Windows un día me pregunté… ¿por qué no escribir sobre la tecnología Microsoft y así, al mismo tiempo, convertir este tipo de post en un foro de ayuda para quien lo necesite? y la respuesta aquí la tenéis.

Antes de empezar comentar que por deformación profesional usaré algunos de los conceptos en inglés. Voy a inaugurarlo con un protocolo bastante conocido y cuyo impacto puede convertirse en una pesadilla si no funciona como debe. Como el fin de este post es ayudar a resolver problemas no voy a profundizar al máximo para no convertirlo en un tostón, voy a hacerlo fácil para que no sea aburrido y sea comprensible a todos los niveles.

Kerberos es el protocolo usado por Windows para la autenticación entre cliente y servidor, así de fácil.
Tiene dos tipos de nombres principales o Principal Names relativos a los dos objetos principales del Directorio Activo, usuarios y máquinas, User Principal Names (UPN) y Service Principal Names (SPN). Los dos deben ser UNICOS en todo el bosque.

Para poder investigar un posible error en el que Kerberos sea nuestro protagonista, es necesario entender cómo funciona el proceso de autenticación y conocer así los roles que entran en juego en este proceso.

Esta sería una foto que explica cómo funciona:

Imagen cogida de Kerberos Technet Article
(Imagen propiedad de Kerberos Technet Article)

KDC o Key Distribution Center es un servicio que solo debe correr en un controlador de dominio o DC y es el responsable de autenticar a los usuarios. KDC se compone de:

– Authentication Server (AS), que verifica la identidad y proporciona el ticket (TGT) correspondiente si efectivamente la autenticación fue exitosa.

– Ticket Granting Server (TGS), que emite el ticket cuando se realiza una petición de conexión.

Vale, ya sabemos lo que es y cómo funciona. Ahora toca resolver los problemas derivados de Kerberos.
Normalmente la gente suele “panicar” cuando derrepente aparece un evento en el Visor de Eventos indicando un problema. lo que la mayoría no sabe es que normalmente, un problema típico (me refiero al típico evento ID 4) se puede solucionar fácilmente sin necesidad de profundizar a lo bestia. Normalmente los problemas con Kerberos aparecen cuando hay problemas en la resolución de nombres, por ello, antes de usar cualquier herramienta como las que recomiendo al final de este post, os ánimo a buscar primero problemas a nivel de DNS.

Event ID 4:
The kerberos client received a KRB_AP_ERR_MODIFIED error from the server $. This indicates that the password used to encrypt the kerberos service ticket is different than that on the target server. Commonly, this is due to identically named machine accounts in the target realm (), and the client realm. Please contact your system administrator.

La última vez que resolví este evento fue modificando el binding u orden de las tarjetas de red. En mi caso el servidor tenía varias tarjetas de red, algunas incluso deshabilitadas. Cuando comprobé que la configuración de la red era la correcta, comprobé los bindings y cuál fue mi sorpresa cuando ví que las deshabilitadas estaban las primeras. Fue cambiar el orden y el problema se solucionó. Recomiendo limpiar la caché del DNS y volverla a recargar una vez realizado dicho cambio.

Hay otros eventos pero no son tan típicos, si los encontráis hacérmelo saber!
Para todos ellos contamos con nuestros siguientes aliados:

Si queremos chequear los UPN y SPN nadie mejor que LDP y LDIFDE.
Si no es exactamente lo que buscamos, tenemos la posibilidad de usar herramientas potentes como ADSIEDIT.

Si lo que queremos es usar comandos propios de Kerberos, disponemos de varias herramientas como:
KerbTray, que es una herramienta con un interfaz gráfico para chequear el estado de los tickets.
y KList, menos amigable pero más potente incluso que KerbTray.

Os recomiendo tocar este tipo de comandos en entornos de desarrollo para haceros con las herramientas.

Y eso es todo amigos, espero que os sirva para conocer un poco más si cabe éste protocolo y que además, os valga para resolver un problema en caso necesario.

Artículos relacionados

Acerca del autor

4 Comentarios

  1. De Cabo
    13 septiembre, 2010
  2. Ikeisenhower
    13 septiembre, 2010
  3. jose87
    13 septiembre, 2010
  4. Warning
    14 septiembre, 2010

Deja tu comentario

Mostrar
Ocultar