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:
- Actualiza los paquetes del sistema:
sudo apt update
sudo apt upgrade
- 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 comoadmin
). Esta contraseña se usará para acceder al directorio LDAP. - 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:
- Actualiza los paquetes del sistema:
sudo yum update
- Instala los paquetes necesarios:
sudo yum install openldap openldap-servers openldap-clients
- 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)
- Edita el archivo de configuración:
sudo nano /etc/ldap/slapd.conf
- 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
Ajustasuffix
,rootdn
, yrootpw
a tus necesidades. - Reinicia el servicio para aplicar los cambios:
sudo systemctl restart slapd
Configuración usando cn=config (Método moderno)
- 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. - 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
- 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.
- 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
- 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
- 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
- Agrega el usuario al directorio LDAP:
sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f user.ldif
Agregar Grupos
- Crea un archivo LDIF para un grupo:
dn: cn=developers,ou=groups,dc=example,dc=com
objectClass: posixGroup
objectClass: top
cn: developers
gidNumber: 1001
- 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.
- Instala los paquetes necesarios:
sudo apt install libnss-ldap libpam-ldap nslcd
- Configura el archivo
/etc/nsswitch.conf
:Asegúrate de que las líneas depasswd
,group
, yshadow
incluyanldap
:passwd: files ldap
group: files ldap
shadow: files ldap
- Configura el archivo
/etc/ldap/ldap.conf
:Edita o crea este archivo para incluir:BASE dc=example,dc=com
URI ldap://localhost
- Configura el archivo
/etc/nslcd.conf
:Asegúrate de que contenga:uri ldap://localhost
base dc=example,dc=com
- Reinicia los servicios:
sudo systemctl restart nslcd
sudo systemctl restart nsswitch
8. Verificación y Solución de Problemas
- 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. - 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
- 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
- Actualiza regularmente OpenLDAP y otros paquetes del sistema para mantener la seguridad.
- 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
- Genera certificados y claves:
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