LDAP (parte 6): Configurar un cliente Ubuntu para autenticarse en el servidor OpenLDAP en Ubuntu 14.04 LTS

Publicado por P. Ruiz en

OpenLDAP logoCon el artículo anterior de esta serie (Importar los usuarios y grupos locales) completamos la configuración de OpenLDAP en un equipo con Ubuntu Server 14.04 LTS, para que fuese capaz de autenticar usuarios conectados a equipos cliente de la red.

Ahora llega la segunda parte de la tarea: Configurar los clientes.

En este artículo nos centraremos en la configuración de un cliente que está ejecutando un sistema Ubuntu Desktop. Más adelante veremos cómo resolver la tarea con clientes Windows.

Para tener más información sobre la estructura de los archivos LDIF, te recomiendo consultar el Capítulo 12: Instalar y configurar OpenLDAP en Ubuntu de nuestro libro Sistemas Operativos en Red (2ª edición).

Además, puedes consultar todos los artículos prácticos publicados en SomeBooks.es sobre LDAP. haciendo clic aquí.

Instalar el software necesario

En Ubuntu, necesitaremos ajustar el comportamiento de los servicios NSS y PAM en cada cliente que debamos configurar. Comenzamos por instalar los siguientes paquetes:

  • libnss-ldap: Permitirá que NSS obtenga de LDAP información administrativa de los usuarios (Información de las cuentas, de los grupos, información de la máquina, los alias, etc.).

  • libpam-ldap: Que facilitará la autenticación con LDAP a los usuarios que utilicen PAM.

  • ldap-utils: Facilita la interacción don LDAP desde cualquier máquina de la red.

Para instalarlos todos en una sola orden, tenemos que escribir lo siguiente:

sudo apt-get install libnss-ldap libpam-ldap ldap-utils -y

Terminamos el comando con -y para que instale las dependencias sin preguntarnos.

Durante el proceso, se activa un asistente que nos permite configurar el comportamiento de ldap-auth-config. En el primar paso, nos solicita la dirección URi del servidor LDAP. En nuestro caso, escribiremos la dirección IP del servidor y sustituiremos el protocolo ldapi:/// por ldap://.

A continuación, nos desplazamos hasta Aceptar con la tecla Tab y, una vez allí, pulsamos Intro.

En el siguiente paso, debemos indicar el nombre global único (Distinguished NameDN). Inicialmente aparece en valor dc=example,dc=net pero nosotros lo sustituiremos por dc=somebooks,dc=local.

… y volvemos a pulsar Tab hasta que se active Aceptar. Después pulsamos Intro

A continuación, el asistente nos pide el número de versión del protocolo LDAP que estamos utilizando. De forma predeterminada aparece seleccionada la versión 3.

Nos limitamos a pulsar de nuevo la tecla Intro.

A continuación, indicaremos si las utilidades que utilicen PAM deberán comportarse del mismo modo que cuando cambiamos contraseñas locales. Esto hará que las contraseñas se guarden en un archivo independiente que sólo podrá ser leído por el superusuario.

Elegimos la opción y pulsamos la tecla Intro.

Después, el sistema nos pregunta si queremos que sea necesario identificarse para realizar consultas en la base de datos de LDAP.

Elegimos la opción No y volvemos a pulsar la tecla Intro.

Ya sólo nos queda indicar el nombre de la cuenta LDAP que tendrá privilegios para realizar cambios en las contraseñas. Como antes, deberemos escribir un nombre global único (Distinguished NameDN), sustituyendo el valor predeterminado que nos ofrece (cn=manager,dc=example,dc=net) por que usamos en la configuración del servidor (cn=admin,dc=somebooks,dc=local).

Después de escribir el nombre correcto, pulsamos la tecla Intro.

En el último paso, el asistente nos solicita la contraseña que usará la cuenta anterior (como siempre, habrá que escribirla por duplicado para evitar errores tipográficos). Deberá coincidir con la que escribimos en el apartado Instalar OpenLDAP en el servidor.

Cuando terminemos de escribir la contraseña, pulsaremos la tecla Intro.

De vuelta en la pantalla de la terminal, podremos comprobar que no se han producido errores durante el proceso.

Con esto habremos terminado la configuración básica del cliente LDAP.

Como ocurría con el servidor, si más adelante observamos algún error o necesitamos efectuar alguna modificación, sólo tenemos que ejecutar el siguiente comando:

sudo dpkg-reconfigure ldap-auth-config

Realizar ajustes en los archivos de configuración.

Para completar la tarea, deberemos cambiar algunos parámetros en los archivos de configuración del cliente. En concreto, deberemos editar /etc/nsswitch.conf, /etc/pam.d/common-password y /etc/pam.d/common-session. Así es que, para no demorarnos más, comencemos…

Editar el archivo /etc/nsswitch.conf

En el archivo /etc/nsswitch.conf se incluyen las fuentes desde las que se obtiene la información del servicio de nombres en diferentes categorías y en qué orden.

Cada categoría de información se identifica bajo un nombre.

Como es habitual, el archivo está formado por texto plano. En él encontraremos columnas separadas por espacios o caracteres de tabulación. La primera columna indica el almacenamiento y, las restantes, el orden de los orígenes a consultar y un conjunto limitado de acciones a realizar como resultado de la consulta.

Para editar el archivo, basta con hacer uso de un editor de textos con privilegios de administración:

sudo gedit /etc/nsswitch.conf

Escribimos, o copiamos, la orden y pulsamos la tecla Intro.

A continuación, localizamos las líneas que comienzan por passwd, group y shadow y les añadimos el texto ldap, para indicar el nuevo origen para autenticar las cuentas.

El aspecto final del archivo será como en la imagen:

Editar el archivo /etc/pam.d/common-password

El archivo /etc/pam.d/common-password proporciona un conjunto común de reglas PAM para la comprobación de contraseñas.

En particular, la línea 26 contiene la opción use_authtok, que impide utilizar un segundo método de autenticación cuando ya ha sido aplicado otro anterior, aunque éste haya sido insatisfactorio.

Para evitar este comportamiento, deberemos eliminar la opción use_authtok de la citada línea 26 del archivo. Dado que en este caso el archivo también está construido con texto plano, volveremos a hacer uso de un editor de textos con privilegios de administración:

sudo gedit /etc/pam.d/common-password

De nuevo, escribimos la orden y pulsamos la tecla Intro.

En la ventana del editor, localizamos la línea 26…

… y comprobamos que contiene el argumento use_authtok.

Después de eliminarlo, nos aseguramos de guardar los cambios.

Por último, podemos cerrar la ventana del editor.

Editar el archivo /etc/pam.d/common-session

El archivo /etc/pam.d/common-session ofrece un conjunto de reglas PAM para el inicio de sesión, tanto si éste es interactivo como si es no interactivo.

Aquí será donde indiquemos que se debe crear un directorio home durante el primer inicio de sesión, también para los usuarios autenticados mediante LDAP. Este comportamiento lo conseguiremos añadiendo al final del archivo la siguiente línea:

session optional       pam_mkhomedir.so skel=/etc/skel umask=077

Como en las ocasiones anteriores, usaremos gEdit con privilegios de administrador para realizar el cambio:

sudo gedit /etc/pam.d/common-session

Escribimos la orden anterior y pulsamos la tecla Intro.

Una vez escrita, o copiada, la línea anterior al final del archivo, guardamos los cambios.

… Y, finalmente, podemos cerrar la ventana del editor.

Habilitar el demonio libnss-ldap

Una vez completados los pasos anteriores, ya estamos listos para activar el servicio libnss-ldap. Sin embargo, para lograrlo necesitaremos instalar el programa sysv-rc-conf, que se encarga, precisamente, de esta labor.

Por lo tanto, comenzaremos por abrir una ventana de terminal y escribir una orden como la siguiente:

sudo apt-get install sysv-rc-conf

Recuerda que GNU/Linux llama demonios a los programas que se ejecutan en segundo plano. En otros sistemas reciben el nombre de servicios.

Escribimos la orden y pulsamos la tecla Intro.

Una vez terminada la instalación, ya podemos activar libnss-ldap.Sólo hay que volver a la terminal y escribir lo siguiente:

sudo sysv-rc-conf libnss-ldap on

Como antes, escribimos la orden y pulsamos Intro.

Una vez completados todos los cambios, sólo queda reiniciar el equipo.

Reiniciamos Ubuntu.

Comprobar que funciona el inicio de sesión

La forma más sencilla de comprobar que podemos iniciar sesión en el servidor usando LDAP consiste en arrancar el sistema en modo texto (o arrancarlo en modo gráfico y usar la combinación de teclas alt + ctrl + f1 para ir a una consola de texto) y escribir las credenciales de un usuario LDAP.

Sesión iniciada con una cuenta del servidor.

En esta imagen podemos comprobar varias cosas:

  • Que nos encontramos en el equipo cliente.

  • Que estamos iniciando sesión con un usuario LDAP.

  • Que durante el inicio de sesión se crea el directorio /home para la cuenta.

  • Que el inicio de sesión se produce satisfactoriamente.

Y esto es todo por el momento. Espero que esta serie de artículos te esté resultando útil.