Preparación del Entorno y Compilación
La instalación desde el código fuente proporciona control absoluto sobre las rutas de despliegue y las dependencias del sistema. Este procedimiento ha siddo validado sobre Oracle Linux R8 y es compatible con Aliyun Cloud Linux.
tar -xzf openldap-2.5.11.tgz
cd openldap-2.5.11
sudo dnf install -y make gcc gcc-c++ libdb-devel libtool-ltdl-devel openssl-devel openldap-clients openldap-devel
Se configura el árbol de directorios con un prefijo personalizado y se ejecutan las etapas de construcción en paralelo:
./configure --prefix=/opt/ldap-server
make -j$(nproc)
make test
sudo make install
Con esta estructura, los componentes se distribuyen automáticamente:
/opt/ldap-server/etc/openldap/: Modelos de configuración/opt/ldap-server/sbin/: Utilidades de administración del servidor/opt/ldap-server/bin/: Interfaces de cliente/opt/ldap-server/libexec/: Ejecutables del demonio
Adaptación del Archivo de Configuración
Se debe modificar el modelo slapd.ldif para definir el contexto del directorio y las credenciales de acceso:
# Sufijo base del árbol de directorios
olcSuffix: dc=empresa,dc=local
# Distinguished Name del administrador
olcRootDN: cn=supervisor,dc=empresa,dc=local
# Hash de la contraseña (generado con slappasswd)
olcRootPW: {SSHA}x7K9mP2qR4sT6uV8wY0aB1cD3eF5gH7j
# Directorio de persistencia (requiere permisos 700 y creación manual)
olcDbDirectory: /var/lib/openldap-data
La generación del hash se realiza con la herramienta dedicada:
/opt/ldap-server/sbin/slappasswd -s ClaveAcceso2024
Generación del Directorio dinámico e Inicialización
Las versiones modernas utilizan un backend de configuración basado en LDIF (slapd.d). Se prepara el espacio y se importa la definición:
sudo mkdir -p /opt/ldap-server/etc/slapd.d
sudo chown -R ldap:ldap /opt/ldap-server/etc/slapd.d /var/lib/openldap-data
sudo /opt/ldap-server/sbin/slapadd -n 0 -F /opt/ldap-server/etc/slapd.d -l slapd.config.ldif
Una vez completada la importación (confirmado con Closing DB...), se lanza el servicio:
/opt/ldap-server/libexec/slapd -F /opt/ldap-server/etc/slapd.d -u ldap -g ldap
# Validación del contexto de nombres
ldapsearch -x -LLL -b '' -s base '(objectClass=*)' namingContexts
Alimentación de Datos Iniciales
Se crea un archivo LDIF para definir la raíz del directorio y el rol administrativo:
dn: dc=empresa,dc=local
objectClass: top
objectClass: dcObject
objectClass: organization
o: Entidad de Test
dc: empresa
dn: cn=supervisor,dc=empresa,dc=local
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: supervisor
userPassword: ClaveAcceso2024
Se aplica la modificación mediante el cliente LDAP:
ldapadd -x -D "cn=supervisor,dc=empresa,dc=local" -W -f raiz_directorio.ldif
# Consulta de verificación
ldapsearch -x -LLL -b 'dc=empresa,dc=local' '(objectClass=*)'