Autentificación del sistema con OpenLDAP

Como ya hemos comentado anteriormente, una de las utilidades más importantes de un servidor LDAP es como servidor de autentificación. Autentificarse es necesario para entrar en un sistema linux. También para acceder a algunos servicios como un servidor FTP o a páginas privadas en un servidor web. Aquí veremos las modificaciones que hay que realizar en un sistema Linux para que autentifique a los usuarios en un servidor LDAP en lugar de utilizar los clásicos archivos /etc/passwd, /etc/group y /etc/shadow.

 

Paso 1: Instalación de ldap-auth-client

Para que el PC cliente se autentifique por LDAP, instalaremos el meta-que instalará los paquetes y herramientas necesarias para configurar el cliente. También instalaremos el paquete nscd que es un caché de nombres y acelerará todas las operaciones de autentificación:

// Instalar meta-paquete ldap-auth-client y nscd
sudo apt-get install ldap-auth-client nscd

Acto seguido ejecutaremos auth-client-config que configurará el archivo /etc/nsswitch.conf para que utilice ldap:

// Configurar /etc/nsswitch.conf para que utilice ldap
sudo auth-client-config -t nss -p lac_ldap

 

Paso 2: Instalación de libpam-ldapd

Después instalaremos y configuraremos libpam-ldapd para que conecte con nuestro servidor LDAP cuando haya que realizar alguna operación de autentificación. La librería libpam-ldapd permite que las aplicaciones que utilizan PAM para autentificarse, puedan hacerlo mediante un servidor LDAP. Para que el sistema linux se autentifique mediante un servidor LDAP es necesario instalar esta librería ya que utiliza PAM. El archivo de configuración de ésta librería es /etc/nslcd.conf. pero no será necesario editarlo ya que al instalar el paquete, se iniciará el asistente de configuración.

// Instalar librería libpam-ldapd
sudo apt-get install libpam-ldapd

Después se iniciará el asistente de configuración de libpam-ldapd al que tendremos que proporcionar los datos básicos como quién es el servidor LDAP (nombre o IP):

 

URI del servidor LDAP

Después debemos indicar cuál es la base de nuestro directorio LDAP (base DN):

Base DN del directorio LDAP

Y finalmante debemos indicar los servicios que se habilitarán para búsquedas por LDAP. En nuestro caso solamente seleccionaremos el servicio group:

Servicios a configurar por LDAP

 

Paso 3: Actualización de PAM

Para que el sistema PAM se reconfigure para utilizar LDAP, es necesario ejecutar el comando pam-auth-update:

// Reconfiguración de PAM
sudo apt-get install pam-auth-update

Aparecerá el asistente de configuración de PAM: pulsaremos Aceptar:

Asistente de configuración de PAM

Posteriormente debemos indicar los perfiles PAM a habilitar. Seleccionaremos todos: 

Perfiles PAM a habilitar

Acto seguido debemos reiniciar el servico caché de nombres:

// Reiniciar el servico caché de nombres 
sudo /etc/init.d/nscd restart

A partir de este momento ya podemos comenzar a utilizar la autentificación del sistema por LDAP.

Nota: Si quieremos autentificarnos en el sistema con un usuario del LDAP, debemos previamente crear la carpeta home de dicho usuario y cambiar el propietario y el grupo de dicha carpeta para que coincida con el usuario y el grupo del usuario configurado en el LDAP.

 

Probar la autentificación

Nuestro servidor LDAP ya debería autentificar correctamente . Podemos probar la autentificación de los servicios mediante el comando pamtest. Si deseamos probar que funciona el servicio passwd (cambiar contraseña) sobre un usuario del directorio LDAP (ejemplo jessica) , podemos ejecutar:
// Probando el cambio de contraseña
pamtest passwd jessica
Trying to authenticate for service .
Password: // Introducimos el password de jessica
Authentication successful. // La autentificación ha sido satisfactoria
También podemos utilizar el comando finger sobre usuarios que estén solamente en el directorio LDAP, por ejemplo joel:
// Probando finger
finger joel
Login: joel Name: Joel Javier
Directory: /home/www/alumnos Shell: /bin/sh
Last login Tue Sep 27 18:02 (CEST) on pts/3 from 192.168.1.213
No mail.
No Plan.
Podemos por ejemplo, desde una consola de root, cambiar mediante el comando 'su' (su=Switch User - cambiar de usuario) a un usuario que esté en el directorio LDAP, para lo cuál no nos pedirá contraseña ya que root tiene permiso para cambiar a cualquier usuario. Si posteriormente cambiamos a otro usuario del directorio, ahora sí que nos pedirá contraseña. Deberemos introducir la contraseña que esté almacenada en el directorio LDAP para dicho usuario:
// Cambiando de usuario
su joel // Somos root y cambiamos a joel
joel@ubuntu: // No nos pide password
joel@ubuntu:/$ su jessica // Somos joel, y cambiamos a jessica
Password: // Nos pide password, le introducimos
jessica@ubuntu:/$ // Ha cambiado correctamente

Icono de iDevice

Reflexión

Si configuramos los PCs de un aula de informática para que se autentifiquen en el servidor LDAP, ¿podrán los usuarios utilizar su cuenta de usuario en cualquier PC sin necesidad de crear los usuarios en cada PC?