Cómo configurar el servidor y el cliente Kerberos en Ubuntu 18.04 LTS

Kerberos es un protocolo de autenticación de red que utiliza criptografía de clave simétrica y requiere la autorización de un tercero de confianza para autenticar las aplicaciones cliente-servidor. Fue desarrollado originalmente por el Instituto Tecnológico de Massachusetts (MIT) para proteger los servicios de red proporcionados por el proyecto Athena.

En el mundo moderno, Kerberos se utiliza a menudo como servicio de autenticación de terceros. Esto significa que todos los clientes confían en el juicio de Kerberos sobre la identidad de otro cliente.

En este tutorial, te mostraremos cómo configurar la autenticación Kerberos entre dos servidores de Ubuntu 18.04. Instalaremos y configuraremos el servidor Kerberos en el servidor de Ubuntu y luego instalaremos el cliente Kerberos en el otro. Finalmente, probaremos la autenticación del servicio SSH con el servidor Kerberos.

Requisitos previos

  • Servidor Ubuntu 18.04
    • 10.10.10.15 krb5.ahmad.io krb5
    • 10.10.10.16 cliente1.ahmad.io cliente1
  • Privilegios de root

Qué vamos a hacer

  1. Configurar el archivo FQDN
  2. Instalar el servidor KDC Kerberos
  3. Configurar el servidor KDC Kerberos
  4. Instalar y configurar el cliente Kerberos
  5. Probar

Paso 1 – Configurar el FQDN

En primer lugar, debemos configurar el FQDN en el servidor Kerberos y luego editar el archivo ‘/etc/hosts’ del servidor.

Cambia el FQDN del servidor Kerberos con el siguiente comando.

hostnamectl set-hostname krb5.ahmad.io

Después, edita el archivo ‘/etc/hosts’ utilizando el editor vim.

vim /etc/hosts

Cambia la dirección IP y el FQDN por los tuyos y pégalos en él.

10.10.10.15     krb5.ahmad.io   krb5

Guarda y cierra.

Ahora haz una prueba utilizando el comando ‘ping’ que aparece a continuación y asegúrate de que el FQDN se resuelve con la dirección IP correcta.

ping -c 3 $(hostname -f)

Configuración del nombre de host

Paso 2 – Instalar el servidor KDC Kerberos

Ahora vamos a instalar el servidor Kerberos en el servidor ‘krb5’ con la dirección IP ‘10.10.10.15’ y el FQDN es ‘krb5.ahmad.io’.

Instala el servidor Kerberos con el siguiente comando apt.

sudo apt install krb5-kdc krb5-admin-server krb5-config -y

Durante la instalación, se te preguntará por el dominio Kerberos, el servidor Kerberos del dominio y el servidor de administración.

Por defecto, el Kerberos utilizará el nombre de dominio del servidor Kerberos como REALM,‘AHMAD.IO‘.

El servidor Kerberos es ‘krb5.ahmad.io‘.

Establecer el nombre del servidor

Y el servidor Admin igual que el servidor Kerberos ‘krb5.ahmad.io’.

nombre del servidor de administración

Una vez terminada la instalación, se te mostrará que el servicio Kerberos no puede ejecutarse. No pasa nada porque lo configuraremos en la siguiente etapa.

Paso 3 – Configurar el servidor KDC Kerberos

Ahora genera una nueva contraseña maestra fuerte para el REALM de Kerberos utilizando el siguiente comando.

sudo krb5_newrealm

Escribe tu contraseña fuerte y la contraseña del REALM se generará en el archivo ‘/etc/krb5kdc/stash’.

Configurar el servidor KDC Kerberos

Después, tenemos que crear el usuario administrador (admin principal) para el servidor KDC Kerberos, añadir el nombre de host del servidor Kerberos a la base de datos y, a continuación, crear el keytab para el servidor Kerberos.

Ejecuta el siguiente comando de la interfaz de línea de comandos ‘kadmin.local’ para la administración de Kerberos.

sudo kadmin.local

Crea un nuevo usuario principal de administración llamado ‘root’.

addprinc root/admin

Escribe la contraseña fuerte para el usuario principal de administración «root».

Añade el servidor KDC Kerberos a la base de datos y crea el archivo keytab para el host KDC.

addprinc -randkey host/krb5.ahmad.io
ktadd host/krb5.ahmad.io

A continuación, cierra la utilidad «kadmin.local».

quit

Configurar el servidor kerberos

A continuación, tenemos que añadir el principio admin «root» a la lista de control de acceso editando el archivo «/etc/krb5kdc/kadm5.acl».

vim /etc/krb5kdc/kadm5.acl

Añade la siguiente configuración.

root/admin * 

Guarda y cierra la configuración, y luego reinicia el servicio Kerberos.

sudo systemctl restart krb5-admin-server.service

Y la configuración del servidor KDC Kerberos se ha completado.

Reiniciar Kerberos

Paso 4 – Instalar y configurar el cliente Kerberos

En este paso, vamos a instalar el cliente Kerberos en el servidor Ubuntu con la dirección IP ‘10.10.10.16’ y el nombre de host ‘cliente1’.

– Configurar el FQDN

Configura el FQDN en la máquina cliente con el siguiente comando.

hostnamectl set-hostname client1.ahmad.io

Después, edita el archivo ‘/etc/hosts’ con el editor vim.

vim /etc/hosts

Pega el servidor KDC Kerberos y el cliente como se indica a continuación.

10.10.10.15     krb5.ahmad.io   krb5
10.10.10.16     client1.ahmad.io    client1

Guarda y cierra.

Instalar y configurar el cliente Kerberos

– Instalar el cliente Kerberos

Instala los paquetes del cliente Kerberos ejecutando el siguiente comando apt.

sudo apt install -y krb5-user libpam-krb5 libpam-ccreds auth-client-config

Durante la instalación, se te preguntará por el reino Kerberos, el servidor Kerberos del reino y el servidor de administración.

Por defecto, Kerberos utilizará el nombre de dominio del servidor Kerberos como REALM,‘AHMAD.IO‘.

establecer el dominio del servidor

El servidor Kerberos es ‘krb5.ahmad.io‘.

establecer servidor kerberos

Y el servidor Admin igual que el servidor Kerberos ‘krb5.ahmad.io’.

establecer servidor de administración

Y la instalación del cliente Kerberos ha terminado.

– Configurar el cliente Kerberos

Desde la máquina cliente, conéctate al servidor KDC Kerberos utilizando el comando ‘kadmin’.

kadmin

Y se te pedirá la contraseña del principio ‘root/admin’. Escribe la contraseña y entrarás en el sistema de administración de KDC Kerberos.

Ahora añade el FQDN del cliente ‘cliente1.ahmad.io’ a la base de datos Kerberos y añade el archivo keytab para el cliente.

addprinc -randkey host/client1.ahmad.io
ktadd host/client1.ahmad.io

A continuación, cierra la interfaz de administración de Kerberos kadmin.

quit

Y la configuración del cliente Kerberos se habrá completado.

Configurar el cliente Kerberos

Paso 5 – Pruebas

Para este propósito de prueba, vamos a configurar la autenticación SSH utilizando Kerberos. La máquina cliente ‘cliente1.ahmad.io’ se conectará al servidor ‘krb5.ahmad.io’ a través de SSH con la autenticación Kerberos.

– Configurar el servidor ‘krb5.ahmad.io’

Crea un nuevo usuario del sistema llamado ‘ammar’.

useradd -m -s /bin/bash ammar

Entra en la administración Kerberos del KDC y añade un nuevo usuario principal llamado ‘ammar’.

kadmin.local
addprinc ammar

Cierra la interfaz de administración Kerberos y edita la configuración ssh ‘/etc/ssh/sshd_config’.

vim /etc/ssh/sshd_config

Descomenta la opción ‘GSSAPIAuthentication’ y habilítala cambiando el valor a ».

GSSAPIAuthentication yes
GSSAPICleanupCredentials yes

Guarda y cierra la configuración, y reinicia el servicio ssh.

systemctl restart sshd

Probar la autenticación Kerberos

– Configura la máquina ‘cliente1.ahmad.io’

Añade un nuevo usuario del sistema ‘ammar’ en la máquina cliente y entra en ella.

useradd -m -s /bin/bash ammar
su - ammar

Después, inicializa el usuario principal Kerberos ‘ammar’.

kinit ammar

Escribe la contraseña del usuario y después comprueba el Ticket disponible utilizando el siguiente comando.

klist

Y se te mostrará el siguiente resultado.

configurar la máquina cliente

Ahora puedes conectarte al servidor ‘krb5.ahmad.io’ utilizando la autenticación SSH Kerberos.

ssh krb5.ahmad.io

Y estarás conectado al servidor ‘krb5.ahmad.io’ a través de SSH con autenticación Kerberos.

prueba de acceso ssh

A continuación se muestra el registro SSH después de haber iniciado la sesión en el servidor.

Prueba realizada con éxito

Finalmente, la instalación y configuración del servidor y cliente Kerberos en Ubuntu 18.04 se ha completado con éxito.

Referencia

https://web.mit.edu/kerberos/

Scroll al inicio