Kerberos

logo kerberosDefinición de Kerberos

Kerberos es un protocolo de autenticación que permite a dos ordenadores demostrar su identidad mutuamente de forma segura. Implementado sobre una arquitectura cliente servidor y trabaja sobre la base de tiques que  sirven para demostrar la identidad de los usuarios.

La autenticación entre dos ordenadores se lleva a cabo utilizando a un tercero de confianza llamado KDC – Key Distribution Center (centro de distribución de claves), compuesto por dos partes lógicas separadas:

  • Servidor de autenticación (AS o Authentication Server)
  • Servidor emisor de tiquets (TGS o Ticket Granting Server).

Kerberos mantiene una base de datos de claves secretas y cada entidad bien sean clientes o servidores solo disponen de su clave secreta (conocida únicamente por él y Kerberos). La privacidad de esta clave es lo que hace que pueda probarse la identidad de cada uno. y para una comunicación entre dos entidades, Kerberos genera una clave de sesión, la cual pueden usar para asegurar sus comunicaciones.

 

Arquitectura

Autenticación Kerberos

Autenticación Kerberos

 

Conceptos principales

Ticket de acceso (TGT)

Ticket especial que permite al cliente obtener tickets el resto de tickets.

Son otorgados por el servidor de autenticación (AS)

Ticket (TGS)

Tickets temporales que permiten acreditar un servicio en particular. Ejemplos de servicios: ftp, hdfs, http,…

Son otorgados por  servidor de otorgamiento de tickets (TGS)

kinit

Comando que permite a un principal ya conectado, obtener y hacer caché del ticket de acceso (TGT).

Realm (reino)

Red que usa Kerberos, compuesta por uno o varios servidores (conocidos como KDCs) y un número potencial de clientes.

Principal (nombre del principal)

El principal es el nombre único de un usuario o servicio que puede autenticar mediante el uso de Kerberos. Un nombre de principal está en el formato root[/instance]@REALM. Para un usuario típico, el root es el mismo que su ID de inicio de sesión. La instance es opcional. Si el principal tiene una instancia, estará separada de root con una barra hacia adelante (“/”). Una cadena de caracteres vacía (“”) es considerada como una instancia válida (que se diferencia del valor de la instancia por defecto NULL), pero usarlo puede ser confuso. Todos los principales de un reino tienen su propia llave, la cual para los usuarios se deriva de su contraseña o se genera aleatoriamente para servicios.

keytab (tabla de llaves)

Fichero que incluye una lista desencriptada de “principals” y sus claves. Los servidores recuperan las claves que necesitan desde los archivos keytab en lugar de usar kinit. El archivo keytab por defecto es /etc/krb5.keytab. El servidor de administración KDC, /usr/kerberos/sbin/kadmind, es el único servicio que usa otro archivo (usa /var/kerberos/krb5kdc/kadm5.keytab).

¿Como generar un keytab en un cluster hadoop?

Ficheros de configuración

  • Core-site.xml: describe el formato y la configuración para el core.
  • HDFS-site.xml: describe el formato y la configuración para HDFS
  • YARN-site.xml: describe el formato y la configuración para YAR.
  • krb5.conf: describe el formato y la configuración para la librería de Kerberos V5.
  • kdc.conf: describe el formato y la configuración para Kerberos V5 AS y KDC.

 

Fuente: Web Oficial

Otros artículos que pueden ser de interés:

Autor: Diego Calvo