Introducción
OpenLDAP es una implementación libre del protocolo LDAP (Lightweight Directory Access Protocol), ampliamente utilizada para gestionar directorios de usuarios y grupos en redes corporativas y entornos educativos. En este tutorial configuraremos:
- Un servidor OpenLDAP sobre Linux, incluyendo dominio y administración con contraseña.
- LDAP Account Manager (LAM) para administración web del directorio.
- Un cliente Linux que se autentica contra el servidor LDAP.
- Creación de OUs, grupos y usuarios vía LAM.
- Verificación de la integración desde el cliente.
Este ejercicio está pensado para realizarse en dos máquinas virtuales (o físicas):
- Servidor: dominio
abc.test
(donde “abc” son tus iniciales). - Cliente: también miembro de
abc.test
.
Requisitos previos
- Dos máquinas Linux (Debian/Ubuntu o derivadas), con dos interfaces de red en modo NAT host-only para comunicación mutua.
- Acceso root o usuario con sudo en ambas.
- Conexión a Internet para instalar paquetes.
1. Mostrar IP y FQDN del servidor
En el servidor, comprueba tus interfaces y nombre de host:
# Muestra todas las IP asignadas
ip a
# Verifica el nombre de host corto
hostname
# Verifica el FQDN (debe resolver tu dominio abc.test)
hostname -f
Captura de pantalla de la salida de estos comandos y aplícalos en tu informe.
2. Instalación y configuración de OpenLDAP
Paso 2.1 – Instalar paquetes
sudo apt update
sudo apt install -y slapd ldap-utils
Durante la instalación:
- Dominio:
abc.test
- Contraseña de administrador: elige una clave segura (por ejemplo
AdminLdap123!
).
Si no te la pide, reconfigura:
sudo dpkg-reconfigure slapd
Paso 2.2 – Verificar esquema y suffix
Edita (si fuera necesario) /etc/ldap/ldap.conf
para que apunte al servidor:
URI ldap://localhost
BASE dc=abc,dc=test
3. Mostrar el contenido actual de la base de datos
Para ver la base recién creada:
sudo slapcat
o bien:
ldapsearch -x -LLL -H ldap://localhost -D "cn=admin,dc=abc,dc=test" -W -b "dc=abc,dc=test"
Captura de pantalla de la salida mostrando las entradas base (
dc=abc,dc=test
).
4. Instalación de LDAP Account Manager (LAM)
sudo apt install -y ldap-account-manager
5. Configurar LAM para acceso remoto solo por admin
Edita el fichero de configuración principal, por ejemplo /etc/ldap-account-manager/config.cfg.php
:
$servers->setValue('server','host','127.0.0.1');
$servers->setValue('server','base',array('dc=abc,dc=test'));
$servers->setValue('login','attr','cn');
$servers->setValue('login','bind_id','cn=admin,dc=abc,dc=test');
$servers->setValue('login','bind_pass','AdminLdap123!');
Y en el apartado de control de acceso:
$login->setValue('access','users', array('*')); // solo admin
$login->setValue('access','admins', array('cn=admin,dc=abc,dc=test'));
Reinicia Apache2:
sudo systemctl restart apache2
Accede desde el navegador a http://IP_DEL_SERVIDOR/lam
e inicia sesión con:
- Usuario:
admin
- Contraseña: la que definiste.
6. Configurar sufijos de usuarios y grupos en LAM
En LAM, ve a Global Configuration → Account Settings y define:
- Users suffix:
ou=usuarios,dc=abc,dc=test
- Groups suffix:
ou=grupos,dc=abc,dc=test
Guarda los cambios.
7. Crear OU y un grupo “rrhh”
- Dentro de LAM, ve a Object Browser.
- Crea una OU llamada
usuarios
bajodc=abc,dc=test
. - Crea una OU llamada
grupos
bajodc=abc,dc=test
. - Dentro de
grupos
, crea un Group tipoposixGroup
con:- cn:
rrhh
- gidNumber:
10000
(o el siguiente disponible).
- cn:
Captura de pantalla de la creación del grupo
rrhh
.
8. Crear un usuario “usuario.abc” y asignarlo a rrhh
En LAM:
- Selecciona New User → posixAccount.
- Rellena:
- cn:
usuario.abc
- sn:
abc
- uid:
usuario.abc
- uidNumber:
10000
- gidNumber:
10000
(el del gruporrhh
) - Home Directory:
/home/usuario.abc
- Login shell:
/bin/bash
- User Password: define una clave.
- cn:
- Guarda y comprueba que aparece en
ou=usuarios
.
Captura de pantalla con el nuevo usuario y su grupo.
9. Configurar cliente Linux para autenticación LDAP
En la máquina cliente:
sudo apt update
sudo apt install -y libnss-ldap libpam-ldap nscd
Durante la instalación:
- URI LDAP server:
ldap://IP_DEL_SERVIDOR
- Distinguished name of the search base:
dc=abc,dc=test
- LDAP version: 3
- Bind DN: deja vacío (anónimo)
- Bind password: deja vacío
- Root LDAP suffix:
dc=abc,dc=test
10. Ajustar archivos de configuración
10.1 /etc/nsswitch.conf
Añade ldap
a passwd y group:
passwd: compat ldap
group: compat ldap
shadow: compat ldap
10.2 /etc/pam.d/common-auth
y /etc/pam.d/common-session
Verifica que incluyan:
auth required pam_unix.so nullok_secure
auth required pam_ldap.so use_first_pass
session required pam_unix.so
session required pam_ldap.so
session optional pam_mkhomedir.so skel=/etc/skel/ umask=0022
Reinicia NSS caching:
sudo systemctl restart nscd
11. Verificar que el cliente ve usuarios LDAP
getent passwd usuario.abc
Deberías ver la línea del usuario con su UID, GID y home.
Captura de pantalla de la salida de
getent passwd usuario.abc
.
12. Iniciar sesión con el usuario LDAP
En la consola de cliente (o vía SSH):
su - usuario.abc
Verifica:
whoami # debe imprimir usuario.abc
id
ls -ld ~ # la carpeta /home/usuario.abc debe existir
Captura de pantalla del prompt tras iniciar sesión y del contenido de tu home.
Conclusión
Con estos pasos has desplegado un entorno LDAP completo:
- Servidor OpenLDAP configurado y poblado.
- LAM para gestión web de usuarios y grupos.
- Cliente Linux autenticándose y creando homes al vuelo.
- Creación de OUs, grupos y usuarios mediante interfaz web.
