11.9. Configurar un equipo cliente con Ubuntu para autenticarse en el servidor OpenLDAP

En los apartados anteriores hemos configurado el servidor OpenLDAP para que sea capaz de autenticar clientes en la red. Ahora llega la segunda parte de la tarea: Configurar los clientes.

En este apartado 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.

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

  • libpam-ldap: Que facilitará la autenticación con LDAP a los usuarios que utilicen PAM.
  • 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.
  • nss-updatedb: Mantiene una caché local del de la información del usuario y grupo en el directorio LDAP.
  • libnss-db: Incluye extensiones para usar bases de datos de red.
  • nscd: Es un demonio que ofrece una caché para muchas de las peticiones mś frecuentes del servicio de nombres.
  • 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 libpam-ldap libnss-ldap nss-updatedb libnss-db nscd ldap-utils -y

1

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-atut-config.

2

En el primar paso, nos solicita la dirección URi del servidor LDAP. Es importante dejar el principio tal y como lo encontramos (ldapi:///).

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

3

Cuando hayamos concluido, pulsamos la tecla 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.

4

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.

5

Elegimos la opción Yes y pulsamos la tecla Intro.

A continuación, el sistema nos pregunta si queremos que sea necesario identificarse para realizar consultas en la base de datos de LDAP.

6

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=es)

7

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.

8

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.

9

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/ldap.conf, /etc/ldap/ldap.conf y /etc/nsswitch.conf. Después, actualizaremos NSS y configuraremos PAM para que utilicen LDAP:

Editar el archivo /etc/ldap.conf

Como hacemos siempre, modificaremos el archivo utilizando el editor nano.

1

Recuerda editar el archivo con privilegios de superusuario.

