Autenticación LDAP-SASL con Digest-MD5


LDAP no incluye internamente ningún método seguro de comunicación entre un cliente y un servidor, sino que deben utilizarse programas externos, principalmente SASL.

SASL utiliza a su vez diversos mecanismos de autenticación, un extracto de estos es:

  • PLAIN. Descartado porque no aumenta la seguridad.
  • DIGEST-MD5. El mínimo recomendado por LDAP y que explicaremos aquí.
  • GSSAPI (Kerberos-V). El más seguro.
  • EXTERNAL. Para utilizar TLS (SSL)

En esta entrada explicamos la forma de utilizar usuarios almacenados en la base de datos de SASL para hacer consultas al directorio LDAP.

Características del montaje:

  • Debian GNU/Linux (lenny)
  • Slapd 2.4.11-1
  • SASL 2.1.22

Instalando SASL2

En el mismo equipo que tengamos instalado slapd, instalamos el demonio sasl2 para que almacene las contraseñas de los usuarios que se conectan al directorio.

Escribimos en una terminal:

aptitude install sasl2-bin

De la salida, extraemos el siguiente mensaje:

To enable saslauthd, edit /etc/default/saslauthd and set START=yes (warning).

que nos indica los pasos a seguir para levantar el demonio saslauthd. Los seguimos y levantamos el demonio.

Añadir usuarios a SASL

Para añadir un usuario basta con hacer:

saslpasswd2 usuario
Password: 
Again (for verification):

Y comprobamos los usuarios que hay con:

sasldblistusers2 
usuario@chucky: userPassword

Es importante notar que el usuario se almacena con el “hostame” del equipo.

Prueba de funcionamiento

Utilizamos la herramienta ldapsearch, que por defecto utiliza el método SASL con Digest-MD5 para la autenticación. Si hacemos una búsqueda genérica ocurre lo siguiente:

ldapsearch -U usuario@chucky -b cn=nodomain
SASL/DIGEST-MD5 authentication started
Please enter your password: 
ldap_sasl_interactive_bind_s: Invalid credentials (49)

¿Cuál es el problema? Podemos comprobar el el fichero /var/log/syslog aparece la línea:

 slapd[1466]: SASL [conn=0] Error: unable to open Berkeley db /etc/sasldb2: Permission denied

Que nos indica un problema de permisos a la hora de leer la base de datos de SASL, que reside en el fichero /ets/sasldb2 y que tiene las siguientes características:

-rw-r----- 1 root root 12288 dic  7 11:36 /etc/sasldb2

Cambiamos el grupo propietario por sasl:

chgrp sasl /etc/sasldb2

y añadimos el usuario openldap, que es el que ejecuta slapd, al grupo sasl:

adduser openldap sasl
Añadiendo al usuario `openldap' al grupo `sasl' ...
Añadiendo al usuario openldap al grupo sasl
Hecho.

Si repetimos la búsqueda, ahora se realizará de forma correcta la autenticación del usuario, con la ventaja de que no se transmite en claro la contraseña por la red.

Referencias

, , ,

  1. #1 por hoo2 el 30-10-09 - 8:24 pm

    Thank you very much. This was very very helpful. I suggest a new article (in English this time) to add sasl support here: http://wiki.debian.org/LDAP#ServerSetup
    , in order to run ldapsearch etc…


    Houtouridis Christos

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: