Cómo configurar el cliente LDAP para conectar la autenticación externa

LDAP (abreviatura de Lightweight Directory Access Protocol) es un conjunto de protocolos estándar de la industria y ampliamente utilizado para acceder a los servicios de directorio.

Un servicio de directorio, en términos sencillos, es una base de datos centralizada, basada en la red y optimizada para el acceso de lectura. Almacena y proporciona acceso a información que debe compartirse entre aplicaciones o que está muy distribuida.

Los servicios de directorio desempeñan un papel importante en el desarrollo de aplicaciones de intranet e Internet, ya que ayudan a compartir información sobre usuarios, sistemas, redes, aplicaciones y servicios en toda la red.

Un caso de uso típico de LDAP es ofrecer un almacenamiento centralizado de nombres de usuario y contraseñas. Esto permite que varias aplicaciones (o servicios) se conecten al servidor LDAP para validar a los usuarios.

Después de configurar un servidor LDAP que funcione, tendrá que instalar bibliotecas en el cliente para conectarse a él. En este artículo, vamos a mostrar cómo configurar un cliente LDAP para conectarse a una fuente de autenticación externa.

Espero que ya tengas un entorno de servidor LDAP que funcione, si no configura el servidor LDAP para la autenticación basada en LDAP.

Cómo instalar y configurar el cliente LDAP en Ubuntu y CentOS

En los sistemas cliente, necesitarás instalar algunos paquetes necesarios para que el mecanismo de autenticación funcione correctamente con un servidor LDAP.

Configurar el cliente LDAP en Ubuntu 16.04 y 18.04

Primero empieza por instalar los paquetes necesarios ejecutando el siguiente comando.

$ sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd

Durante la instalación, se te pedirán los detalles de tu servidor LDAP (proporciona los valores según tu entorno). Tenga en cuenta que el paquete ldap-auth-config que se autoinstala realiza la mayor parte de las configuraciones en función de las entradas que introduzca.

Enter LDAP Server URI
Enter LDAP Server URI

Next, enter the name of the LDAP search base, you can use the components of their domain names for this purpose as shown in the screenshot.

Enter LDAP Search Base
Enter LDAP Search Base

Also choose the LDAP version to use and click Ok.

Select LDAP Version
Select LDAP Version

Now configure the option to allow you to make password utilities that use pam to behave like you would be changing local passwords and click Yes to continue..

Make Local Root Database Admin
Make Local Root Database Admin

Next, disable login requirement to the LDAP database using the next option.

Disable Login to LDAP Database
Disable Login to LDAP Database

Also define LDAP account for root and click Ok.

Define LDAP Account for Root
Define LDAP Account for Root

Next, enter the password to use when ldap-auth-config tries to login to the LDAP directory using the LDAP account for root.

Enter LDAP Root Password
Enter LDAP Root Password

The results of the dialog will be stored in the file /etc/ldap.conf. Si desea realizar alguna alteración, abra y edite este archivo utilizando su editor de línea de comandos favorito.

A continuación, configure el perfil LDAP para NSS ejecutando.

$ sudo auth-client-config -t nss -p lac_ldap

A continuación, configure el sistema para utilizar LDAP para la autenticación actualizando las configuraciones de PAM. En el menú, elija LDAP y cualquier otro mecanismo de autenticación que necesite. Ahora debería poder iniciar sesión utilizando credenciales basadas en LDAP.

$ sudo pam-auth-update
Configurar el mecanismo de autenticación PAM
Configurar el mecanismo de autenticación PAM

En caso de que quieras que el directorio raíz del usuario se cree automáticamente, entonces debes realizar una configuración más en el archivo PAM de sesión común.

$ sudo vim /etc/pam.d/common-session

Add esta línea en él.

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

Guarda los cambios y cierra el archivo. A continuación, reinicie el servicio NCSD (Name Service Cache Daemon) con el siguiente comando.

$ sudo systemctl restart nscd$ sudo systemctl enable nscd

Nota: Si utiliza la replicación, los clientes LDAP tendrán que hacer referencia a varios servidores especificados en /etc/ldap.conf. Puede especificar todos los servidores de esta forma:

uri ldap://ldap1.example.com ldap://ldap2.example.com

Esto implica que la petición tendrá un tiempo de espera y si el Proveedor (ldap1.example.com) deja de responder, el Consumidor (ldap2.example.com) intentará ser alcanzado para procesarla.

Para comprobar las entradas LDAP de un usuario concreto desde el servidor, ejecute el comando getent, por ejemplo.

$ getent passwd tecmint

Si el comando anterior muestra los detalles del usuario especificado desde el archivo /etc/passwd, su máquina cliente está ahora configurada para autenticarse con el servidor LDAP, debería poder iniciar sesión utilizando credenciales basadas en LDAP.

Configurar el cliente LDAP en CentOS 7

Para instalar los paquetes necesarios, ejecute el siguiente comando. Tenga en cuenta que en esta sección, si está operando el sistema como un usuario administrativo no root, utilice el comando sudo para ejecutar todos los comandos.

# yum update && yum install openldap openldap-clients nss-pam-ldapd

A continuación, habilite el sistema cliente para autenticar utilizando LDAP. Puede utilizar la utilidad authconfig, que es una interfaz para configurar los recursos de autenticación del sistema.

Ejecute el siguiente comando y sustituya example.com por su dominio y dc=example,dc=com por su controlador de dominio LDAP.

# authconfig --enableldap --enableldapauth --ldapserver=ldap.example.com --ldapbasedn="dc=example,dc=com" --enablemkhomedir --update

En el comando anterior, la opción --enablemkhomedir crea un directorio principal de usuario local en la primera conexión si no existe ninguno.

A continuación, comprueba si las entradas LDAP para un usuario concreto del servidor, por ejemplo el usuario tecmint.

$ getent passwd tecmint

El comando anterior debería mostrar los detalles del usuario especificado desde el archivo /etc/passwd, lo que implica que la máquina cliente está ahora configurada para autenticarse con el servidor LDAP.

Importante: Si SELinux está habilitado en su sistema, necesita añadir una regla para permitir la creación de directorios personales automáticamente por mkhomedir.

Para más información, consulte la documentación apropiada del catálogo de documentos de OpenLDAP Software.

Resumen

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *