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.
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
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.
Además, cuando se te pida que añadas la clave GPG del repositorio EPEL, vuelve a introducir y y pulsa INTRO.
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).
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.
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:
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.
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
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"
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:
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.
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
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.
A continuación se muestra el alma de grupo disponible en el servidor OpenLDAP.
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.