Configuración de Kerberos Server

Etiquetas: Linux, Seguridad

Ilustración 1 Fuente: Amino, 2019

Configuración de Kerberos Server

Objetivo

Configuración de servidor Kerberos para la autenticación de servidores.

Introducción

Como se sabe, el mantener la seguridad e integridad de un sistema sobre una red es crítico para una organización, las actividades para llevar a cabo estos objetivos en una red engloban a elementos como usuarios, aplicaciones, servicios, y obviamente servidores. Esto requiere el entendimiento de los servicios que hay sobre esta, para que son utilizados y la seguridad que los envuelve para mantenerlos disponibles.

Kerberos, es un protocolo de autenticación diseñado por el MIT que es significativamente seguro en comparación de los métodos tradicionales de autenticación por contraseña. Con este protocolo, las contraseñas nunca son enviadas sobre la red, aun cuando los servicios son accedidos en máquinas remotas.

Kerberos provee de un mecanismo que permite a usuarios y máquinas identificarse así mismos sobre una red, y con este se puede limitar el acceso a recursos y servicios que se hayan configurado. Kerberos autentica entidades que son verificadas por su identidad, y kerberos también asegura los datos de autenticación no permitiendo su acceso y uso por nadie que no haya sido explícitamente definido por el administrador.

Funcionamiento básico de kerberos

En esta sección se comparte una breve explicación basada en la documentación de Red Hat, sobre la cual se describe el “Proceso de autenticación realizado por “Kerberos”:

Ilustración 2 Proceso de autenticación realizado por Kerberos, Fuent: Red Hat Inc. (2019)

Pasos

Descripción

1

El usuario realiza una solicitud de permisos basada en tickets (ticket-granting ticket, TGT) para identificarse al KDC (Key Distribution Center) con una única identidad llamada principal.

2

Cuando un usuario se encuentra en un “reino de Kerberos” a través del firmado de su equipo sobre la red organizacional, su principal es enviado al KDC as como parte de una solicitud con el objetivo de generar un ticket con permisos o TGT (ticket-granting ticket).

3

El KDC busca dentro de su base de datos y en caso de encontrar un principal asociado al usuario, este TGT es generado y lo adjunta a una llave cifrada igualmente generada para el usuario que realiza la solicitud.

4

Tanto el TGT, como la llave, son devueltas al usuario, en donde a través de un cliente son de cifradas para su almacenamiento.

5

Ya en posesión del usuario, el TGT cifrado, ahora se envía al servicio o aplicación.

6

Ya en el servicio, mismo que tienen soporte para Kerberos y además de que cuenta con políticas definidas, busca en su “base de datos” llamada keytab (archivo keytab). Ya verificado el TGT, en caso de encontrarse la identidad, se da acceso al servicio, de lo contrario, se negará el acceso a este.

Consideraciones

Al momento desarrollar este documento, se tomó en cuenta lo siguiente:

  • Al implementar un servidor de kerberos, se debe instalar y configurar el KDC master primero, y subsecuentemente cualquier otro servidor, mismo que fungirá como secundario.
  • Asegurarse de que los servidores involucrados cuenten con la fecha y hora sincronizada, así como el servicio DNS se encuentra configurado apropiadamente.
  • Contar con los paquetes krb5-libs, krb5-server, y krb5-workstation sobre el equipo que va a cumplir la función del KDC.
  • El equipo que va a ser KDC, necesita estar muy bien asegurado, de ser posible, solamente debe estar ejecutando los servicios relacionados al KDC.

    Configuración del servidor maestro KDC

  1. Instalar los paquetes relacionados al servicio Kerberos sobre el equipo que va a cumplir la función del KDC

  2. Modificar el archivo /etc/krb5.conf de acuerdo a los siguientes datos:

    NOTA: el archivo /var/kerberos/krb5kdc/kdc.conf debe ser configurado en este se encontrarán y posteriormente modificar datos relacionados a algoritmos de cifrado, puertos de escucha de su funcionamiento, ACL’s, etc.

  1. Crear la base de datos a través de la utilería kdb5_util:

     

Este comando, crea la base de datos en la cual se almacenará las llaves para el reino de Kerberos. Con la opción -s y el argumento creates un “archivo oculto” en el cual el servidor master, almacena la llave. En caso de no encontrarse este archivo, el servidor Kerberos (krb5kdc) preguntará por el usuario del servidor master y su password.

  1. Sobre el archivo /var/kerberos/krb5kdc/kadm5.acl modificarlo con el siguiente contenido:

    Este archivo es utilizado por la utilería kadmind para determinar los principals que cuentan con acceso administrativo a la base de datos de Kerberos y su nivel de acceso.

  2. Crear el primer principal utilizando la utilería kadmin.local en una terminal del KDC:

  3. Iniciar el servicio de Kerberos a través de la siguiente secuencia de comandos:

  4. Agregar los principals para los usuarios utilizando los usuarios mediante el subcomando addprinc a través de la utilería kadmin. Tanto kadmin como kadmin.local son utilerías a través de la línea de comandos que sirve como interfaz del KDC.
  5. Verificar que el KDC publica los tickets. La ejecución de la utilería kinit, nos permitirá obtener un ticket y almacenarlo un un archivo de cache.

  6. Lo siguiente que hay que hacer es utilizar klist para ver la lista de credenciales en el archivo de cache

  7. Se puede utilizar la utilería kdestroy para eliminar dicho cache y las credenciales que se almacenan en este.

Referencias

 

Deja un comentario