Cómo instalar el servidor OpenLDAP en AlmaLinux 9

OpenLDAP es una implementación de software del Protocolo Ligero de Acceso a Directorios (LDAP). OpenLDAP es un software libre y de código abierto con su licencia de estilo BSD llamada OpenLDAP Public License. Su software LDAP de línea de comandos está disponible en la mayoría de las distribuciones de Linux, como CentOS, Ubuntu, Debian, SUSE y muchas más.

OpenLDAP es un paquete completo de software para servidores LDAP, que incluye SLAPD (demonio LDAP autónomo), SLURPD (demonio LDAP autónomo de replicación de actualizaciones) y algunas utilidades y herramientas para gestionar servidores LDAP. OpenLDAP es un servidor LDAP altamente personalizable y compatible con las principales plataformas informáticas.

En este tutorial, te mostraremos cómo instalar el servidor OpenLDAP en un AlmaLinux 9, para que puedas empezar a utilizarlo con facilidad.

Requisitos previos

Para terminar este tutorial, asegúrate de que tienes lo siguiente:

  • Una máquina AlmaLinux 9 – Esta demo utiliza un servidor con el nombre de host ldap y la dirección IP 192.168.10.50.
  • Un usuario no root con privilegios de administrador.

Configuración del FQDN

Antes de instalar el servidor OpenLDAP, debes asegurarte de que el fqdn está configurado y apunta a la dirección IP adecuada. Completa los siguientes pasos para configurar el fqdn en tu máquina AlmaLinux.

Ejecuta el siguiente comando para configurar el fqdn de tu máquina AlmaLinux. En este caso, el servidor tendrá fqdn ldap.hwdomain.local.

sudo hostnamectl set-hostname ldap.hwdomain.local

Ahora abre el archivo /etc/hosts utilizando el siguiente comando del editor nano.

sudo nano /etc/hosts

Introduce la siguiente configuración y asegúrate de cambiar la dirección IP, el fqdn y el nombre de host.

192.168.10.50   ldap.hwdomain.local   ldap

Guarda el archivo y sal del editor cuando hayas terminado.

Por último, ejecuta el siguiente comando para verificar el fqdn de tu sistema y asegurarte de que apunta a la dirección IP local adecuada.

sudo hostname -f
ping -c3 ldap.hwdomain.local

En este caso, la fqdn ldap.hwdomain. local apunta a la dirección IP 192.168.10.50.

configurar fqdn

Instalar el servidor OpenLDAP

El paquete del servidor OpenLDAP está disponible en el repositorio EPEL. Por tanto, antes de instalar el servidor OpenLDAP, debes instalar el repositorio EPEL en tu servidor AlmaLinux.

La siguiente sección te mostrará cómo añadir el repositorio EPEL, instalar el servidor OpenLDAP y gestionar el servicio OpenLDAP.

En primer lugar, añade el repositorio EPEL a tu servidor AlmaLinux mediante el siguiente comando dnf.

sudo dnf install epel-release -y

instalar repositorio epel

Después, ejecuta el siguiente comando dnf para instalar el servidor OpenLDAP y los paquetes cliente.

sudo dnf install openldap-servers openldap-clients

Cuando se te pida, introduce y para confirmar y pulsa ENTER.

instalar servidor openldap

Además, cuando se te pida que añadas la clave GPG del repositorio EPEL, vuelve a introducir y y pulsa INTRO.

aceptar clave gpg

Ahora ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio slapd de OpenLDAP.

sudo systemctl start slapd
sudo systemctl enable slapd

Verifica el servicio slapd utilizando el siguiente comando para asegurarte de que el servicio se está ejecutando.

sudo systemctl status slapd

Si se está ejecutando, deberías obtener una salida como activo (en ejecución).

iniciar el servicio openldap

Por último, tendrás que abrir los servicios LDAP y LDAPS en firewalld para permitir las conexiones de los clientes.

Ejecuta los siguientes comandos firewall-cmd para añadir los servicios LDAP y LDAPS al firewalld. A continuación, recarga el firewalld para aplicar los cambios.

sudo firewall-cmd --add-service={ldap,ldaps} --permanent
sudo firewall-cmd --reload

Ahora puedes verificar la lista de reglas del firewalld utilizando el comando que aparece a continuación.

sudo firewall-cmd --list-all

Si se realiza correctamente, deberías ver tanto los servicios LDAP como LDAPS disponibles en la lista de servicios del firewalld.

configurar firewalld

Configuración básica del servidor OpenLDAP

Después de instalar el servidor OpenLDAP, ahora vas a configurar la instalación de OpenLDAP. Y el primer paso que debes dar es configurar un usuario administrador e importar algunos esquemas básicos para tu instalación del servidor OpenLDAP.

Ejecuta el siguiente comando para generar la contraseña hash de tu servidor OpenLDAP. Introduce tu contraseña y repítelo, luego copia la contraseña hash generada.

slappasswd

Crea un nuevo archivo chrootpw.ldif utilizando el siguiente comando del editor nano.

nano chrootpw.ldif

Añade la siguiente configuración y asegúrate de sustituir el valor del parámetro olcRootPW por tu contraseña hash. Esto cambiará la contraseña de tu servidor OpenLDAP.

# chrootpw.ldif

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}yK9Dk+Kz9S9CLu3Y+ZtJVAYF+MPIRl1X

Guarda el archivo y sal de él cuando hayas terminado.

Ahora ejecuta el siguiente comando ldapadd para aplicar la configuración al servidor OpenLDAP.

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif

Si tiene éxito, deberías obtener una salida como ésta:

configuración administrador servidor openldap

Por último, ejecuta el siguiente comando para añadir algunos esquemas básicos a tu servidor OpenLDAP.

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

Esto añadirá nuevas entradas como nis, cosine e inetorgperson a tu servidor OpenLDAP.

importar esquemas básicos openldap

Configurar el dominio y el dominio base

Ahora que ya está configurada la contraseña de administrador para el servidor OpenLDAP, el siguiente paso es configurar el nombre de dominio para tu servidor OpenLDAP y crear algunos nombres de dominio básicos para los usuarios.

Completa los siguientes pasos para configurar el nombre de dominio y el dominio base mediante el archivo LDIF.

Configurar el nombre de dominio

Crea un nuevo archivo LDIF chdomain.ldif utilizando el siguiente comando del editor nano.

nano chdomain.ldif

Añade la siguiente configuración y asegúrate de cambiar el nombre de dominio dc=hwdomain,dc=local por el nombre de dominio de tu servidor OpenLDAP. Además, en el parámetro olcRootPW, cámbialo por tu contraseña hash.

Esto cambiará el nombre de dominio por defecto de tu servidor OpenLDAP por el nuevo dominio.

# chdomain.ldif
# replace to your own domain name for [dc=***,dc=***] section
# specify the password generated above for [olcRootPW] section
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
read by dn.base="cn=Manager,dc=hwdomain,dc=local" read by * none

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=hwdomain,dc=local

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=hwdomain,dc=local

dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}yK9Dk+Kz9S9CLu3Y+ZtJVAYF+MPIRl1X

dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=Manager,dc=hwdomain,dc=local" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=hwdomain,dc=local" write by * read

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando ldapmodify para aplicar las nuevas configuraciones al servidor OpenLDAP.

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

cambiar el nombre de dominio por defecto

Una vez aplicados los cambios, ejecuta el comando ldapsearch que aparece a continuación para verificar tu configuración. Si se realiza correctamente, deberías ver que el namingContexts contiene el nombre de dominio de tu servidor OpenLDAP. En este caso, el nombre de dominio es ldap.hwdomain.local.

sudo ldapsearch -H ldap:// -x -s base -b "" -LLL "namingContexts"

verificar nombre de dominio

Configurar el dominio base

Crea un nuevo archivo LDIF basedomain.ldif utilizando el editor nano.

nano basedomain.ldif

Introduce la siguiente configuración en el archivo. Con esto, crearás tres objetos diferentes oragnizationalUnit Manager, People y Group.

# basedomain.ldif
# replace to your own domain name for [dc=***,dc=***] section
dn: dc=hwdomain,dc=local
objectClass: top
objectClass: dcObject
objectclass: organization
o: Hwdomain Local
dc: hwdomain

dn: cn=Manager,dc=hwdomain,dc=local
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=hwdomain,dc=local
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=hwdomain,dc=local
objectClass: organizationalUnit
ou: Group

Guarda el archivo y sal del editor al terminar.

Ahora ejecuta el siguiente comando ldapadd para añadir el nuevo dominio base a tu servidor OpenLDAP.

sudo ldapadd -x -D cn=Manager,dc=hwdomain,dc=local -W -f basedomain.ldif

Introduce la contraseña de OpenLDAP cuando se te solicite. Si se realiza correctamente, deberías obtener una salida como ésta:

añadir dominio base

Por último, puedes verificar la lista de ou en tu servidor OpenLDAP utilizando el siguiente comando.

sudo ldapsearch -x -b "dc=hwdomain,dc=local" ou

Si la configuración se ha realizado correctamente, deberías ver tres ou diferentes Manager, People y Group.

verificar dominio base

Llegados a este punto, ya has completado la instalación del servidor OpenLDAP en tu máquina AlmaLinux. En el siguiente paso, aprenderás a crear un usuario OpenLDAP a través de un archivo LDIF.

Añadir un nuevo usuario en el servidor OpenLDAP

Para crear nuevos usuarios manualmente en el servidor OpenLDAP, puedes utilizar el comando slappasswd para generar una contraseña hash y crear un nuevo archivo LDIF para tu nuevo usuario. En este paso aprenderás cómo hacerlo.

Para crear un nuevo usuario, primero debes generar el hash de la contraseña mediante el comando slappasswd que se indica a continuación.

slappasswd

Introduce tu contraseña y copia el hash generado.

Ahora crea un nuevo archivo newuser.ldif utilizando el comando editor nano que aparece a continuación.

nano newuser.ldif

Introduce la siguiente configuración para crear un nuevo usuario y grupo OpenLDAP. Asegúrate también de cambiar los detalles del nombre de dominio, nuevo usuario, gid y uid del grupo, y también el hash de la contraseña.

# newuser.ldif
# Change detail username and path home directory and default domain name
dn: uid=alma,ou=People,dc=hwdomain,dc=local
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: alma
sn: temp
userPassword: {SSHA}l/lZ6zZSGgGP1s7pezz6faYX86Tx3Fv/
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/alma
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

dn: cn=alma,ou=Group,dc=hwdomain,dc=local
objectClass: posixGroup
cn: alma
gidNumber: 2000
memberUid: alma

Guarda el archivo y sal del editor al terminar.

A continuación, ejecuta el siguiente comando ldapadd para añadir un nuevo usuario y grupo OpenLDAP. Introduce tu contraseña de OpenLDAP cuando se te pida y pulsa INTRO para confirmar.

sudo ldapadd -x -D cn=Manager,dc=hwdomain,dc=local -W -f newuser.ldif

añadir usuario y grupo

Una vez añadidos el usuario y el grupo nuevos, ejecuta el comando ldapsearch que aparece a continuación para obtener una lista de los usuarios y grupos disponibles en tu servidor OpenLDAP.

sudo ldapsearch -x -b "ou=People,dc=hwdomain,dc=local"
sudo ldapsearch -x -b "ou=Group,dc=hwdomain,dc=local"

Si la configuración se ha realizado correctamente, deberías ver el alma del usuario y del grupo disponibles en el servidor OpenLDAP.

A continuación se muestra el alma de usuario disponible en el servidor OpenLDAP.

verificar usuario

A continuación se muestra el alma de grupo disponible en el servidor OpenLDAP.

verificar usuario y grupo

Conclusión

¡Bien hecho! Has seguido todos los pasos e instalado el servidor OpenLDAP en tu máquina AlmaLinux 9. Ahora estás listo para utilizarlo e integrarlo en tus aplicaciones. Además, se recomienda configurar un servidor OpenLDAP seguro con SSL/TLS e instalar un web-frontend para tu servidor OpenLDAP mediante phpOpenLDAP o similar.

Scroll al inicio