sssd-tools: "Jugando" a cachear credenciales en un sistema con SSSD

Las credenciales de un usuario son su nombre de usuario (username) y su contraseña (password).

El cacheo de credenciales es muy útil, sobre todo, para ordenadores portátiles en los que se realiza la autenticación de usuarios mediante un servidor LDAP. Si cacheamos las credenciales de un usuario, éste podrá acceder al portátil  cuando el servicio de ldap no se encuentre disponible, por ejemplo, cuando el portátil no se encuentre conectado a la red.

Antiguamente, utilizábamos libpam-ccreds para cachear credenciales de usuario en Debian. Ahora, con el cambio a Ubuntu Bionic Beaver, hemos pasado a usar SSSD (System Security Services Daemon) como sistema de autenticación, principalmente porque nos proporciona acceso a diferentes proveedores de identificación y autenticación. De este modo, podemos cambiar de proveedor de autenticación cuando nos interese.

Para cachear credenciales SSSD, lo primero que tenemos que hacer es instalar el paquete sssd-tools, que nos proporciona un amplio conjunto de herramientas, entre las que encontraremos sss_seed y sss_cache:

apt-get update && apt-get -y install sssd-tools

sss_seed nos servirá para cachear credenciales de usuario.

Por ejemplo, si ejecutamos el siguiente comando:

sss_seed  -n enavas -D LDAP -p /root/sss_passwd

Estaríamos cacheando las credenciales del usuario enavas, cuya password se encuentra almacenada en el archivo /root/sss_passwd en el dominio con nombre LDAP.

Para más información, ver el man:

man sss_seed

Bien, pues ahora que ya sabemos cachear credenciales de usuario, vamos a ver cómo invalidarlas. Para ello, haremos uso del comando sss_cache.

El comando sss_cache invalida registros en la caché SSSD. Los registros invalidados son forzados a ser recargados desde el servidor tan pronto como el backend SSSD utilizado se encuentre disponible. Existen una opción para invalidar directamente toda la caché (-E,--everything):

sss_cache -E

Y, además, existen opciones para invalidar objetos concretos: usuarios, grupos, netgroups, servicios, etc...

Por ejemplo, Supongamos que queremos invalidar el usuario cacheado enavas:

sss_cache -u enavas

Ahora bien, supongamos que queremos invalidar todos los usuarios cacheados. Haríamos lo siguiente:

sss_cache -U

De igual modo, podríamos invalidar grupos individuales (-g login) o todos los grupos (-G).

Combinando ambas opciones, es muy fácil invalidar usuarios y grupos cacheados localmente:

sss_cache -U -G

Para más información, ver el man:

man sss_cache
Be the first to comment

Por favor acceder para comentar.