Las modificaciones a realizar en el archivo son estas:

  1. Buscamos una línea como esta:
    #bind_policy hard

    y la sustituimos por esta:

    bind_policy soft

    (recuerda eliminar el carácter #, que haría que la línea fuese ignorada)

  2. Buscamos una línea como esta:
     pam_password md5

    y la sustituimos por esta:

    pam_password crypt
  3. Buscamos unalínea que comience por uri ldapi://y la sustituimos por esta:
    uri ldap://192.168.1.10

    Recuerda que:

    • Puedes hacer búsquedas dentro de nano usando la combinación de teclas Ctrl + w.
    • Debes sustituir la dirección IP 192.168.1.10 por la de tu servidor OpenLDAP.

2

Cuando hayamos concluido, pulsamos Ctrl + x para salir y nos aseguramos de guardar los cambios en el archivo.

Editar el archivo /etc/ldap/ldap.conf

Siguiendo la misma pauta del punto anterior, usamos el editor nano para editar el archivo:

1

Editamos el archivo con privilegios de superusuario.

Cuando se abra el archivo, podremos observar que, algunas de sus líneas, tienen el siguiente aspecto:

#BASE    dc=example,dc=com
 #URI     ldap://ldap.example.com	ldap://ldap-master.example.com:666
 #SIZELIMIT       12 #TIMELIMIT       15 #DEREF           never

Lo primero será borrar el carácter que hace que la línea permanezca comentada (#). Después, cambiaremos su contenido por este otro:

BASE    dc=somebooks,dc=local
URI     ldap://ldap.somebooks.local
SIZELIMIT       0 TIMELIMIT       0
DEREF           never

2

Cuando hayamos terminado, pulsamos Ctrl + x para salir y nos aseguramos de guardar los cambios en el archivo.

Editar el archivo /etc/nsswitch.conf

Por último, editamos el archivo /etc/nsswitch.conf.

1

Volvemos a utilizar el editor nano con privilegios de superusuario.

Al abrir el archivo, observaremos que, algunas de sus líneas, tienen el siguiente aspecto:

passwd:         compat group:          compat shadow:         compat
 hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 networks:       files
 protocols:      db files services:       db files ethers:         db files rpc:            db files

Debemos cambiar las líneas necesarias para que su contenido final sea como este:

passwd:         files ldap
group:          files ldap
shadow:         files ldap
 hosts:          files dns networks:       files
 protocols:      db files services:       db files ethers:         db files rpc:            db files

2

Al terminar, pulsamos Ctrl + x para salir y nos aseguramos de guardar los cambios en el archivo.

Actualizar NSS y configurar PAM para que utilicen LDAP

Este último apartado se va a encargar de resolver los dos pasos finales para que el cliente pueda utilizar las cuentas de usuario creadas en el servidor LDAP.

Por una parte, deberemos actualizar la caché local con la información de usuarios y grupos correspondientes a LDAP. Para conseguirlo, recurriremos al comando nss-updatedb que instalamos al principio de este apartado:

sudo nss_updatedb ldap

1

Debemos asegurarnos de que la salida del comando no ofrece ningún error.

Si al aplicar el comando anterior obtenemos un error como este…

Failed to enumerate nameservice: No such file or directory

… Lo más probable es que hayamos cometido un error al escribir la dirección IP del servidor en el archivo /etc/ldap.conf. Debes asegurarte de que dicha dirección es correcta y de que el servidor se encuentra accesible desde el cliente (es decir, que funciona la orden ping). Si no es así, se trata de un problema de configuración en las características de la red.

Si todo ha ido bien, podemos utilizar el comando getent, que nos permite obtener entradas de varios archivos de texto del sistema, por ejemplo, de passwd y group. La ventaja es que consolida la información local con la obtenida a través de la red.

Así pues, desde la consola ejecutamos el siguiente comando:

getent passwd

2

En este caso, no necesitamos privilegios de superusuario.

Como vemos en la imagen siguiente, la salida del comando ofrece al mismo tiempo información sobre los usuarios locales y los usuarios LDAP.

3

Salida del comando getent passwd.

Lo siguiente será actualizar la configuración de las políticas de autenticación predeterminadas de PAM, lo que conseguimos con el siguiente comando:

sudo pam-auth-update

4

Escribimos el comando y pulsamos Intro.

Al ejecutarlo, aparecerá un asistente, que comienza mostrándonos una pantalla informativa sobre la función de los módulos PAM.

5

Para continuar, pulsamos la tecla Intro.

Después, elegiremos cuáles de los módulos disponibles queremos habilitar. De forma predeterminada aparecen todos marcados…

6

… Por lo tanto, nos limitamos a volver a pulsar la tecla Intro para volver a la terminal

Un par de ajustes más

En realidad, el cliente ya está listo para que nos autentiquemos con una cuenta del servidor LDAP. Sin embargo, si ahora nos identificamos en el cliente con la cuenta jlopez (recuerda que es una de las cuentas que creamos en el servidor), encontraremos que no existe su carpeta /home/jlopez en el equipo cliente. Lógicamente, podríamos crear dicha carpeta a mano, pero habría que repetir el proceso en cada uno de los clientes en los que el usuario vaya a iniciar sesión.

Si queremos que la carpeta se cree automáticamente cuando el usuario inicie sesión por primera vez en un equipo, deberemos hacer uso de un módulo PAM llamado pam_mkhomedir. Esto lo conseguimos haciendo una pequeña modificación en el archivo /etc/pam.d/common-session del cliente.

1

Editamos el archivo utilizando el editor nano.

Cuando se abra el editor, añadiremos una nueva línea al principio del archivo con este contenido:

session required pam_mkhomedir.so skel=/etc/skel/ umask=0022

2

Al terminar, pulsamos Ctrl + x para salir y nos aseguramos de guardar los cambios en el archivo.

Si quieres obtener más detalles sobre el funcionamiento del módulo pam_mkhomedir, puedes recurrir a esta dirección:

http://linux.die.net/man/8/pam_mkhomedir

Otro inconveniente que tiene la configuración actual es que los usuarios LDAP no podrán cambiar sus propias contraseñas. Para solucionarlo, deberemos cambiar el archivo /etc/pam.d/common-password.

3

Como siempre, editamos el archivo utilizando nano.

Cuando veamos el contenido del archivo, buscaremos una línea como esta (recuerda que puedes usar la combinación de teclas crtl +w):

password    [success=1 user_unknown=ignore default=die]	pam_ldap.so use_authtok try_first_pass

y eliminamos su parte final, de modo que quede así:

password    [success=1 user_unknown=ignore default=die] pam_ldap.so

4

Cuando terminemos, pulsaremos Ctrl + x para salir y nos aseguraremos de guardar los cambios en el archivo.

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 + f7 para ir a una consola de texto) y escribir las credenciales de un usuario LDAP.

1

Sesión iniciada en el 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.

Anterior

Contenido

Siguiente