Inicio > *nix > PAM con LDAP Debian Etch

PAM con LDAP Debian Etch

martes, 3 de junio de 2008 Dejar un comentario Ir a comentarios

Esto es algo viejo, pero ya me lo han pedido varias veces, asi que aqui les publico mis tips.

Verificar si se tiene instalado el paquete openldap-utils.

Verificar si se tiene instalado el paquete libnss-ldap

Verificar si se tiene instalado el paquete libpam-ldap

Verificar si se tiene instalado el paquete nscd

Configurar /etc/ldap/ldap.conf para facilitar las busquedas.

 BASE dc=ejemplo, dc=com

 URI  ldap://ldap.ejemplo.com
 # El URI podria ser un IP, y se recomienda usar el IP al menos que se tenga un buen servicio de DNS.

Configurar /etc/libnss-ldap.conf

uri ldap://ldap.ejemplo.com

base dc=ejemplo,dc=com

ldap_version 3

rootbinddn cn=admin,dc=ejemplo,dc=com
# El URI podria ser un IP, y se recomienda usar el IP al menos que se tenga un buen servicio de DNS.
# Se podria configurar un usuario en el ldap para el nsswitch para hacer solo busquedas.

Hacer lo mismo con el archivo /etc/pam_ldap.conf

Poner el password del admin de ldap en: /etc/libnss-ldap.secret

Respaldar el archivo /etc/nsswitch.conf

cp /etc/nsswitch.conf /etc/nsswitch.conf.old

Configurar /etc/nsswitch.conf

passwd:         files ldap

group:          files ldap

hosts:          dns ldap

services:   ldap [NOTFOUND=return] files

networks:   ldap [NOTFOUND=return] files

protocols:  ldap [NOTFOUND=return] files

rpc:        ldap [NOTFOUND=return] files

ethers:     ldap [NOTFOUND=return] files

netmasks:   files

bootparams: files

publickey:  files

automount:  files

aliases:    files

sendmailvars:   files

netgroup:   ldap [NOTFOUND=return] files

Editar /etc/pam.d/common-auth

 auth sufficient pam_ldap.so

 auth required   pam_unix.so use_first_pass

Editar /etc/pam.d/common-session

 session sufficient pam_ldap.so

 session required   pam_unix.so

Editar /etc/pam.d/common-account

 account sufficient pam_ldap.so

 account required   pam_unix.so

Reiniciar los servicios que usan PAM, por ejemplo:

 /etc/init.d/ssh restart

*POSIBLES FALLAS*
Revisar el archivo /var/log/auth para monitorear las conexiones, si fallan las credenciales revisar nscd y que los passwords esten en MD5
Reiniciar nscd cada vez que se haga un cambio grande

 /etc/init.d/nscd restart

Verificar que el uri sea: uri ldap://ldap.ejemplo.com en pam_ldap.conf y en libnss-ldap.conf o en su defecto el ip (192.168.1.1 por ejemplo).

Correr tshark para ver las trazas de conexion:

 tshark -i any port 389 -w ldap.archivo

 tshark -r ldap.txt -V
Categories: *nix Tags: ,
  1. martes, 3 de junio de 2008 a las 18:18 | #1

    Algunas notas:

    Las claves pueden almacenadas bajo SHA, MD5, Crypt y en texto plano, con salts o sin salts, y codificadas en Base64 o no.

    nscd es algo terrible para tener en un sistema que utilice LDAP, si no se sabe configurar. Básicamente hay que calcular números primos adecuados para el dimensionamiento de la base de datos local. Mejores opciones serían pam-ccreds y nss-db.

    La mayoría de las implementaciones de LDAP para control de acceso en sistemas Linux sólo populan las bases de datos passwd y group de NSS, por lo que se hace innecesaria una búsqueda adicional por cada uno de los otros servicios.

    El paquete se llama ldap-utils en Debian y derivados, pero no es necesario para autenticar un sistema Linux contra OpenLDAP.

    Finalmente, no suele ser necesario conectarse con un usuario a los servidores OpenLDAP, por lo que usar rootbinddn podría no ser necesario. Sería más útil configurar los usuarios de sistema para ser ignorados por libnss-ldap, lo cual ayuda mucho con udev y el acceso cuando LDAP está caído.

    Hay un buen resumen de pasos para configurar un sistema con LDAP (exceptuando el uso de compat en nsswitch.conf) en el siguiente enlace:

    http://www.opensourcebrooklyn.com/?q=node/32

    Saludos,
    Jose

  2. viernes, 10 de abril de 2009 a las 06:43 | #2

    Super-Duper sitio! Me encanta! Volveré de nuevo – que lo alimenta también, Gracias.