Instalación y configuración inicial de OpenLDAP

Índice

LDAP es un protocolo de comunicación que permite el acceso a un servicio de directorio ordenado y distribuido para buscar información en un entorno de red. Este directorio incluye un conjunto de objetos con atributos organizados jerárquicamente. El directorio LDAP se puede instalar en un servidor de una red para centralizar la gestión de usuarios y grupos en la red.

Instalación de OpenLDAP

El servicio de OpenLDAP se puede instalar en Debian con el paquete slapd.

sudo apt install slapd

La instalación de OpenLDAP es interactiva y, durante el proceso, se solicita al usuario indicar una contraseña de administrador del directorio.

   ┌─────────────────────────┤ Configuring slapd ├──────────────────────────┐
   │ Please enter the password for the admin entry in your LDAP directory.  │ 
   │                                                                        │ 
   │ Administrator password:                                                │ 
   │                                                                        │ 
   │ *******_______________________________________________________________ │ 
   │                                                                        │ 
   │                                 <Ok>                                   │ 
   │                                                                        │ 
   └────────────────────────────────────────────────────────────────────────┘ 

Tras la instalación, se pueden indicar nuevos parámetros de configuración en el directorio reconfigurando el paquete a través de dpkg con la prioridad más baja -plow para que pida indicar todos los parámetros posibles de forma interactiva.

sudo dpkg-reconfigure -plow slapd

Entonces, en primer lugar, el menú de configuración pregunta si se quiere omitir la configuración de LDAP.

  ┌──────────────────────────┤ Configuring slapd ├───────────────────────────┐
  │                                                                          │ 
  │ If you enable this option, no initial configuration or database will be  │ 
  │ created for you.                                                         │ 
  │                                                                          │ 
  │ Omit OpenLDAP server configuration?                                      │ 
  │                                                                          │ 
  │                    <Yes>                       <No>                      │ 
  │                                                                          │ 
  └──────────────────────────────────────────────────────────────────────────┘

Tras contestar negativamente a esta pregunta, el proceso de configuración de LDAP solicita el nombre de dominio DNS.

    ┌────────────────────────┤ Configuring slapd ├─────────────────────────┐
    │ The DNS domain name is used to construct the base DN of the LDAP     │ 
    │ directory. For example, 'foo.example.org' will create the directory  │ 
    │ with 'dc=foo, dc=example, dc=org' as base DN.                        │ 
    │                                                                      │ 
    │ DNS domain name:                                                     │ 
    │                                                                      │ 
    │ luffy.javi.gonzalonazareno.org______________________________________ │ 
    │                                                                      │ 
    │                                <Ok>                                  │ 
    │                                                                      │ 
    └──────────────────────────────────────────────────────────────────────┘

El siguiente paso en la configuración es indicar el nombre de la organización

  ┌──────────────────────────┤ Configuring slapd ├───────────────────────────┐
  │ Please enter the name of the organization to use in the base DN of your  │ 
  │ LDAP directory.                                                          │ 
  │                                                                          │ 
  │ Organization name:                                                       │ 
  │                                                                          │ 
  │ IES Gonzalo Nazareno____________________________________________________ │ 
  │                                                                          │ 
  │                                  <Ok>                                    │ 
  │                                                                          │ 
  └──────────────────────────────────────────────────────────────────────────┘

Nuevamente, el menú de configuración solicita una contraseña de administración

   ┌─────────────────────────┤ Configuring slapd ├──────────────────────────┐
   │ Please enter the password for the admin entry in your LDAP directory.  │ 
   │                                                                        │ 
   │ Administrator password:                                                │ 
   │                                                                        │ 
   │ *******_______________________________________________________________ │ 
   │                                                                        │ 
   │                                 <Ok>                                   │ 
   │                                                                        │ 
   └────────────────────────────────────────────────────────────────────────┘

Por último, hay que elegir diferentes opciones de configuración relacionadas con la base de datos que usa LDAP, como si se debe eliminar cuando de desinstale el servicio o si se deben sobrescribir los datos almacenados en la primera instalación.

Tras ejecutar modificar todos estos parámetros al servicio, el comando slapcat muestra la configuración del directorio.

sudo slapcat
dn: dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: IES Gonzalo Nazareno
dc: luffy
structuralObjectClass: organization
entryUUID: cf045d28-83d9-103f-8e4a-11736b3f8ca6
creatorsName: cn=admin,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
createTimestamp: 20250220132451Z
entryCSN: 20250220132451.208225Z#000000#000#000000
modifiersName: cn=admin,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
modifyTimestamp: 20250220132451Z

Además, LDAP instala una serie de utilidades para interactuar con el directorio incluidas en el paquete ldap-utils como ldapsearch, que permite buscar información de los registros almacenado en el servidor LDAP. Esta herramienta busca los objetos anidados dentro de un árbol. Para no indicar el árbol del directorio de búsqueda en cada ejecución del comando, se puede crear el fichero /etc/ldap/ldap.conf o editarlo si ya existe para incluir en el parámetro BASE el árbol del directorio por defecto del servidor LDAP.

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE    dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
#URI    ldap://ldap.example.com ldap://ldap-provider.example.com:666

#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never

# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

Configuración inicial de OpenLDAP

Creación de la estructura de unidades organizativas

Para poner en funcionamiento el árbol del directorio LDAP, en este caso, se usa una estructura básica con dos unidades organizativas diferentes: usuarios y grupos. Estas unidades organizativas se definen en un fichero .ldif. Para este propósito, se ha generado en el directorio /etc/ldap un nuevo directorio llamado ldif, que contendrá los ficheros .ldif en los que se definen todos los elementos del directorio.

sudo mkdir ldif
cd ldif/

En este directorio se crea el fichero de definición de las unidades organizativas.

sudo nano ou.ldif

El contenido del fichero es el siguiente:

dn: ou=Usuarios,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
ou: Usuarios
objectClass: organizationalUnit

dn: ou=Grupos,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
ou: Grupos
objectClass: organizationalUnit

Tras definir las unidades organizativas en este fichero, se añaden a la estructura del directorio con el comando ldapadd.

ldapadd -x -D "cn=admin,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org" -f /etc/ldap/ldif/ou.ldif -W
Enter LDAP Password: 
adding new entry "ou=Usuarios,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org"

adding new entry "ou=Grupos,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org"

Ahora, en la estructura del árbol del directorio aparecen las dos unidades organizativas recién creadas.

ldapsearch -x -D "cn=admin,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org" -W
Enter LDAP Password: 
# extended LDIF
#
# LDAPv3
# base <dc=luffy,dc=javi,dc=gonzalonazareno,dc=org> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# luffy.javi.gonzalonazareno.org
dn: dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: IES Gonzalo Nazareno
dc: luffy

# Grupos, luffy.javi.gonzalonazareno.org
dn: ou=Grupos,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
ou: Grupos
objectClass: organizationalUnit

# Usuarios, luffy.javi.gonzalonazareno.org
dn: ou=Usuarios,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
ou: Usuarios
objectClass: organizationalUnit

# search result
search: 2
result: 0 Success

# numResponses: 4
# numEntries: 3

Creación del primer usuario

Para crear un usuario en el directorio LDAP se debe definir la información de este usuario en un fichero .ldif. Posteriormente, se carga la información de estos ficheros a la estructura del árbol de directorios de LDAP. En el directorio ldif creado anteriormente se puede crear el fichero .ldif del primer usuario.

sudo nano asoprueba.ldif

En este fichero se indican los parámetros que configuran la creación del usuario en LDAP. En este caso, como el grupo principal del usuario no se ha creado aún, se define también en este fichero.

