LDAP (parte 8): Instalar y configurar la interfaz web LDAP Account Manager para administrar OpenLDAP
Venimos dedicando varios artículos a la instalación y configuración de OpenLDAP usando la línea de comandos.
Sin embargo, aunque la instalación la deberemos realizar siempre de este modo, los aspectos relacionados con la configuración y el uso de LDAP no tienen que resolverse siempre de este modo.
De hecho, existe una herramienta llamada LDAP Account Manager, que nos permite realizar la práctica totalidad de estas operaciones desde la comodidad de una interfaz web. Además, al tratarse de una aplicación web, funciona perfectamente en diferentes plataformas, permitiéndonos administrar el servidor LDAP desde cualquier lugar y desde cualquier sistema o dispositivo compatible.
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í.
Hoy aprenderemos a instalarla y realizar una configuración básica, sobre el sistema Ubuntu Server 20.04 LTS que venimos utilizando durante esta serie de artículos. Y en un próximo artículo aprenderemos a utilizarla para administrar nuestros usuarios y grupos en el servidor OpenLDAP.
Siempre puedes obtener más información sobre LDAP Account Manager en su página oficial (http://sourceforge.net/projects/lam) o en la Wikipedia (http://en.wikipedia.org/wiki/LDAP_Account_Manager).
Preparar el sistema para la instalación
LDAP Account Manager se encuentra de forma predeterminada en los repositorios oficiales de Ubuntu 20.04 LTS, por lo que será muy sencillo instalarlo.
La única circunstancia a tener en cuenta son las dependencias. Como se trata de una aplicación escrita en PHP, para funcionar correctamente necesita disponer de un servidor LAPM instalado y activo en el servidor.
El acrónimo LAMP se refiere a una infraestructura web basada en las siguientes herramientas:
-
El sistema operativo LInux.
-
El servidor web Apache.
-
El gestor de bases de datos MySQL.
-
El lenguaje de programación PHP
PHP puede sustituirse con Perl o Python y MySQL con MariaDB.
Sin embargo, verás que este aspecto también se resuelve fácilmente.
Por lo pronto, comenzaremos por asegurarnos de que el sistema se encuentra completamente actualizado. Para lograrlo, bastará con ejecutar una orden como la siguiente:
sudo apt update -y && sudo apt upgrade -y && sudo apt dist-upgrade -y
En realidad, se trata de tres comando, que se ejecutarán de forma sucesiva: el primero actualiza los repositorios del sistema, el segundo actualiza los paquetes que sean necesarios y el tercero se asegura de llevarlos a su última versión.
Por su parte, con el argumento -y indicamos que aplique, de forma predeterminada, una respuesta afirmativa para cualquier pregunta que el sistema necesite hacernos. De este modo, el comando se ejecuta sin preguntar nada.
A continuación, instalaremos todos los paquetes necesarios, pero lo conseguiremos con una sola orden como esta:
sudo apt install apache2 php php-cgi libapache2-mod-php php-mbstring php-common php-pear -y
Después de esto, ya tendremos a nuestra disposición tanto el servidor Apache como el intérprete de lenguaje PHP.
Lo siguiente será habilitar la extensión php-cgi. Lo conseguimos con la siguiente orden:
sudo a2enconf php7.4-cgi
Al hacerlo, el comando nos informa de que la tarea se ha realizado.
Siguiendo las indicaciones, reiniciamos el servicio con la siguiente orden:
sudo systemctl reload apache2
Instalación de LDAP Account Manager
Llegados a este punto, estamos listos para Instalar de LDAP Account Manager. Bastará con escribir la siguiente orden:
sudo apt install ldap-account-manager -y
Como en los casos anteriores, hemos añadido la opción -y para evitar tener que responder al comando de instalación.
Cuando termine la instalación, es recomendable restringir el acceso a la interfaz web de LDAP Account Manager únicamente para equipos de la red local. Para lograrlo, basta con editar el archivo ldap-account-manager.conf.
sudo nano /etc/apache2/conf-enabled/ldap-account-manager.conf
Una vez que tengamos el contenido del archivo en pantalla, localizamos una línea con el siguiente contenido:
Require all granted
Cuando la hayamos localizado, insertamos un carácter almohadilla (#) delante, para comentarla. A continuación, añadimos una línea debajo con un texto similar al siguiente:
Require ip 127.0.0.1 192.168.1.0/24
Como es lógico, tendrás que ajustar los valores para que representen tu dirección de red.
Una vez completados los cambios, pulsamos las teclas Ctrl + X para salir, y nos aseguramos de guardar los cambios
Por último, volvemos a reiniciar el servicio de apache con la siguiente orden:
sudo systemctl restart apache2
Iniciar LDAP Account Manager por primera vez
Para iniciar LDAP Account Manager, recurriremos a otro equipo de la red, con interfaz gráfica, en el que abriremos un navegador de Internet.
A continuación, en la barra de direcciones, escribimos la dirección IP de nuestro servidor Ubuntu, seguida de la palabra lam. Es decir, algo como esto:
http://192.168.1.10/lam
Esto nos llevará a la página inicial de LDAP Account Manager, pero antes de comenzar a utilizarlo, deberemos hacer una configuración inicial.
Al hacerlo, llegamos a una página donde tenemos dos opciones:
-
Edit general settings.
-
Edit server profiles.
A continuación, veremos cómo resolver ambas tareas.
Editar la configuración general.
Comenzaremos eligiendo la opción Edit general settings (Editar la configuación general) para establecer el perfil del servidor.
No obstante, antes de entrar en la opción elegida, LDAP Account Manager nos pide la contraseña maestra. Esta contraseña no está relacionada con la que escribimos para la administración del directorio OpenLDAP, sino que es propia de LDAP Account Manager. De forma predeterminada, su valor es lam, aunque deberemos cambiarla lo antes posible.
Así llegamos a la página Configuración general, que se divide, a su vez en cuatro apartados diferentes:
-
Preferencias de seguridad (Security settings), donde podemos establecer los siguientes valores:
-
Un límite de tiempo en el que una sesión puede estar inactiva (Session timeout). Después de ese periodo, se cerrará automáticamente. Como puedes ver, de forma predeterminada, el límite es de 30 minutos.
-
Una lista de direcciones IP desde las que se puede acceder a LDAP Account Manager. (Allowed hosts). Se pueden establecer rangos de valores usando el carácter asterísco (*). Por ejemplo, 192.168.1.*.
-
Establecer si la sesión será cifrada (Encrypt session). En caso afirmativo, en los archivos de sesión se cifrará la información sensible, como las contraseñas. Solo estará disponible se está habilitado OpenSSL en PHP y añade seguridad a costa del rendimiento.
-
Los certificados SSL (SSL certificates) que usaremos, aunque de forma predeterminada se utilizan los certificados que tengamos preinstalados en el sistema.
-
-
Política de contraseñas (Password policy), donde podemos indicar una política centralizada para las contraseñas en LDAP Account Manager. Esta política será válida en todos los campos de contraseña dentro del administrador LDAP Account Manager, salvo las contraseñas de configuración.
-
Iniciando sesión (Logging), que permite el seguimiento de eventos de forma integrada con el sistema (syslog en GNU/Linux o el Visor de eventos en Windows) o en un archivo separado.
Debemos tener cuidado con los archivos de eventos de LAM, porque en el nivel de Advertencia pueden contener información sensible (como contraseñas). Por ello, en un sistema en producción, debemos cambiar el Nivel de trazas a un valor diferente.
En cuanto a los errores que pueda producir PHP, LDAP Account Manager los ignora de forma predeterminada y, en la mayoría de los casos, esta será la opción apropiada.
-
Cambiando la contraseña maestra (Change master password), es la opción que nos permite cambiar la contraseña maestra. No debemos dejar el valor predeterminado (lam), porque es ampliamente conocido.
De momento, dejaremos todos los valores predeterminados, salvo la contraseña maestra. Por lo que nos dirigimos a la parte inferior de la página y la escribimos (por duplicado, como es habitual, para evitar los errores tipográficos).
Al hacerlo, volveremos a la pantalla principal.
Editar perfiles del servidor.
Una vez de vuelta en la pantalla principal, el siguiente paso será editar los perfiles del servidor. Para lograrlo, deberemos volver a la página Configuración de LAM (LAM Configuration).
Como cabe esperar, ahora haremos clic sobre la segunda opción: Editar perfiles del servidor (Edit server profiles). Los perfiles del servidor almacenan información sobre el servidor OpenLDAP y las características de sus cuentas. Un aspecto importante es que no hay límite en el número de perfiles de servidor, aunque, como veremos, nosotros nos centraremos en los valores predeterminados.
Como antes, para entrar en la opción elegida, LDAP Account Manager nos pide la contraseña maestra. Debes tener en cuenta que el cambio de contraseña que hemos hecho más arriba tiene efecto cuando iniciemos sesión la próxima vez por lo que, si has seguido los pasos que indicamos aquí de forma consecutiva, deberás seguir usando la contraseña predeterminada (lam), aunque la próxima vez que entres, ya deberás usar la nueva.
Así llegamos a la página Configuración de los perfiles. Como puedes ver, la página se divide en cuatro solapas:
-
Configuración general (General settings), que contiene la información global del servidor LDAP, como el nombre del host o las características de seguridad.
-
Tipos de cuentas (Account types), donde se indican las diferentes clases de cuentas que administraremos, como usuarios, grupos o equipos.
-
Módulos (Modules), que contiene la lista de módulos que definen las características de las cuentas que vamos a administrar (si son cuentas Unix, Samba, Koalab, etc).
-
Preferencias del módulo (Module settings), que contiene aspectos específicos del módulo que hayamos seleccionado en la solapa anterior.
Aquí nos centraremos sólo en las dos primeras.
Solapa Configuración general
La solapa Configuración general se divide en las siguientes áreas:
-
Preferencias del servidor (Server settings)
-
Configuración del idioma (Language settings)
-
Preferencias de lamdaemon (Lamdaemon settings)
-
Configuración de herramientas (Tool settings)
-
Preferencias de seguridad (Security settings)
Iremos explicando el contenido de cada una de ellas según vayamos avanzando.
En el apartado Preferencias del servidor deberemos completar los siguientes datos:
-
Dirección del servidor (Server address): Como el servidor OpenLDAP se encuentra en el mismo equipo que LDAP Account Manager, nos limitaremos a dejar el valor predeterminado (ldap://localhost:389).
-
Activar TLS (Activate TLS): TLS son las siglas de Transport Layer Security (Seguridad de la capa de transporte). Como por ahora no vamos a utilizar conexiones cifradas, mantenemos el valor predeterminado (no).
-
Sufijo del árbol (Tree suffix): LDAP Account Manager incluye un navegador para LDAP. Si queremos hacer modificaciones de forma directa en él , deberemos incluir aquí el sufijo que use nuestro árbol. Para nuestro ejemplo, será este: dc=somebooks,dc=local.
-
Límite de búsqueda LDAP (LDAP search limit): Permite reducir los resultados de una búsqueda cuando tenemos un directorio muy extenso. En nuestro caso, lo dejaremos desactivado.
En el apartado Configuración del idioma, elegimos el idioma para este perfil de servidor. En nuestro caso elegimos, lógicamente, el idioma Español.
LDAP Account Manager sólo puede manejar carpetas personales (home) y cuotas mediante scripts externos. El apartado Preferencias de lamdaemon nos permite indicar cuál es el servidor para las carpetas personales y dónde se encuentra el script que administra las cuotas.
También permite establecer los permisos predeterminados para las carpetas personales de los nuevos usuarios. El apartado Configuración de herramientas (Tool settings) nos permite indicar si utilizaremos algunas de las herramientas que se relacionan:
-
Editor de PDF (PDF editor): Si lo habilitamos, podremos exportar la información de las cuentas en archivos PDF. Además, podremos editar los perfiles PDF para indicar la estructura de la página y la información incluida.
-
Editor de OU (OU editor): Se trata de un sencillo editor que nos permitirá añadir o quitar Unidades Organizativas de nuestro árbol LDAP.
-
Información del servidor (Server information): Nos mostrará información y estadísticas relacionadas con el servidor LDAP.
-
Comprobar (Tests): Permite verificar si el esquema LDAP que estamos usando es compatible con LDAP Account Manager, indicando los posibles problemas.
-
Explorador de esquemas (Schema browser): permite examinar el esquema del servidor LDAP, obteniendo los tipos de clases, atributos, sintaxis y reglas que hay disponibles.
-
Editor de perfiles (Profile editor): Contiene plantillas para las cuentas. Con él, se podrán indicar valores predeterminados que se utilizarán durante la creación de cuentas.
-
Multi edit: Facilita la modificación por lotes de un gran número de entradas LDAP, añadiendo o quitando atributos o asignándoles valores específicos.
-
Enviar archivos (File upload): Nos permite crear las cuentas mediante un sencillo editor de textos, usando formato CVS, y después incluirlas todas a la vez en el árbol LDAP subiendo el archivo
Aunque puede ser muy interesante habilitar algunas de estas opciones, de momento lo dejaremos todo en blanco. En el apartado Preferencias de seguridad (Security settings), dispondremos de dos métodos de inicio de sesión: Lista fijada y Búsqueda LDAP.
-
Si elegimos Lista fijada, (Fixed list), deberemos especificar uno o varios usuarios (uno en cada línea). Por cada uno de ellos, escribiremos su nombre global único (Distinguished Name – DN) siguiendo las indicaciones que vimos al principio de este capítulo (por ejemplo, cn=admin,dc=somebooks,dc=local).
-
Por su parte, eligiendo Búsqueda LDAP (LDAP search) haremos que LDAP Account Manager busque un DN en el directorio a partir de un nombre de usuario.
En nuestro caso, elegiremos la primera opción. Por último, también podremos cambiar la contraseña de este perfil de servidor, escribiéndola por duplicado en los dos últimos campos de esta página.
Solapa Tipos de cuentas
LDAP Account Manager admite diferentes tipos de entradas LDAP y, en esta solapa, tenemos la oportunidad de indicar las que necesitamos administrar nosotros en particular. La solapa Tipos de cuentas se divide sólo en dos áreas:
-
Tipos de cuentas disponibles
-
Tipos de cuentas activos
A continuación veremos el contenido de ambas: La sección Tipos de cuentas disponibles (Available account types) muestra una lista de los posibles tipos de cuentas. Podemos activar cualquiera de ellos haciendo clic en el signo más que hay junto a cada uno de ellos. La sección Tipos de cuentas activos (Active account types) contiene los tipos de cuentas que se encuentran vigentes en nuestro sistema. En cada uno de ellos, podremos configurar diferentes opciones, aunque nosotros nos limitaremos a las básicas:
-
Sufijo LDAP (LDAP suffix): Como cabe esperar, debe contener el sufijo LDAP para cada entrada de este tipo.
-
Atributos del listado (List attributes): Representa la lista de atributos que se mostrarán en el listado de cuentas.
En particular, para este ejemplo, podemos limitarnos a escribir el sufijo para cada uno de los tipos de cuentas que vamos a manejar. En nuestro caso serán los siguientes:
-
Para el tipo de cuenta Usuarios, escribiremos el sufijo ou=unidad,dc=somebooks,dc=local
-
Para el tipo de cuenta Grupos, escribiremos el sufijo ou=unidad,dc=somebooks,dc=local
Como puedes suponer, los valores concretos dependerán de la estructura del directorio que hemos creado en los primeros artículos de esta serie.
Cuando hayamos concluido, hacemos clic sobre el botón Guardar que encontramos al final de la página. Al hacerlo, volveremos a la pantalla principal y estaremos listos para comenzar a usar LDAP Account Manager, pero eso será tema para un artículo diferente.
Por el momento, lo dejaremos aquí. Espero que te haya resultado interesante.