Autentificación en Kerberos

Kerberos es un protocolo de autenticación que permite a dos ordenadores en una red insegura demostrar su identidad mutuamente de manera segura.

Usa clave simétrica y requiere un tercero de confianza, denominado «centro de distribución de claves» (KDC), y que consta de dos partes: un «servidor de autenticación» (AS) y un «servidor emisor de tickets» (TGS).

Kerberos tiene una base de datos de claves secretas; cada entidad en la red —cliente o servidor— comparte una clave secreta conocida únicamente por él y Kerberos. El conocimiento de esta clave sirve para probar la identidad de la entidad. Para una comunicación entre dos entidades, Kerberos genera una clave de sesión, la cual pueden usar para asegurar sus problemas.

Es multiplataforma.

Para llevar a cabo su instalación en Linux, primero hay que tener configurado un servidor DNS y tener instalado NTP, para sincronizar el servidor con los clientes.

Para instalar NTP:

1

Tras lo cual editamos el fichero ntp.conf:

2

Una vez hecho esto, nos vamos al cliente, instalamos ntpdate y editamos su archivo de configuración:

3

Ahora, vamos a sincronizar con el cliente:

4

Para no tener que llevar a cabo una sincronización de forma constante, vamos a escribir un script para que se automitice el proceso cada hora. Para ello creamos un archivo en cron.hourly:

5

Con esto ya hemos acabado con los requisitos previos. Ahora instalamos kerberos con apt-get install krb5-kdc krb5-admin-server, y nos vamos al archivo de configuración krb5.conf para introducir nuestro dominio:

6

Luego, escribimos krb5_newrealm:

7

Una inicializado un nuevo reino, nos conectamos a la base de datos mediante el comando kadmin.local para añadir usuarios a la misma:

8

A continuación, editamos kadm5.acl para que todos los usuarios que sean admin se puedan conectar a la base de datos y creamos un usuario que tenga permisos de admin:

9

10

 

Reiniciamos el servicio con /init.d/krb5-admin-server restart o service krb5-admin-server restart y nos vamos al cliente de nuevo.

En él, vamos a instalar las utilidades de cliente:

apt-get install krb5-user

11

 

12

 

Editamos su fichero de configuración:

13

Y por último pedimos un ticket, el cual tiene una duración aprox de 10h.

14

Una vez hecho todos estos pasos, vamos a comprobar la autenticación en kerberos, para ello nos vamos al cliente y creamos un usuario con adduser llamado kerberos:

15

Una vez creado en el cliente, lo creamos en el servidor kerberos:

16

Para comprobar que la autenticación funciona, a la hora de crearlo en el servidor, lo hemos hecho con una contraseña distinta a la del cliente.

Ahora instalamos el paquete libpam-krb5, el cual autoconfigura PAM para que autentique por kerberos:

17

Por último, para autenticarnos hacemos un su kerberos, usando la contraseña introducida en el servidor, si nos deja autenticarnos, significa que está usando kerberos, ya que se está usando una contraseña que no se encuentra en el cliente.

Como podemos ver en log mediante un tail /var/log/auth.log, se produce el proceso de autenticación18

 

Para terminar, vemos como nos deja iniciar sesión con el usuario Kerberos, introduciendo la contraseña del servidor (distinta de la del cliente):

19

 

 

 

Fuentes: Wikipedia