Diferencia entre revisiones de «LDAP»
De jagfloriano.com
Ir a la navegaciónIr a la búsqueda
(Página creada con «= LDAP = == ¿Qué es LDAP? == LDAP (Lightweight Directory Access Protocol) es un **protocolo ligero de acceso a directorios**. Características principales: * LDAP fue creado por la Universidad de Michigan en 1992 como una alternativa ligera a DAP. * Está basado en el estándar **X.500**. * El RFC 2251 fue publicado en 1997 (actualmente actualizado por otros RFC). * LDAP, por sí mismo, **no define un servicio de directorio**. * Define el **transporte y el format…») |
Sin resumen de edición |
||
| Línea 78: | Línea 78: | ||
* Guía avanzada LDAP (Zytrax): | * Guía avanzada LDAP (Zytrax): | ||
http://www.zytrax.com/books/ldap/ape/ | http://www.zytrax.com/books/ldap/ape/ | ||
= Instalación de OpenLDAP = | |||
En RHEL 9, OpenLDAP se instala desde los repositorios oficiales y utiliza configuración dinámica basada en *cn=config*. | |||
== Requisitos previos == | |||
* IP estática | |||
* Nombre de host correctamente configurado | |||
* Resolución DNS o entrada en /etc/hosts | |||
* Sincronización horaria (recomendado) | |||
Ejemplo de validación: | |||
192.168.1.81 node1.jagfloriano.com node1 | |||
== Preparación del sistema == | |||
* Configuración de red | |||
<syntaxhighlight lang="bash"> | |||
[root@nodo1 ~]# ip route | |||
default via 192.168.1.1 dev enp0s3 proto static metric 100 | |||
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.81 metric 100 | |||
[root@nodo1 ~]# ip a show enp0s3 | |||
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 | |||
link/ether 08:00:27:f3:3c:51 brd ff:ff:ff:ff:ff:ff | |||
inet 192.168.1.81/24 brd 192.168.1.255 scope global noprefixroute enp0s3 | |||
valid_lft forever preferred_lft forever | |||
inet6 fe80::a00:27ff:fef3:3c51/64 scope link noprefixroute | |||
valid_lft forever preferred_lft forever | |||
</syntaxhighlight> | |||
* Verificación del hostname | |||
<syntaxhighlight lang="bash"> | |||
[root@nodo1 ~]# hostname | |||
nodo1 | |||
[root@nodo1 ~]# hostname -f | |||
nodo1.jagfloriano.com | |||
[root@nodo1 ~]# hostnamectl | |||
Static hostname: nodo1 | |||
Icon name: computer-vm | |||
Chassis: vm 🖴 | |||
Machine ID: 20ff935e15e14490a6e182f1a7979010 | |||
Boot ID: daaaf7f2b9104421820d256e95a711c3 | |||
Virtualization: oracle | |||
Operating System: Red Hat Enterprise Linux 9.6 (Plow) | |||
CPE OS Name: cpe:/o:redhat:enterprise_linux:9::baseos | |||
Kernel: Linux 5.14.0-570.12.1.el9_6.x86_64 | |||
Architecture: x86-64 | |||
Hardware Vendor: innotek GmbH | |||
Hardware Model: VirtualBox | |||
Firmware Version: VirtualBox | |||
</syntaxhighlight> | |||
* Comprobación de resolución de nombres | |||
<syntaxhighlight lang="bash"> | |||
[root@nodo1 ~]# grep 192.168.1.81 /etc/hosts | |||
192.168.1.81 node1.jagfloriano.com node1 | |||
[root@nodo1 ~]# getent hosts nodo1 | |||
fe80::a00:27ff:fef3:3c51 nodo1 | |||
[root@nodo1 ~]# ping -c 1 nodo1.jagfloriano.com | |||
PING nodo1.jagfloriano.com (192.168.1.81) 56(84) bytes of data. | |||
64 bytes from nodo1.jagfloriano.com (192.168.1.81): icmp_seq=1 ttl=64 time=0.011 ms | |||
--- nodo1.jagfloriano.com ping statistics --- | |||
1 packets transmitted, 1 received, 0% packet loss, time 0ms | |||
rtt min/avg/max/mdev = 0.011/0.011/0.011/0.000 ms | |||
</syntaxhighlight> | |||
* Puertos utilizados (389 / 636) | |||
<syntaxhighlight lang="bash"> | |||
[root@nodo1 ~]# firewall-cmd --list-all | |||
public (active) | |||
target: default | |||
icmp-block-inversion: no | |||
interfaces: enp0s3 | |||
sources: | |||
services: cockpit dhcpv6-client high-availability ssh | |||
ports: | |||
protocols: | |||
forward: yes | |||
masquerade: no | |||
forward-ports: | |||
source-ports: | |||
icmp-blocks: | |||
rich rules: | |||
</syntaxhighlight> | |||
Los puertos que se utilizarán posteriormente son: | |||
* 389/TCP (LDAP) | |||
* 636/TCP (LDAPS, opcional) | |||
== Instalación de paquetes == | |||
* Paquetes necesarios | |||
* Instalación del servicio LDAP | |||
* Verificación de la instalación | |||
== Configuración inicial del servidor LDAP == | |||
* Ejecución del asistente de configuración | |||
* Dominio del directorio | |||
* Organización | |||
* Backend de base de datos | |||
* Usuario administrador | |||
* Versiones de LDAP permitidas | |||
== Estructura inicial del directorio (DIT) == | |||
* Base DN | |||
* Unidades organizativas iniciales | |||
** usuarios | |||
** grupos | |||
** sistemas (opcional) | |||
== Arranque y verificación del servicio == | |||
* Comprobación del proceso slapd | |||
* Puertos en escucha | |||
* Prueba de conexión local con ldapsearch | |||
== Configuración de OpenLDAP == | |||
* Esquemas LDAP | |||
* Gestión mediante archivos LDIF | |||
* Creación de objetos | |||
** Unidades organizativas | |||
** Grupos | |||
** Usuarios | |||
* Gestión de contraseñas | |||
== Configuración de clientes LDAP == | |||
* Métodos de integración | |||
** libnss-ldap (legacy) | |||
** SSSD (recomendado) | |||
* Configuración de NSS | |||
* Configuración de PAM | |||
* Creación automática de directorios home | |||
== Verificación y pruebas == | |||
* Consultas LDAP básicas | |||
* Resolución de usuarios y grupos | |||
* Login con usuarios LDAP | |||
== Logs y troubleshooting == | |||
* Logs del servicio LDAP | |||
* Errores comunes | |||
* Problemas de autenticación | |||
== Buenas prácticas == | |||
* Uso de TLS | |||
* Uso de contraseñas cifradas | |||
* Principio de mínimos privilegios | |||
* Copias de seguridad del directorio | |||
Revisión del 07:58 3 feb 2026
LDAP
¿Qué es LDAP?
LDAP (Lightweight Directory Access Protocol) es un **protocolo ligero de acceso a directorios**.
Características principales:
- LDAP fue creado por la Universidad de Michigan en 1992 como una alternativa ligera a DAP.
- Está basado en el estándar **X.500**.
- El RFC 2251 fue publicado en 1997 (actualmente actualizado por otros RFC).
- LDAP, por sí mismo, **no define un servicio de directorio**.
- Define el **transporte y el formato de los mensajes** utilizados para que un cliente acceda a los datos almacenados en un directorio.
Fundamentos de LDAP
- LDAP es un **servicio global de directorios** capaz de almacenar distintos tipos de información.
- Puede considerarse como una **base de datos de objetos**, organizados por clases.
- A diferencia de una base de datos relacional tradicional, LDAP está optimizado para:
* Operaciones de **lectura** * **Búsquedas** * **Navegación**
- No está pensado para un alto volumen de escrituras.
- OpenLDAP es una **implementación libre y abierta** del protocolo LDAP.
El directorio LDAP
- Al igual que DNS, las entradas de un directorio LDAP están organizadas en una **estructura jerárquica en forma de árbol**.
- Cuanto mayor es la profundidad del árbol, mayor suele ser la precisión y especificidad de la información almacenada.
- Esta estructura se denomina formalmente **Directory Information Tree (DIT)** (Árbol de Información del Directorio).
- La parte superior de esta estructura se conoce como el **elemento raíz** del directorio.
Terminología LDAP
- **Entrada u objeto**: unidad mínima de información almacenada en el directorio LDAP.
- **Atributos**: piezas de información asociadas a un objeto (por ejemplo, correo electrónico).
- **objectClass**: define el tipo de objeto y determina qué atributos puede o debe contener.
- **Esquema**: conjunto de definiciones que describen:
* Sintaxis de atributos * Definiciones de objectClass
- **LDIF**: LDAP Data Interchange Format, formato de intercambio de datos LDAP.
- **DN (Distinguished Name)**: nombre completo y único que identifica una entrada en el directorio.
- **RDN (Relative Distinguished Name)**: parte del DN que identifica la entrada de forma relativa dentro de su rama.
Utilidades OpenLDAP
Utilidades de línea de comandos
- **ldapadd**: añade objetos al directorio LDAP.
- **ldapmodify**: modifica objetos existentes.
- **ldapdelete**: elimina objetos del directorio.
- **ldapsearch**: consulta y busca objetos en LDAP.
- **ldappasswd**: establece o modifica la contraseña de un usuario LDAP.
- **slapadd**: importa entradas desde un archivo LDIF directamente en la base de datos.
- **slapcat**: exporta el contenido del directorio LDAP a formato LDIF.
- **slapindex**: reconstruye los índices del directorio LDAP.
- **slappasswd**: genera contraseñas cifradas para LDAP.
Utilidades de entorno gráfico
- **Apache Directory Studio**
Herramienta gráfica para:
- Navegación por el directorio
- Edición de entradas
- Gestión de esquemas
- Administración general de OpenLDAP
Documentación OpenLDAP
- Documentación oficial:
http://www.openldap.org/doc
- Páginas del manual:
* `apropos slapd` * `apropos ldap`
- Guía avanzada LDAP (Zytrax):
http://www.zytrax.com/books/ldap/ape/
Instalación de OpenLDAP
En RHEL 9, OpenLDAP se instala desde los repositorios oficiales y utiliza configuración dinámica basada en *cn=config*.
Requisitos previos
- IP estática
- Nombre de host correctamente configurado
- Resolución DNS o entrada en /etc/hosts
- Sincronización horaria (recomendado)
Ejemplo de validación:
192.168.1.81 node1.jagfloriano.com node1
Preparación del sistema
- Configuración de red
[root@nodo1 ~]# ip route
default via 192.168.1.1 dev enp0s3 proto static metric 100
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.81 metric 100
[root@nodo1 ~]# ip a show enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:f3:3c:51 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.81/24 brd 192.168.1.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fef3:3c51/64 scope link noprefixroute
valid_lft forever preferred_lft forever
- Verificación del hostname
[root@nodo1 ~]# hostname
nodo1
[root@nodo1 ~]# hostname -f
nodo1.jagfloriano.com
[root@nodo1 ~]# hostnamectl
Static hostname: nodo1
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: 20ff935e15e14490a6e182f1a7979010
Boot ID: daaaf7f2b9104421820d256e95a711c3
Virtualization: oracle
Operating System: Red Hat Enterprise Linux 9.6 (Plow)
CPE OS Name: cpe:/o:redhat:enterprise_linux:9::baseos
Kernel: Linux 5.14.0-570.12.1.el9_6.x86_64
Architecture: x86-64
Hardware Vendor: innotek GmbH
Hardware Model: VirtualBox
Firmware Version: VirtualBox
- Comprobación de resolución de nombres
[root@nodo1 ~]# grep 192.168.1.81 /etc/hosts
192.168.1.81 node1.jagfloriano.com node1
[root@nodo1 ~]# getent hosts nodo1
fe80::a00:27ff:fef3:3c51 nodo1
[root@nodo1 ~]# ping -c 1 nodo1.jagfloriano.com
PING nodo1.jagfloriano.com (192.168.1.81) 56(84) bytes of data.
64 bytes from nodo1.jagfloriano.com (192.168.1.81): icmp_seq=1 ttl=64 time=0.011 ms
--- nodo1.jagfloriano.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.011/0.011/0.011/0.000 ms
- Puertos utilizados (389 / 636)
[root@nodo1 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: cockpit dhcpv6-client high-availability ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Los puertos que se utilizarán posteriormente son:
- 389/TCP (LDAP)
- 636/TCP (LDAPS, opcional)
Instalación de paquetes
- Paquetes necesarios
- Instalación del servicio LDAP
- Verificación de la instalación
Configuración inicial del servidor LDAP
- Ejecución del asistente de configuración
- Dominio del directorio
- Organización
- Backend de base de datos
- Usuario administrador
- Versiones de LDAP permitidas
Estructura inicial del directorio (DIT)
- Base DN
- Unidades organizativas iniciales
- usuarios
- grupos
- sistemas (opcional)
Arranque y verificación del servicio
- Comprobación del proceso slapd
- Puertos en escucha
- Prueba de conexión local con ldapsearch
Configuración de OpenLDAP
- Esquemas LDAP
- Gestión mediante archivos LDIF
- Creación de objetos
- Unidades organizativas
- Grupos
- Usuarios
- Gestión de contraseñas
Configuración de clientes LDAP
- Métodos de integración
- libnss-ldap (legacy)
- SSSD (recomendado)
- Configuración de NSS
- Configuración de PAM
- Creación automática de directorios home
Verificación y pruebas
- Consultas LDAP básicas
- Resolución de usuarios y grupos
- Login con usuarios LDAP
Logs y troubleshooting
- Logs del servicio LDAP
- Errores comunes
- Problemas de autenticación
Buenas prácticas
- Uso de TLS
- Uso de contraseñas cifradas
- Principio de mínimos privilegios
- Copias de seguridad del directorio