Guía para Instalar y Configurar un Servidor LDAP en Linux

Artículos Guías Manuales Sistemas Linux Windows Binario 0

1. Requisitos Previos

Antes de comenzar, asegúrate de tener:

  • Un servidor Linux (puede ser cualquier distribución popular como Ubuntu, CentOS, Debian, etc.).
  • Acceso root o privilegios de sudo.
  • Conexión a internet para descargar paquetes.

2. Instalación de OpenLDAP

En Ubuntu/Debian:

  1. Actualiza los paquetes del sistema:

    sudo apt update
    sudo apt upgrade
  2. Instala los paquetes necesarios:

    sudo apt install slapd ldap-utils

    Durante la instalación, se te pedirá que configures una contraseña para el administrador de LDAP (conocido como admin). Esta contraseña se usará para acceder al directorio LDAP.
  3. Reconfigura el paquete slapd si es necesario:

    sudo dpkg-reconfigure slapd

    Aquí puedes ajustar la configuración del dominio y otros parámetros.

En CentOS/RHEL:

  1. Actualiza los paquetes del sistema:

    sudo yum update
  2. Instala los paquetes necesarios:

    sudo yum install openldap openldap-servers openldap-clients
  3. Habilita e inicia el servicio de LDAP:

    sudo systemctl start slapd
    sudo systemctl enable slapd

3. Configuración Básica del Servidor LDAP

La configuración básica del servidor LDAP se puede realizar a través de varios archivos y herramientas. Aquí, nos centraremos en la configuración básica usando el archivo slapd.conf o la base de datos cn=config.

Configuración usando slapd.conf (Método tradicional)

  1. Edita el archivo de configuración:

    sudo nano /etc/ldap/slapd.conf
  2. Asegúrate de que tu archivo de configuración contiene las siguientes líneas:

    include /etc/ldap/schema/core.schema
    include /etc/ldap/schema/cosine.schema
    include /etc/ldap/schema/inetorgperson.schema
    include /etc/ldap/schema/nis.schema
    pidfile /var/run/slapd/slapd.pid
    argsfile /var/run/slapd/slapd.args
    database bdb
    suffix "dc=example,dc=com"
    rootdn "cn=admin,dc=example,dc=com"
    rootpw secretpassword
    directory /var/lib/ldap
    index objectClass eq

    Ajusta suffix, rootdn, y rootpw a tus necesidades.
  3. Reinicia el servicio para aplicar los cambios:

    sudo systemctl restart slapd

Configuración usando cn=config (Método moderno)

  1. Accede a la base de datos de configuración:

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

    Aquí, config.ldif es un archivo que contiene los cambios de configuración en formato LDIF.
  2. Crea un archivo config.ldif para agregar tu configuración. Por ejemplo:

    dn: olcDatabase={1}hdb,cn=config
    changetype: modify
    replace: olcSuffix
    olcSuffix: dc=example,dc=com
    dn: olcDatabase={1}hdb,cn=config
    changetype: modify
    replace: olcRootDN
    olcRootDN: cn=admin,dc=example,dc=com
    dn: olcDatabase={1}hdb,cn=config
    changetype: modify
    replace: olcRootPW
    olcRootPW: secretpassword
  3. Aplica los cambios:

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

4. Agregar Esquemas LDAP

Los esquemas LDAP definen los tipos de datos que pueden ser almacenados. Asegúrate de que los esquemas necesarios estén incluidos:


sudo cp /usr/share/doc/slapd/examples/ldif/* /etc/ldap/schema/
sudo nano /etc/ldap/slapd.conf

Asegúrate de que los archivos de esquema estén incluidos en el archivo de configuración (slapd.conf o cn=config).

5. Agregar Datos Iniciales al Directorio LDAP

Para agregar datos iniciales (como la base de datos de usuarios y grupos), necesitarás crear archivos LDIF y cargarlos en el servidor LDAP.

  1. Crea un archivo LDIF para agregar una estructura básica:

    dn: dc=example,dc=com
    objectClass: top
    objectClass: dcObject
    objectClass: organization
    o: Example Inc
    dc: example
    dn: ou=people,dc=example,dc=com
    objectClass: organizationalUnit
    ou: people
    dn: ou=groups,dc=example,dc=com
    objectClass: organizationalUnit
    ou: groups
  2. Guarda el archivo como base.ldif y cárgalo en el servidor LDAP:

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

    Se te pedirá la contraseña que configuraste para el administrador.

6. Administrar Usuarios y Grupos

Agregar Usuarios

  1. Crea un archivo LDIF para un usuario:

    dn: uid=john.doe,ou=people,dc=example,dc=com
    objectClass: inetOrgPerson
    objectClass: posixAccount
    objectClass: top
    cn: John Doe
    sn: Doe
    uid: john.doe
    uidNumber: 1001
    gidNumber: 1001
    homeDirectory: /home/john.doe
    userPassword: {SSHA}passwordhash
  2. Agrega el usuario al directorio LDAP:

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

Agregar Grupos

  1. Crea un archivo LDIF para un grupo:

    dn: cn=developers,ou=groups,dc=example,dc=com
    objectClass: posixGroup
    objectClass: top
    cn: developers
    gidNumber: 1001
  2. Agrega el grupo al directorio LDAP:

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

7. Configuración del Cliente LDAP

Para que los clientes Linux usen LDAP para autenticarse, debes configurar el cliente LDAP.

  1. Instala los paquetes necesarios:

    sudo apt install libnss-ldap libpam-ldap nslcd
  2. Configura el archivo /etc/nsswitch.conf:Asegúrate de que las líneas de passwd, group, y shadow incluyan ldap:

    passwd: files ldap
    group: files ldap
    shadow: files ldap
  3. Configura el archivo /etc/ldap/ldap.conf:Edita o crea este archivo para incluir:

    BASE dc=example,dc=com
    URI ldap://localhost
  4. Configura el archivo /etc/nslcd.conf:Asegúrate de que contenga:

    uri ldap://localhost
    base dc=example,dc=com
  5. Reinicia los servicios:

    sudo systemctl restart nslcd
    sudo systemctl restart nsswitch

8. Verificación y Solución de Problemas

  1. Verifica la configuración LDAP:

    ldapsearch -x -b "dc=example,dc=com" -D "cn=admin,dc=example,dc=com" -W

    Asegúrate de ingresar la contraseña correcta para el administrador LDAP.
  2. Revisa los logs en caso de problemas:Los logs de LDAP suelen estar en /var/log/ dependiendo de la configuración de tu distribución. Revisa los archivos para obtener detalles sobre errores.

9. Mantenimiento y Seguridad

  1. Realiza copias de seguridad periódicas de tu base de datos LDAP. Utiliza herramientas como slapcat para realizar copias de seguridad.

    sudo slapcat -l backup.ldif
  2. Actualiza regularmente OpenLDAP y otros paquetes del sistema para mantener la seguridad.
  3. Configura el cifrado usando TLS/SSL para proteger las conexiones LDAP. Debes generar certificados SSL/TLS y configurar OpenLDAP para usarlos. Aquí tienes un ejemplo de cómo configurar TLS en OpenLDAP:
    • Genera certificados y claves:

      openssl req -new -x509 -nodes -out /etc/ssl/certs/ldapserver.crt -keyout /etc/ssl/private/ldapserver.key -days 365
    • Configura TLS en OpenLDAP:Edita el archivo de configuración de OpenLDAP para incluir los siguientes parámetros:

      olcTLSCACertificateFile: /etc/ssl/certs/ca-certificates.crt olcTLSCertificateFile: /etc/ssl/certs/ldapserver.crt olcTLSCertificateKeyFile: /etc/ssl/private/ldapserver.key
    • Reinicia el servicio de LDAP:

      sudo systemctl restart slapd

Con esta guía, deberías tener un servidor LDAP funcional en Linux, capaz de manejar la autenticación y la gestión de usuarios y grupos