dn: cn=grupo1,ou=Grupos,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
objectClass: posixGroup
cn: grupo1
gidNumber: 1100

dn: uid=asoprueba,ou=Usuarios,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
uid: asoprueba
cn: asoprueba
objectClass: posixAccount
objectClass: account
userPassword: {SSHA}vm1AqM6+exx8bsCMqbsXMzm3J8io/qWX
uidNumber: 1100
gidNumber: 1100
homeDirectory: /home/asoprueba
loginShell: /bin/bash

Para poder indicar una contraseña en el fichero de definición del usuario, hay que usar un hash ya encriptado. El servidor OpenLDAP, a través del paquete slapd instala la herramienta slappasswd que permite obtener este hash encriptado de forma interactiva.

sudo slappasswd
New password: 
Re-enter new password: 
{SSHA}vm1AqM6+exx8bsCMqbsXMzm3J8io/qWX

Este hash encriptado es el que se indica en el fichero .ldif en el que se define el usuario.

Para añadir el registro tanto del usuario como del grupo declarado en el fichero .ldif al directorio LDAP se usa la utlidad ldapadd.

ldapadd -x -D "cn=admin,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org" -f /etc/ldap/ldif/asoprueba.ldif -W
Enter LDAP Password: 
adding new entry "cn=grupo1,ou=Grupos,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org"

adding new entry "uid=asoprueba,ou=Usuarios,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org"

Tras añadir el usuario al directorio LDAP, si se hace una búsquedas de los objetos de este árbol del directorio, se muestra el usuario recién creado.

ldapsearch -x -D "cn=admin,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org" -W
Enter LDAP Password: 
# extended LDIF
#
# LDAPv3
# base <dc=luffy,dc=javi,dc=gonzalonazareno,dc=org> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# luffy.javi.gonzalonazareno.org
dn: dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: IES Gonzalo Nazareno
dc: luffy

# Grupos, luffy.javi.gonzalonazareno.org
dn: ou=Grupos,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
ou: Grupos
objectClass: organizationalUnit

# Usuarios, luffy.javi.gonzalonazareno.org
dn: ou=Usuarios,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
ou: Usuarios
objectClass: organizationalUnit

# grupo1, Grupos, luffy.javi.gonzalonazareno.org
dn: cn=grupo1,ou=Grupos,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
objectClass: posixGroup
cn: grupo1
gidNumber: 1100

# asoprueba, Usuarios, luffy.javi.gonzalonazareno.org
dn: uid=asoprueba,ou=Usuarios,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
uid: asoprueba
cn: asoprueba
objectClass: posixAccount
objectClass: account
userPassword:: e1NTSEF9dm0xQXFNNitleHg4YnNDTXFic1hNem0zSjhpby9xV1g=
uidNumber: 1100
gidNumber: 1100
homeDirectory: /home/asoprueba
loginShell: /bin/bash

# search result
search: 2
result: 0 Success

# numResponses: 6
# numEntries: 5

Configuración del cliente Ubuntu

Instalación de dependencias en Ubuntu

Para permitir el inicio de sesión con un usuario desde el cliente es necesario instalar una serie de dependencias previas.

sudo apt install libnss-ldap libpam-ldap ldap-utils

La instalación de algunos de estos paquetes incluye un proceso de configuración interactivo. Por ejemplo, durante la configuración del paquete libnss-ldap hay que indicar la uri de conexión al servidor LDAP

 ┌─────────────────────┤ Configuring ldap-auth-config ├──────────────────────┐
 │ Please enter the URI of the LDAP server to use. This is a string in the   │ 
 │ form of ldap://<hostname or IP>:<port>/. ldaps:// or ldapi:// can also    │ 
 │ be used. The port number is optional.                                     │ 
 │                                                                           │ 
 │ Note: It is usually a good idea to use an IP address because it reduces   │ 
 │ risks of failure in the event name service problems.                      │ 
 │                                                                           │ 
 │ LDAP server Uniform Resource Identifier:                                  │ 
 │                                                                           │ 
 │ ldap://luffy.javi.gonzalonazareno.org____________________________________ │ 
 │                                                                           │ 
 │                                  <Ok>                                     │ 
 │                                                                           │ 
 └───────────────────────────────────────────────────────────────────────────┘

