Como configurar Kerberos

www.onlinetis.com

 

Kerberos es un protocolo de autenticación de red que permite a los usuarios y servicios demostrar su identidad entre sí a través de una red no segura. Fue desarrollado por el MIT y utiliza un sistema de "tickets" para evitar el envío de contraseñas en texto plano.

En esencia, Kerberos opera como un tercero de confianza para la autenticación mutua, asegurando que tanto el cliente como el servidor son quienes dicen ser. Es la base del inicio de sesión único (SSO) en grandes redes corporativas y es el método de autenticación predeterminado en entornos como Windows Active Directory.


Cómo funciona Kerberos

El protocolo Kerberos se basa en un Centro de Distribución de Claves (KDC), que se encarga de la autenticación inicial. El KDC se compone de dos partes principales:

  • Servidor de Autenticación (AS): Autentica al cliente y le emite un "ticket para conceder tickets" (TGT).

  • Servidor de Concesión de Tickets (TGS): Emite tickets de servicio para que los clientes accedan a recursos específicos.

El proceso de autenticación de Kerberos, simplificado, sigue estos pasos:

  1. Solicitud de TGT: Un cliente envía su nombre de usuario al KDC para solicitar un TGT. No se envía la contraseña.

  2. Autenticación y emisión de TGT: El AS verifica el nombre de usuario y le envía un TGT cifrado y una clave de sesión. Este TGT actúa como una prueba de la identidad del cliente.

  3. Solicitud de Ticket de Servicio: Con el TGT, el cliente solicita al TGS un ticket para acceder a un servicio específico (por ejemplo, un servidor de archivos o una base de datos).

  4. Emisión de Ticket de Servicio: El TGS verifica el TGT y emite un ticket de servicio cifrado, que solo puede ser descifrado por el servidor del servicio solicitado.

  5. Acceso al servicio: El cliente envía el ticket de servicio al servidor de destino. El servidor lo descifra, autentica al cliente y le concede el acceso.

Al no transmitir la contraseña a través de la red, Kerberos minimiza el riesgo de que los atacantes la intercepten, lo que lo convierte en una solución robusta y segura para la gestión de identidades en redes corporativas.

 Configurar Kerberos es un proceso detallado que varía según el entorno, como Windows Active Directory o un sistema Linux/Unix con MIT Kerberos. A grandes rasgos, implica una serie de pasos lógicos en los que se prepara el servidor del Centro de Distribución de Claves (KDC), se configuran los clientes y servicios, y se establece una comunicación segura entre ellos.


1. Configuración del KDC (Servidor Kerberos)

El KDC es el corazón de la autenticación Kerberos. Los pasos para configurarlo son:

  • Instalar el software: Instala el software del servidor Kerberos (por ejemplo, krb5-kdc y krb5-admin-server en Linux o la función de Servicios de dominio de Active Directory en Windows Server).

  • Crear el dominio (Realm): Define el nombre de tu dominio Kerberos, que por convención suele ser el nombre de tu dominio DNS en mayúsculas (por ejemplo, EJEMPLO.COM).

  • Configurar archivos clave: Edita los archivos de configuración (/etc/krb5.conf y kdc.conf en Linux). Aquí se especifica el nombre del dominio, la ubicación del KDC y los servidores de administración, y se configuran las políticas de vida de los tickets.

  • Inicializar la base de datos: Crea la base de datos de Kerberos. En Linux, se usa el comando kdb5_util create. En Windows, esto se hace automáticamente al instalar y configurar Active Directory.

  • Crear los Principales (Principals): Un "principal" es la identidad de Kerberos de un usuario, un host o un servicio. Debes crear un principal para cada entidad que necesite autenticarse. Por ejemplo, usuario@EJEMPLO.COM o host/servidor.ejemplo.com@EJEMPLO.COM. En Windows, los usuarios y equipos de Active Directory son automáticamente principales de Kerberos.

  • Crear el principal de administración: Crea un principal con permisos de administrador para gestionar la base de datos de Kerberos, por ejemplo, admin/admin@EJEMPLO.COM.


2. Configuración de clientes y servicios

Una vez que el KDC está funcionando, se deben configurar los clientes y servicios para que se comuniquen con él.

  • Configurar el archivo krb5.conf: En los equipos cliente, el archivo de configuración debe apuntar al KDC correcto y definir el dominio por defecto.

  • Sincronizar la hora: La sincronización de la hora es crítica para Kerberos. Los relojes de todos los clientes y servidores deben estar sincronizados (con una diferencia de no más de 5 minutos, por defecto) para que los tickets sean válidos. Puedes usar un servicio de sincronización de tiempo como NTP.

  • Crear archivos Keytab: Un keytab es un archivo que contiene los principales y sus claves de encriptación. Se usa para permitir que los servicios (como un servidor web o de base de datos) se autentiquen con el KDC sin necesidad de una contraseña. El keytab se crea en el KDC y se copia de forma segura al servidor del servicio.

  • Configurar el servicio: Cada servicio que necesite usar Kerberos (como un servidor web con Apache o un servicio de bases de datos) debe configurarse para usar la autenticación Kerberos y apuntar a su archivo keytab.

  • Registrar los SPN (Service Principal Names): En Windows, se usa la herramienta setspn para registrar los nombres de los servicios (SPN) a las cuentas de servicio correspondientes en Active Directory. Esto es crucial para que el KDC sepa qué cuenta de servicio debe usar para un servicio específico.


Ejemplo de configuración básica en Linux

  1. Instalar:

    sudo apt-get install krb5-kdc krb5-admin-server

  2. Configurar /etc/krb5.conf:

    Ini, TOML
    [libdefaults]
        default_realm = EJEMPLO.COM
    
    [realms]
    EJEMPLO.COM = {
        kdc = kdc.ejemplo.com
        admin_server = kdc.ejemplo.com
    }
    
    [domain_realm]
    .ejemplo.com = EJEMPLO.COM
    ejemplo.com = EJEMPLO.COM
    
  3. Crear la base de datos:

    sudo kdb5_util create -s

  4. Crear principales:

    sudo kadmin.local -q "addprinc usuario@EJEMPLO.COM"

    sudo kadmin.local -q "addprinc -randkey host/servidor.ejemplo.com@EJEMPLO.COM"

  5. Crear el keytab:

    sudo kadmin.local -q "ktadd -k /etc/krb5.keytab host/servidor.ejemplo.com@EJEMPLO.COM"

 

 

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Hacking y ciberseguridad en kali linux con atk6-thcping6

Como utilizar Fierce en kali linux