El 12/3/24 a las 11:15, RLL escribió:
El 10/3/24 a las 15:13, Camaleón escribió:
El 2024-03-10 a las 12:34 +0100, RLL escribió:

Estoy de pruebas aprendiendo sobre OpenLDAP con Debian 12. Ya tengo
configurado el servicio y tengo TLS bajo cn=config con los siguientes
atributos:

olcLocalSSF: 128
olcTLSCACertificateFile: /etc/ldap/ca.pem
olcTLSCertificateKeyFile: /etc/ldap/openldap_key.pem
olcTLSCertificateFile: /etc/ldap/openldap_crt.pem
olcTLSVerifyClient: never

Ahora me dispongo a forzar una consulta con -ZZ tipo y funciona sin
problemas:

ldapsearch -x -D cn=admin,dc=oficina,dc=com -W  -ZZ -b
ou=Usuarios,dc=oficina,dc=com -ZZ

Pero si no me convence lo hago en modo depuración con `-d 1`pero no veo en
la salida nada que haga referencia a TLS crypt:


i32lelor@openldap:~$ ldapsearch -x -D cn=admin,dc=oficina,dc=com -W -ZZ -b ou=Usuarios,dc=oficina,dc=com -ZZ -d 1

(...)

How to test the CA certificate and LDAP connection over SSL/TLS
https://www.ibm.com/support/pages/how-test-ca-certificate-and-ldap-connection-over-ssltls

(...)

** ld 0x558df594ce50 Connections:
* host: openldap.oficina.com  port: 389  (default)
* from: IP=127.0.0.1:36570
   refcnt: 2  status: Connected
   last used: Sun Mar 10 12:23:49 2024

Estás consultando al puerto sin cifrar (ldap://, 389), no al cifrado
(ldaps://, 636).

Saludos,

La verdad es que es muy fácil perderse porque leyendo la wiki de Debian parece que es suficiente con configurar los certificados en el servidor y especificar olcLocalSSF a 128, y luego desde el cliente usar con el comando -ZZ. Y además parece que el TLS se aplica sobre el mismo puerto. Leer el capítulo 6 y llegarás al mismo error que yo: https://wiki.debian.org/LDAP/OpenLDAPSetup#TLS.2FSSL , además separa el TlS en el puerto 389 de lo que es LDAPS en el puerto 636, como así dicen en el párrafo:


By following the above instructions, slapd is configured to support StartTLS on the standard LDAP port 389.


Pero no es así. Lo de -ZZ era innecesario, es verdad que tengo que apuntar a ldaps pero además en Debian 12 he necesitado un nivel de depuración `-d 2`para ver referencias a TLS.

Ejemplo:


ldapsearch -x -D cn=admin,dc=oficina,dc=com -W  -b ou=Usuarios,dc=oficina,dc=com  -d 2 -H ldaps://openldap.oficina.com

La traza devuelta contiene múltiples líneas con tls_write y tls_read. Resuelto.

O sigo interpretando algo mal a la vista de las trazas de logs, o la wiki está mal, o algo es diferente en la versión de OpenLDAP 2.5 que usa Debian 12.

Gracias.



Acabo de hacer una prueba configurando el servidor slapd sólo con ldap, no ldaps. Están especificados los certificados de servidor y ca.

Y en el cliente /etc/ldap/ldap.conf tampoco hago referencia a ldaps.

Si desde el cliente hago un ldapsearch pero con -Z y un nivel 2 de depuración entonces efectivamente está usando el protocolo estándar ldap puerto 389 y veo las trazas de TLS. Eso es lo que indica la wiki.

$ ldapsearch -x -D cn=admin,dc=oficina,dc=com -W -b ou=Usuarios,dc=oficina,dc=com -d 2 -Z

Eso no quita que activando ldaps en servidor y cliente no sea válido, pero la wiki de Debian primero trata el caso ldap+TLS y deja aparte como en desuso ldaps con el puerto 636.

No entiendo si es algo específico de Debian o si el proyecto OpenLDAP también sigue ese camino.

Responder a