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
- Configurar el archivo FQDN
- Instalar el servidor KDC Kerberos
- Configurar el servidor KDC Kerberos
- Instalar y configurar el cliente Kerberos
- 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)
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‘.
Y el servidor Admin igual que el servidor Kerberos ‘krb5.ahmad.io’.
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’.
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
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.
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 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‘.
El servidor Kerberos es ‘krb5.ahmad.io‘.
Y el servidor Admin igual que el servidor Kerberos ‘krb5.ahmad.io’.
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.
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
– 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.
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.
A continuación se muestra el registro SSH después de haber iniciado la sesión en el servidor.
Finalmente, la instalación y configuración del servidor y cliente Kerberos en Ubuntu 18.04 se ha completado con éxito.