Cómo instalar el servidor y el cliente Kerberos KDC en Ubuntu 18.04

Cómo instalar el servidor y el cliente Kerberos KDC en Ubuntu 18.04

Este tutorial cubre la guía gradual para configurar un cliente Kerberos (KDC) y Kerberos habilitado, luego probando la configuración obteniendo un boleto Kerberos del servidor KDC.

En este tutorial aprenderás:

  • ¿Qué es Kerberos y cómo funciona?
  • Configurar el servidor Kerberos (KDC)
  • Configurar el cliente
  • Prueba la autenticación de Kerberos
  • Creación de keytab

Descripción general de Kerberos.

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Ubuntu 18.04
Software Paquetes de servidor y administrador de Kerberos
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

¿Qué es Kerberos y cómo funciona?



Kerberos es un protocolo de autenticación de red. Está diseñado para proporcionar una autenticación sólida para aplicaciones de clientes/servidores mediante el uso de criptografía de tecla secreta.

El cliente se autentica al servidor de autenticación (AS) que reenvía el nombre de usuario a un centro de distribución de clave (KDC). El KDC emite un boleto de devolución de boletos (TGT), que se estampa en el tiempo y lo cifra utilizando la clave secreta del Servicio de Cumplimiento de Ticket (TGS) y devuelve el resultado encriptado a la estación de trabajo del usuario. Esto se hace con poca frecuencia, típicamente en el inicio de sesión del usuario; El TGT expira en algún momento, aunque el administrador de la sesión del usuario puede renovarlo transparentemente mientras se registra.

Cuando el cliente necesita comunicarse con otro nodo ("principal" en el lenguaje de Kerberos) a algún servicio en ese nodo, el cliente envía el TGT al TGS, que generalmente comparte el mismo host que el KDC. El servicio debe estar registrado en TGT con un nombre principal del servicio (SPN). El cliente usa el SPN para solicitar acceso a este servicio. Después de verificar que el TGT es válido y que el usuario puede acceder al servicio solicitado, el TGS emite el boleto y las claves de sesión para el cliente. El cliente luego envía el boleto al servidor de servicio (SS) junto con su solicitud de servicio.

Configurar el servidor Kerberos (KDC)

La sincronización del tiempo y el DNS juegan un papel importante para trabajar KDC correctamente. Si la diferencia de tiempo es más de 5 minutos, la autenticación fallará. Los FQDN deberían resolver idealmente en un entorno adecuado, aquí tenemos al modificar /etc/huéspedes Pero se recomienda usar DNS correctamente.

Ejecute el siguiente comando a continuación para instalar Kerberos Admin Server y KDE (Centro de distribución de clave):



# instalación apt krb5-kdc krb5-admin-server krb5-config

Preguntará las siguientes tres cosas una por una

  1. Reino de Kerberos. (Aquí he usado Ubuntubox.Com)
  2. Nombre de host del servidor Kerberos - KDC.Ubuntubox.comunicarse
  3. Nombre de host del servidor administrativo (cambio de contraseña) para Kerberos Realm Ubuntubox.Com - kdc.Ubuntubox.comunicarse
Proporcionar reino de Kerberos. Proporcionar el servidor Kerberos FQDN.

Proporcionar servidor administrativo FQDN. Configuración del servidor de administración de KRB5.

Ahora ejecute el siguiente comando para configurar reino.

# krb5_newrealm

Solicitará ingresar una contraseña para la creación de bases de datos y después de eso, comenzará a Kerberos KDC KRB5KDC y Kerberos Servidores administrativos Kadmind procesos.



root@kdc: ~# krb5_newrealm Este script debe ejecutarse en el servidor maestro KDC/Admin para inicializar un reino de Kerberos. Le pedirá que escriba una contraseña de clave maestra. Esta contraseña se utilizará para generar una clave que se almacena en/etc/krb5kdc/stash. Debe intentar recordar esta contraseña, pero es mucho más importante que sea una contraseña segura que la recordación. Sin embargo, si pierde la contraseña y/etc/krb5kdc/stash, no puede descifrar su base de datos Kerberos. Carga de datos aleatorios inicializando la base de datos '/var/lib/krb5kdc/principal' para reino 'Ubuntubox.Com ', nombre de clave maestra' k/[email protected] 'se le solicitará la contraseña maestra de la base de datos. Es importante que no olvide esta contraseña. Ingrese la clave maestra de la base de datos KDC: Vuelva a ingresar la clave maestra de la base de datos KDC para verificar: ahora que su reino está configurado, es posible que desee crear un principal administrativo utilizando el subcomando addprinc del kadmin.programa local. Luego, este principal se puede agregar a/etc/krb5kdc/kadm5.ACL para que pueda usar el programa Kadmin en otras computadoras. Los directores administradores de Kerberos generalmente pertenecen a un solo usuario y terminan en /administrador. Por ejemplo, si JRUSER es un administrador de Kerberos, además del director normal de JRUSER, se debe crear un director de JRUSER/administrador. No olvide configurar la información de DNS para que sus clientes puedan encontrar su KDC y los servidores de administración. Hacerlo está documentado en la Guía de administración. root@kdc: ~# 

Abierto /etc/krb5kdc/kadm5.LCA Archivo con cualquiera de los editores de texto y descomnación en la última línea para que el archivo se vea como.

vim/etc/krb5kdc/kadm5.LCA
# Este archivo es la lista de control de acceso para la administración KRB5. # Cuando este archivo se edita, ejecute el servicio KRB5-admin-server para activar # una forma común de configurar la administración de Kerberos es permitir que cualquier # principal finalice en /administrador se les otorgue derechos administrativos completos. # Para habilitar esto, sin comment la siguiente línea: */admin * 
Copiar

Ahora el proceso de configuración del servidor Kerberos se completó correctamente.

Configurar el cliente

Ejecutar el siguiente comando a continuación para instalar y configurar el cliente Kerberos.

# APT Instalar KRB5-User

Nuevamente preguntará 3 cosas una por una como la configuración del servidor KDC.

  1. Kerberos Realm - Ubuntubox.Comunicarse
  2. Nombre de host para el servidor KDC - KDC.Ubuntubox.comunicarse
  3. Nombre de host del servidor de administración - KDC.Ubuntubox.comunicarse

Prueba la autenticación de Kerberos



Un principal KEBS es una identidad única a la que Kerberos puede asignar boletos, por lo tanto, crearemos un director en el servidor KDC como a continuación.

addprinc "principal_name"
root@kdc: ~# kadmin.Autenticación local como principal root/[email protected] con la contraseña. kadmin.LOCAL: Advertencia de Sandipb Addprinc: no hay política especificada para [email protected]; Afertan no a la política Ingrese la contraseña para el principal "[email protected] ": Reentrar contraseña para el director" [email protected] ": director" [email protected] "creado. kadmin.local: 

Para eliminar un director de KDC, ejecute el siguiente comando.

Delprinc "principal_name"
root@kdc: ~# kadmin.Local: autenticando como principal root/[email protected] con la contraseña. kadmin.Local: Delprinc Sandipb ¿Estás seguro de que quieres eliminar el principal "[email protected] "? (sí/no): sí principal "[email protected] "eliminado. Asegúrese de haber eliminado este principal de todas las ACL antes de reutilizar. kadmin.local: 

Ahora, para autenticarse en Kerberos y obtener un boleto del servidor KDC Ejecute el siguiente comando en el nodo del cliente.

Nota: Los boletos serán destruidos cuando reinicie su computadora, cuando ejecute el comando
kdestroy, o cuando expiran. Tendrá que volver a ejecutar Kinit después de que ocurra cualquiera de estos.
# Kinit Sandipb


