Montar servidor LDAP en Ubuntu (OpenLDAP)

Actualizado: 2026-01-07 · Dificultad: Fácil · Tiempo estimado: 20-30 min

Resultado: al final tendrás un servidor OpenLDAP funcionando con una estructura básica (OUs), usuarios y grupos, y podrás validar consultas y autenticación con ldapsearch.

Requisitos

Objetivo

Instalar y configurar OpenLDAP en Ubuntu, definir un Base DN (ej.: dc=lab,dc=local), crear las OUs ou=People y ou=Groups, y añadir un usuario y un grupo de ejemplo para usar posteriormente en FortiGate (autenticación remota por LDAP).

Conceptos clave

Antes de empezar, es importante entender algunos conceptos básicos de LDAP que se utilizarán a lo largo del tutorial.

Pasos

1) Preparación del sistema

Actualiza el sistema e instala los paquetes necesarios.

sudo apt update && sudo apt upgrade -y
sudo apt install slapd ldap-utils -y
Instalación de paquetes
Instalación de los paquetes necesarios.

Una vez instalamos slapd, automáticamente nos pide asignar una contraseña de administrador. “1234” para mi prueba.

Contraseña de administrador

Contraseña admin
Contraseña de administrador.

2) Configuración inicial de slapd

slapd es el demonio (servicio) principal de OpenLDAP: implementa el protocolo LDAP y permite el acceso y gestión del directorio.

Reconfiguramos slapd con el siguiente comando:

sudo dpkg-reconfigure slapd

Omisión de configuración

Seleccionamos No.

Omisión configuración

Nombre de dominio DNS

Ponemos el nombre de dominio que queremos para nuestro servidor. De aquí se obtendrá el DN: dc=lab,dc=local.

Establecer DNS

Nombre de la organización

Ponemos el nombre de la organización. Es meramente informativo; aparecerá en algunos atributos LDAP.

Establecer nombre organización

Confirmar acceso admin

Introducimos la contraseña de administrador (la del paso 1).

Acceso admin

Purgado de base de datos al purgar slapd

En esta opción normalmente seleccionamos No.

Purgado - NO

Mover base de datos antigua (copia de seguridad)

Normalmente seleccionamos Yes para mantener una copia si existían datos antiguos.

Copia de seguridad - Yes

3) Crear directorio de trabajo

Crearemos el directorio de trabajo /opt/ldap para trabajar de manera ordenada.

sudo mkdir -p /opt/ldap
sudo chown $USER:$USER /opt/ldap
cd /opt/ldap

4) Crear estructura base (OUs)

Vamos a crear las unidades organizativas People y Groups. Creamosel archivo base.ldif y guarda lo siguiente:


dn: ou=People,dc=lab,dc=local
objectClass: organizationalUnit
ou: People

dn: ou=Groups,dc=lab,dc=local
objectClass: organizationalUnit
ou: Groups

Aplica el LDIF:

ldapadd -x -D "cn=admin,dc=lab,dc=local" -W -f base.ldif

5) Crear un grupo y un usuario de ejemplo

Crea un grupo (ej.: vpn_users) y un usuario (ej.: user1). Guarda los siguientes archivos:

group.ldif


dn: cn=vpn_users,ou=Groups,dc=lab,dc=local
objectClass: posixGroup
cn: vpn_users
gidNumber: 5000

user1.ldif


dn: uid=user1,ou=People,dc=lab,dc=local
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: User One
sn: One
uid: user1
uidNumber: 10000
gidNumber: 5000
homeDirectory: /home/user1
loginShell: /bin/bash
userPassword: password123

Aplica ambos LDIF:

ldapadd -x -D "cn=admin,dc=lab,dc=local" -W -f group.ldif
ldapadd -x -D "cn=admin,dc=lab,dc=local" -W -f user1.ldif

Resultados

Esto es lo que hemos creado:

Validación

Verifica que puedes consultar el directorio y que aparecen las OUs, el usuario y el grupo.


ldapsearch -x -b "dc=lab,dc=local"
ldapsearch -x -b "ou=People,dc=lab,dc=local"
ldapsearch -x -b "ou=Groups,dc=lab,dc=local"

Preparación Ubuntu cliente

Vamos a crear un Ubuntu unido a este servidor para probar los accesos. Para ello ejecutamos:

sudo apt update
sudo apt install libnss-ldap libpam-ldap ldap-utils nscd -y

1) URI del servidor

Durante la instalación de los paquetes te pedirá que introduzcas la URI del servidor LDAP:

URI-Servidor

Si os fijais en el texto que hay en la linea rosa, este comienza con la palabra "ldapi". Esa i debemos de eliminarla, ya que es solo para conexiones locales. Nosotros queremos conectarnos a un servidor remoto así que con que ponga "ldap" nos vale.

Posteriormente verificar que tengais esta linea descomentada y con la IP del servidor en el archivo de configuración /etc/ldap.conf

URI-Servidor

2) Introducir DN

Nos pedirá que introduzcamos el DN base del dominio al que queremos unir el cliente, en este caso "dc=lab,dc=local":

Introducir base DN

2) Versión LDAP

Seleccionamos la versión 3

3) Require Login

Seleccionamos "No"

Requiere login

4) Preparación de los usuarios del sistema

Vamos a editar el fichero /etc/nsswitch.conf. Este fichero configura el servicio NSS, que sirve para decirle al sistema donde buscar la información. En este caso pondremos:

passwd: files ldap group: files ldap shadow: files ldap

Esto es decirle al sistema que los usuarios también los busque en LDAP

Requiere login

El resto de configuraciones las dejamos como están, solo cambiamos las 3 indicadas en la foto.

5) Configuración PAM

Vamos a editar el fichero /etc/pam.d/common-session. Este fichero configura el servicio NSS, que sirve para decirle al sistema donde buscar la información. En este caso pondremos:

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

Añadimos al final:

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

PAM (Pluggable Authentication Modules) es el sistema de autenticación de Linux.

6) Reiniciar servicios

Para finalizar, reiniciamos los servicios y reiniciamos el equipo

sudo systemctl restart nscd
reboot

7) Verificación

Vamos a usar el comando getent. Este sirve para consultar las bases de datos del sistema a través de NSS. Es decir, te dice lo que el sistema operativo ve y puede acceder.

getent passwd user1 
Info usuario user1
 getent group vpn_users 
getent passwd | grep user1 

Ahora podemos logearnos con un usuario remoto en el equipo cliente:

Info usuario user1

Troubleshooting

Tutoriales relacionados

Instalar maquina virtual Fortinet

Configurar autenticación remota con LDAP en Fortinet


Volver a tutoriales.