También hay que configurar el nombre distinguido de la base para la búsqueda.

 ┌─────────────────────┤ Configuring ldap-auth-config ├──────────────────────┐
 │ Please enter the distinguished name of the LDAP search base. Many sites   │ 
 │ use the components of their domain names for this purpose. For example,   │ 
 │ the domain "example.net" would use "dc=example,dc=net" as the             │ 
 │ distinguished name of the search base.                                    │ 
 │                                                                           │ 
 │ Distinguished name of the search base:                                    │ 
 │                                                                           │ 
 │ dc=luffy,dc=javi,dc=gonzalonazareno,dc=org_______________________________ │ 
 │                                                                           │ 
 │                                  <Ok>                                     │ 
 │                                                                           │ 
 └───────────────────────────────────────────────────────────────────────────┘ 

Además, hay que indicar la versión: 3.

  ┌─────────────────────┤ Configuring ldap-auth-config ├─────────────────────┐
  │ Please enter which version of the LDAP protocol should be used by        │ 
  │ ldapns. It is usually a good idea to set this to the highest available   │ 
  │ version.                                                                 │ 
  │                                                                          │ 
  │ LDAP version to use:                                                     │ 
  │                                                                          │ 
  │                                    3                                     │ 
  │                                    2                                     │ 
  │                                                                          │ 
  │                                                                          │ 
  │                                  <Ok>                                    │ 
  │                                                                          │ 
  └──────────────────────────────────────────────────────────────────────────┘ 

Durante la configuración de libpam-ldap también se requiere una configuración interactiva. Por ejemplo, hay que permitir que el usuario admin de LDAP se convierta en el root.

 ┌─────────────────────┤ Configuring ldap-auth-config ├──────────────────────┐
 │                                                                           │ 
 │ This option will allow you to make password utilities that use pam to     │ 
 │ behave like you would be changing local passwords.                        │ 
 │                                                                           │ 
 │ The password will be stored in a separate file which will be made         │ 
 │ readable to root only.                                                    │ 
 │                                                                           │ 
 │ If you are using NFS mounted /etc or any other custom setup, you should   │ 
 │ disable this.                                                             │ 
 │                                                                           │ 
 │ Make local root Database admin:                                           │ 
 │                                                                           │ 
 │                    <Yes>                       <No>                       │ 
 │                                                                           │ 
 └───────────────────────────────────────────────────────────────────────────┘ 

Hay que definir el usuario administrador de LDAP.

          ┌─────────────┤ Configuring ldap-auth-config ├─────────────┐
          │ This account will be used when root changes a password.  │ 
          │                                                          │ 
          │ Note: This account has to be a privileged account.       │ 
          │                                                          │ 
          │ LDAP account for root:                                   │ 
          │                                                          │ 
          │ cn=admin,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org_____ │ 
          │                                                          │ 
          │                          <Ok>                            │ 
          │                                                          │ 
          └──────────────────────────────────────────────────────────┘ 

También hay que indicar su contraseña.

 ┌─────────────────────┤ Configuring ldap-auth-config ├──────────────────────┐
 │ Please enter the password to use when ldap-auth-config tries to login to  │ 
 │ the LDAP directory using the LDAP account for root.                       │ 
 │                                                                           │ 
 │ The password will be stored in a separate file /etc/ldap.secret which     │ 
 │ will be made readable to root only.                                       │ 
 │                                                                           │ 
 │ Entering an empty password will re-use the old password.                  │ 
 │                                                                           │ 
 │ LDAP root account password:                                               │ 
 │                                                                           │ 
 │ *******__________________________________________________________________ │ 
 │                                                                           │ 
 │                                  <Ok>                                     │ 
 │                                                                           │ 
 └───────────────────────────────────────────────────────────────────────────┘ 

Configuración del cliente LDAP en Ubuntu

También en el cliente, se configura el fichero /etc/ldap/ldap.conf para que pueda acceder al servidor LDAP para validar los usuarios registrados en el directorio. Para ello, en este fichero se indica la base y la URI de conexión del cliente.

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE    dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
URI     ldap://luffy.javi.gonzalonazareno.org

#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never

# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

Configuración de NSSwitch

Además, para que el sistema use el directorio LDAP como servidor de autenticación de usuarios en red, en el fichero /etc/nsswitch.conf hay que indicar ldap como método de autentificación.

passwd:         files ldap systemd
group:          files ldap systemd
shadow:         files ldap
gshadow:        files ldap

Configuración de los módulos PAM

También hay que configurar la autenticación y la sesión pam. Para hacer esta configuración, es necesario trabajar con varios módulos PAM. En primer lugar, en el módulo /etc/pam.d/common-password se elimina la opción use_authtok en el módulo pam_ldap.so.

password        [success=1 user_unknown=ignore default=die]     pam_ldap.so t

A continuación, en el módulo /etc/pam.d/common-session hay que añadir la configuración del módulo pam_mkhomedir.

session optional pam_mkhomedir.so skel=/etc/skel umask=077

Tras establecer toda esta configuración, el usuario asoprueba creado en el servidor LDAP puede iniciar sesión desde el cliente.

Configuración del servidor NFS

En el servidor NFS se crea una directorio en el que se crearán los directorios /home de todos los usuarios del directorio LDAP.

sudo mkdir /srv/nfs

Este directorio se tiene que compartir con todos los equipos de la red. Por eso, hay que añadir la siguiente línea al fichero /etc/export:

/srv/nfs        *(rw,sync,no_root_squash,no_subtree_check)

Para aplicar la configuración, se reinicia el servicio.

sudo systemctl restart nfs-server

En cada máquina cliente hay que crear un directorio que funcione como punto de montaje del sistema de ficheros compartido por el servidor NFS.

sudo mkdir /usuarios
sudo chmod 777 /usuarios/

Este punto de montaje se indica en el fichero /etc/fstab para que sea persistente.

zoro:/srv/nfs /usuarios nfs defaults 0 0

Por último, se instala el cliente nfs y se monta el directorio remoto.

sudo apt install nfs-common
sudo mount -a

A continuación, en el directorio LDAP se configura el usuario para que su home se cree en este directorio compartido por el servidor NFS.

dn: cn=asoprueba,ou=Grupos,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
objectClass: posixGroup
cn: asoprueba
gidNumber: 1100

dn: uid=asoprueba,ou=Usuarios,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
uid: asoprueba
cn: asoprueba
objectClass: posixAccount
objectClass: account
userPassword: {SSHA}vm1AqM6+exx8bsCMqbsXMzm3J8io/qWX
uidNumber: 1100
gidNumber: 1100
homeDirectory: /usuarios/home/asoprueba
loginShell: /bin/bash
ldapdelete -x -D "cn=admin,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org" cn=asoprueba,ou=Grupos,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org -W
ldapdelete -x -D "cn=admin,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org" uid=asoprueba,ou=Usuarios,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org -W
ldapadd -x -D "cn=admin,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org" -f /etc/ldap/ldif/asoprueba.ldif -W

Al iniciar sesión de nuevo con el usuario asoprueba se crea su nuevo home de usuario en el directorio compartido por el servidor NFS.

usuario@nami:~$ su - asoprueba
Password: 
Creating directory '/usuarios/home/asoprueba'.
asoprueba@nami:~$ whoami
asoprueba
asoprueba@nami:~$ pwd
/usuarios/home/asoprueba

