OpenLDAP es una implementación de software libre del protocolo LDAP (Lightweight Directory Access Protocol), que se utiliza para gestionar y acceder a servicios de directorio de manera centralizada. En este artículo, te mostraremos cómo instalar y configurar OpenLDAP en Fedora 39 paso a paso. Este tutorial está diseñado para ser técnico pero accesible para los recién llegados.

Requisitos Previos

Antes de comenzar, asegúrate de tener lo siguiente:

  • Un sistema Fedora 39 instalado.
  • Acceso a una cuenta con privilegios de superusuario (root) o acceso a sudo.

Paso 1: Actualizar el Sistema

Primero, asegúrate de que tu sistema esté actualizado. Abre una terminal y ejecuta los siguientes comandos:

sudo dnf update -y

Paso 2: Instalar OpenLDAP

Instala el servidor OpenLDAP y las herramientas de cliente necesarias con el siguiente comando:

sudo dnf install openldap-servers openldap-clients -y

Paso 3: Configurar OpenLDAP

Configurar el Directorio de la Base de Datos

Crea el directorio para la base de datos de OpenLDAP y establece los permisos adecuados:

sudo mkdir -p /var/lib/ldap
sudo chown -R ldap:ldap /var/lib/ldap

Configurar el Archivo de Contraseña

Genera una contraseña segura para el usuario admin de LDAP. Usa el siguiente comando para generar una contraseña cifrada:

sudo slappasswd

Copia la contraseña cifrada, ya que la necesitarás para la configuración.

Configurar el Archivo DB_CONFIG

Copia el archivo de configuración de la base de datos DB_CONFIG de ejemplo al directorio de la base de datos de OpenLDAP:

sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
sudo chown ldap:ldap /var/lib/ldap/DB_CONFIG

Iniciar y Habilitar el Servicio OpenLDAP

Inicia el servicio de OpenLDAP y habilítalo para que se ejecute automáticamente al iniciar el sistema:

sudo systemctl start slapd
sudo systemctl enable slapd

Paso 4: Configurar el DIT (Directory Information Tree)

Añadir el Esquema

Para añadir un esquema a OpenLDAP, utiliza el siguiente comando:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

Configurar la Base de Datos

Crea un archivo de configuración para la base de datos, por ejemplo db.ldif:

nano db.ldif

Añade el siguiente contenido, reemplazando dc=example,dc=com con tu propio dominio y contraseña_cifrada con la contraseña cifrada generada anteriormente:

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: contraseña_cifrada

Aplica la configuración:

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif

Crear el Contenido Inicial del DIT

Crea un archivo base.ldif con el siguiente contenido para definir la estructura básica del DIT:

nano base.ldif

Añade el siguiente contenido:

dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: Example Organization
dc: example

dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: contraseña_cifrada

Aplica la configuración:

sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f base.ldif

Introduce la contraseña de administrador cuando se te solicite.

Paso 5: Verificar la Configuración de OpenLDAP

Para verificar que OpenLDAP está funcionando correctamente, usa el siguiente comando para buscar en el directorio:

ldapsearch -x -LLL -b dc=example,dc=com

Deberías ver la estructura de tu DIT en la salida del comando.

Paso 6: Configurar el Firewall

Si tienes un firewall habilitado, necesitas permitir el tráfico LDAP en los puertos 389 (LDAP) y 636 (LDAPS). Usa firewalld para gestionar las reglas del firewall:

sudo firewall-cmd --permanent --add-port=389/tcp
sudo firewall-cmd --permanent --add-port=636/tcp
sudo firewall-cmd --reload

Paso 7: Administrar OpenLDAP

Añadir Usuarios

Para añadir usuarios, crea un archivo user.ldif con el siguiente contenido:

nano user.ldif

Añade el siguiente contenido, ajustando según sea necesario:

dn: uid=jdoe,ou=users,dc=example,dc=com
objectClass: inetOrgPerson
uid: jdoe
sn: Doe
cn: John Doe
userPassword: contraseña_usuario

Aplica la configuración:

sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f user.ldif

Modificar Entradas

Para modificar una entrada existente, crea un archivo modify.ldif con los cambios necesarios:

nano modify.ldif

Añade el siguiente contenido:

dn: uid=jdoe,ou=users,dc=example,dc=com
changetype: modify
replace: mail
mail: jdoe@example.com

Aplica la modificación:

sudo ldapmodify -x -D cn=admin,dc=example,dc=com -W -f modify.ldif

Eliminar Entradas

Para eliminar una entrada, usa el siguiente comando:

sudo ldapdelete -x -D cn=admin,dc=example,dc=com -W uid=jdoe,ou=users,dc=example,dc=com

Para mejorar el rendimiento y la gestión de tus servicios de directorio con OpenLDAP, considera utilizar los servicios de Shape.host. Ofrecen soluciones de Linux SSD VPS que proporcionan escalabilidad, alta disponibilidad y un rendimiento superior para tus aplicaciones y servicios de directorio. Con Shape.host, puedes asegurarte de que tu infraestructura esté siempre disponible y funcionando de manera óptima.