Configuración de SSSD: nested groups

En el post anterior se describía la sustitución natural de libnss_ldap en RHEL6 que conocíamos hasta RHEL5. El inconveniente que presenta es que ahora ya no incluye soporte para nested_groups (grupos dentro de grupos) tal y como se recoge en el README del paquete: /usr/share/doc/nss-pam-ldapd-0.7.5/README

Para conseguir que nuestro sistema soporte los grupos dentro de grupos que hay en el directorio OpenLDAP, tendremos que configurar la segunda alternativa que incluye nuestro sistema RHEL6. Se trata de SSSD: System Security Services Daemon (SSSD). Este es un nuevo servicio que aparece en Fedora 11, y pretende ofrecer una interfaz para NSS y PAM, única desde la que administrar el acceso remoto a directorios LDAP y múltiples mecanismos de autenticación desde un único punto. Este servicio es un elemento fundamental en FreeIPA (el proyecto de identity-manager de RedHat, basado en su LDAP, no en OpenLDAP).

La idea es la misma que la anterior: Disponer un servicio independiente de nss que se encargue de las búsquedas en LDAP, Kerberos, etc, y que si se detiene el sistema no se ralentice. Para configurar este nuevo servicio de forma que busque los usuarios y grupos en nuestro OpenLDAP editaremos el fichero /etc/sssd/sssd.conf y configuraremos la sección [domain/LDAP] para que tenga el siguiente contenido:

[domain/LDAP]

id_provider = ldap
auth_provider = ldap
ldap_schema = rfc2307bis
ldap_uri = ldap://LDAPSERVER.tecnoquia.com

ldap_user_search_base = o=tecnoquia,c=es
ldap_group_search_base = ou=grupos,o=tecnoquia,c=es
ldap_default_bind_dn = cn=nss,o=tecnoquia,c=es
ldap_default_authtok_type = password
ldap_default_authtok = super-secreto

ldap_group_member = uniqueMember
cache_credentials = true
enumerate = true
Lo importante para el soporte de nested_groups es la declaración de ldap_schema=rfc2307bis. Además, debemos descomentar la línea:
domains = LOCAL,LDAP
y también la definición del dominio [domain/LOCAL], para quede como:
[domain/LOCAL]
description = LOCAL Users domain
id_provider = local

enumerate = true
min_id = 500
max_id = 999
Luego editar el fichero /etc/nsswitch.conf para cambiar la configuración de donde debemos buscar los usuarios y grupos:
passwd:  files [NOTFOUND=continue] sss
shadow: files
group: files [NOTFOUND=continue] sss
Para aplicar estos cambios, tendremos que iniciar el demonio sssd:
/etc/init.d/sssd start
chkconfig sssd on
y luego si, podremos ejecutar los comandos:
  • getent passwd, que nos mostrará un listado de todos los usuarios locales y en LDAP
  • getent group, nos mostrará un listado de las cuentas de grupo locales y en el directorio, expandiendo correctamente los usuarios de grupos que contenidos en otros grupos.
  • id <LOGIN> nos mostrará información del usuario, que puede estar almacenada en LDAP

La foto la he sacado del album de challiyan en flickr

1 comentario:

Anónimo dijo...

Me parecia raro ѵer un post asii en esge sitio ,en cambio hoy estoy
realente agrаdecido con el de hoy

Pɑra leer mas ... Miki