Configuración del cliente Rocky Linux

Instalación de dependencias en Rocky Linux

Para permitir el inicio de sesión con un usuario desde un cliente Rocky Linux hay que instalar una serie de dependencias.

sudo dnf install openldap-clients sssd sssd-ldap oddjob-mkhomedir

Además, hay que activar el inicio de sesión con sssd y permitir la creación del directorio home del usuario con el parámetro with-mkhomedir.

sudo authselect select sssd with-mkhomedir --force

Tabmién hay que habilitar el servicio oddjobd.

sudo systemctl enable --now oddjobd.service

Configuración del cliente LDAP en Rocky Linux

También en el cliente, se configura el fichero /etc/ldap/ldap.conf para que pueda acceder al servidor LDAP para validar los usuarios registrados en el directorio. Para ello, en este fichero se indica la base y la URI de conexión del cliente.

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE    dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
URI     ldap://luffy.javi.gonzalonazareno.org

#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never

# When no CA certificates are specified the Shared System Certificates
# are in use. In order to have these available along with the ones specified
# by TLS_CACERTDIR one has to include them explicitly:
#TLS_CACERT     /etc/pki/tls/cert.pem

# System-wide Crypto Policies provide up to date cipher suite which should
# be used unless one needs a finer grinded selection of ciphers. Hence, the
# PROFILE=SYSTEM value represents the default behavior which is in place
# when no explicit setting is used. (see openssl-ciphers(1) for more info)
#TLS_CIPHER_SUITE PROFILE=SYSTEM

# Turning this off breaks GSSAPI used with krb5 when rdns = false
SASL_NOCANON    on

Además, hay que cambiar el perfil de autenticación a SSSD.

[usuario@zoro ~]$ sudo authselect select sssd with-mkhomedir --force
Backup stored at /var/lib/authselect/backups/2025-03-03-17-31-00.oyLTl2
Profile "sssd" was selected.
The following nsswitch maps are overwritten by the profile:
- passwd
- group
- netgroup
- automount
- services

Make sure that SSSD service is configured and enabled. See SSSD documentation for more information.
 
- with-mkhomedir is selected, make sure pam_oddjob_mkhomedir module
  is present and oddjobd service is enabled and active
  - systemctl enable --now oddjobd.service

Tal y como indica la salida del comando anterior, también hay que iniciar y habilitar el servicio oddjobd.

sudo systemctl enable --now oddjobd.service

Para configurar el servicio SSSD se crea el fichero /etc/sssd/sssd.conf con el siguiente contenido:

[domain/javi.gonzalonazareno.org]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldap://luffy.javi.gonzalonazareno.org
ldap_search_base = dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
ldap_id_use_start_tls = False
#ldap_tls_cacertdir = /etc/openldap/cacerts
#cache_credentials = True

[sssd]
services = nss, pam
domains = javi.gonzalonazareno.org

[nss]
filter_groups = root
filter_users = root

Este fichero debe tener permisos de lectura y escritura para el usuario.

sudo chmod 600 /etc/sssd/sssd.conf

Para aplicar la configuración, hay que reiniciar el servicio.

sudo systemctl restart sssd

Así, desde el cliente, se puede acceder a la información del servidor usando el comando ldapsearch.

[usuario@zoro ~]$ ldapsearch -x -D "cn=admin,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org" -W
Enter LDAP Password: 
# extended LDIF
#
# LDAPv3
# base <dc=luffy,dc=javi,dc=gonzalonazareno,dc=org> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# luffy.javi.gonzalonazareno.org
dn: dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: IES Gonzalo Nazareno
dc: luffy

# Grupos, luffy.javi.gonzalonazareno.org
dn: ou=Grupos,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
ou: Grupos
objectClass: organizationalUnit

# Usuarios, luffy.javi.gonzalonazareno.org
dn: ou=Usuarios,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
ou: Usuarios
objectClass: organizationalUnit