root@kdcclient: ~# kinit sandipb contraseña para [email protected]: root@kdcclient: ~# root@kdcclient: ~# klist ticket caché: archivo:/tmp/krb5cc_0 Principal predeterminado: [email protected] Comenzar válido Expire Service Principal 2018-12-29T19: 38: 53 2018-12-30T05: 38: 53 KRBTGT/[email protected] Renovar hasta 2018-12-30T19: 38: 38 root@kdcclient: ~# 

Para verificar los detalles del principal, ejecute el siguiente comando en el servidor KDC.

GetPrinc "principal_name"
root@kdc: ~# kadmin.Autenticación local como principal root/[email protected] con la contraseña. kadmin.Local: GetPrinc Sandipb Director: [email protected] Compatación Fecha: [Nunca] Última contraseña Cambio: Sol 30 de diciembre 19:30:59 +04 2018 Fecha de vencimiento de contraseña: [Nunca] Máximo Ticket Vida: 0 días 10:00:00 Máxima Vida renovable: 7 días 00:00: 00 Último modificado: Sol 30 de diciembre 19:30:59 +04 2018 (root/[email protected]) Última autenticación exitosa: Sol 30 de diciembre 19:38:53 +04 2018 Última autenticación fallida: [Nunca] Falló la contraseña intentos: 0 Número de claves: 2 clave: VNO 1, AES256-CTS-HMAC-SHA1-96 CLAVE: VNO 1, AES128-CTS-HMAC-SHA1-96 MKEY: VNO 1 ATRIBUTOS: Requiere_Pre_Auth Política: [Ninguno] Kadmin.local: 

Creación de keytab



Un keyTab es un archivo que contiene pares de principios de Kerberos y claves cifradas (que se derivan de la contraseña de Kerberos). Puede usar un archivo KeyTab para autenticar en varios sistemas remotos utilizando Kerberos sin ingresar una contraseña. Sin embargo, cuando cambie su contraseña de Kerberos, deberá recrear todos sus keytabs.

root@kdc: ~# ktutil ktutil: add_entry -password -p [email protected] -k 1 -e aes256-cts-hmac-sha1-96 contraseña para [email protected]: ktutil: add_entry -password -p [email protected] -k 1 -e aes128-cts-hmac-sha1-96 contraseña para [email protected]: ktutil: wkt sandipkt.keytab ktutil: Q root@kdc: ~# 
root@kdc: ~# klist -kte sandipkt.KeyTab Nombre de KeyTab: Archivo: Sandipkt.Keytab Kvno Timestamp Principal ---- ----------------------- ----------------------- ------------------------------- 1 2018-12-30T00: 35: 07 [email protected] (AES256-CTS-HMAC-SHA1-96) 1 2018-12-30T00: 35: 07 [email protected] (aes128-cts-hmac-sha1-96) root@kdc: ~# 
root@kdc: ~# kinit -k -t sandipkt.keytab sandipb root@kdc: ~# klist ticket caché: archivo:/tmp/krb5cc_0 Principal predeterminado: [email protected] Comenzar válido Expire Service Principal 2018-12-30T00: 36: 44 2018-12-30T10: 36: 44 KRBTGT/[email protected] Renovar hasta 2018-12-31T00: 36: 34 root@kdc: ~## 

Conclusión

Una autenticación es crítica para la seguridad de los sistemas informáticos, los métodos de autenticación tradicionales no son adecuados para su uso en redes informáticas.El sistema de autenticación Kerberos es muy adecuado para la autenticación de usuarios en tales entornos.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Mastering Bash Script Loops
  • Archivos de configuración de Linux: los 30 principales más importantes
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Ubuntu 20.04 Guía
  • Lista de las mejores herramientas de Kali Linux para pruebas de penetración y ..
  • Ubuntu 20.04 trucos y cosas que quizás no sepas
  • Cosas para instalar en Ubuntu 22.04