# asoprueba, Grupos, luffy.javi.gonzalonazareno.org
dn: cn=asoprueba,ou=Grupos,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
objectClass: posixGroup
cn: asoprueba
gidNumber: 1100

# asoprueba, Usuarios, luffy.javi.gonzalonazareno.org
dn: uid=asoprueba,ou=Usuarios,dc=luffy,dc=javi,dc=gonzalonazareno,dc=org
uid: asoprueba
cn: asoprueba
objectClass: posixAccount
objectClass: account
userPassword:: e1NTSEF9dm0xQXFNNitleHg4YnNDTXFic1hNem0zSjhpby9xV1g=
uidNumber: 1100
gidNumber: 1100
homeDirectory: /usuarios/home/asoprueba
loginShell: /bin/bash

# search result
search: 2
result: 0 Success

# numResponses: 6
# numEntries: 5

Sin embargo, al intentar iniciar sesión con la cuenta de usuario configurada en el servidor LDAP, se produce un error de autentificación.

[usuario@zoro ~]$ su - asoprueba
Password: 
su: Authentication failure

En el log de sssd se indica que este error se debe a que el puerto del servidor no está disponible.

   *  (2025-03-04  7:39:47): [be[javi.gonzalonazareno.org]] [get_port_status] (0x1000): [RID#6] Port status of port 389 for server 'luffy.javi.gonzalonazareno.org' is 'not working'
   *  (2025-03-04  7:39:47): [be[javi.gonzalonazareno.org]] [get_port_status] (0x0080): [RID#6] SSSD is unable to complete the full connection request, this internal status does not necessarily indicate network port issues.
   *  (2025-03-04  7:39:47): [be[javi.gonzalonazareno.org]] [fo_resolve_service_send] (0x0020): [RID#6] No available servers for service 'LDAP'

Sin embargo, en los logs recogidos por journald se apunta a que el oregin del error es un fallo en la encriptación con TLS. Este mecanismo de encriptación está deshabilitado en el fichero de configuración del servicio sssd, sin embargo, parece que este servicio sigue intentando encriptar las comunicaciones con el servidor.

Mar 04 07:39:47 zoro.javi.gonzalonazareno.org sssd_be[4950]: Could not start TLS encryption. unsupported extended operation

Fuentes

El servicio de directorio. LDAP

Cómo configurar el cliente OpenLDAP en Debian 10

11.11. Perfiles móviles de usuario usando NFS y LDAP

Configurar el cliente OpenLDAP en Rocky Linux 8/AlmaLinux 8

comments powered by Disqus

Relacionados

Configuración de una VPN de acceso remoto con OpenVPN y certificados x509

En este post se configura una conexión VPN de acceso remoto entre dos equipos. El servidor está conectado a dos redes, una de ellas está formada por el cliente y la otra por otro equipo a al que el cliente debe acceder a través de la VPN. La VPN usa direcciones de la red 10.99.99.0/24. En esta red, el servidor tiene la IP 10.99.99.1. Así, el escenario está compuesto por cuatro máquinas: en una red sólo está el cliente VPN y, la otra red está formada por el servidor VPN y un equipo interno. Entre ambas redes hay un router de Internet. Por tanto, el escenario queda construido de la siguiente manera:

Leer

Instalación de un servidor de correos satélite, redirecciones y alias

Este servidor de correo se instala en el router de un escenario formado por cuatro máquinas en el que ya existe un servidor de correos “oficial” que puede enviar y recibir correos electrónicos a Internet. Para evitar que el resto de equipos de la red puedan enviar correos hay que configurar el cortafuegos del router.

Leer

Envío de correos desde una aplicación web

En un servidor web Rocky Linux 9 con una aplicación WordPress se configura la aplicación para que envíe correos a través del servidor de correos “oficial” de la red. Este servidor de correo está en otra máquina de la red.

Leer