Desde Linux David Naranjo  

Systemd-homed un nuevo componente para administrar directorios de inicio

Systemd-homed

Lennart Poettering presentó en la conferencia All Systems Go 2019 un nuevo componente del administrador del sistema systemd, “systemd-homed” el cual está destinado a garantizar la portabilidad de los directorios de inicio de los usuarios y su separación de la configuración del sistema.

La idea principal del proyecto es crear entornos autónomos para los datos del usuario que puedan transferirse entre diferentes sistemas sin preocuparse por la sincronización de los identificadores y la privacidad. El entorno del directorio de inicio se entrega en forma de un archivo de imagen montado, cuyos datos están encriptados.

Las credenciales de usuario están vinculadas al directorio de inicio, no a la configuración del sistema; en lugar de /etc/passwd y /etc/shadow, se utiliza un perfil de formato JSON, almacenado en el directorio ~/.identity.

El perfil contiene los parámetros necesarios para que el usuario trabaje, incluida información sobre el nombre, el hash de contraseña, las claves de cifrado, las cuotas y los recursos proporcionados. El perfil se puede autenticar mediante una firma digital almacenada en un token externo de Yubikey.

 Cada directorio que maneja encapsula tanto el almacén de datos como el registro de usuario del usuario, de modo que describe exhaustivamente la cuenta del usuario y, por lo tanto, es naturalmente portátil entre sistemas sin más metadatos externos. 

En el anuncio también destaca que:

Los parámetros también pueden incluir información adicional, como claves para SSH, datos para autenticación biométrica, imagen, correo electrónico, dirección, zona horaria, idioma, límites en la cantidad de procesos y memoria, banderas de montaje adicionales (nodev, noexec, nosuid), datos sobre los aplicables Información de usuario del servidor IMAP / SMTP, información de habilitación de control parental, opciones de copia de seguridad, etc.

Varlink API se proporciona para consultar y analizar parámetros .

El UID/GID se asigna y procesa dinámicamente en cada sistema local al que está conectado el directorio de inicio.

Usando el sistema propuesto, el usuario puede mantener su directorio de inicio con él, por ejemplo, en una unidad Flash y obtener un entorno de trabajo en cualquier computadora sin crear explícitamente una cuenta en él (la presencia de un archivo con una imagen del directorio de inicio conduce a la síntesis del usuario).

Se propone utilizar el subsistema LUKS2 para el cifrado de datos, pero systemd-homed también le permite usar otros backends, por ejemplo, para directorios no cifrados, Btrfs, Fscrypt y particiones de red CIFS.

Para administrar directorios portátiles, se propone la utilidad homectl, que le permite crear y activar imágenes de directorios principales, así como cambiar su tamaño y establecer una contraseña.

A nivel del sistema, el trabajo es proporcionado por los siguientes componentes:

  • systemd-homed.service: administra el directorio de inicio e integra registros JSON directamente en las imágenes del directorio de inicio.
  • pam_systemd: procesa los parámetros del perfil JSON cuando un usuario inicia sesión y los aplica en el contexto de una sesión activada (realiza la autenticación, establece variables de entorno, etc.).
  • systemd-logind.service: procesa los parámetros de un perfil JSON cuando un usuario inicia sesión, aplica varias configuraciones de administración de recursos y establece límites.
  • nss-systemd: el módulo NSS para glibc, sintetiza las entradas NSS clásicas basadas en el perfil JSON, proporcionando compatibilidad con la API de UNIX para el procesamiento del usuario (/etc/contraseña).
  • PID 1: crea usuarios dinámicamente (sintetiza por analogía con la directiva DynamicUser en unidades) y los hace visibles para el resto del sistema.
  • systemd-userdbd.service: traduce las cuentas UNIX / glibc NSS en registros JSON y proporciona una API Varlink unificada para consultar y enumerar registros.

Las ventajas del sistema propuesto incluyen la capacidad de administrar usuarios al montar el directorio /etc en modo de solo lectura, la ausencia de la necesidad de sincronizar identificadores (UID/GID) entre sistemas, la independencia del usuario de una computadora específica, el bloqueo de datos del usuario durante el modo de suspensión, el uso de cifrado y Métodos modernos de autenticación.

Finalmente es importante mencionar que se planea incluir este nuevo componente “systemd-homed” en la versión principal de systemd 244 o 245.

Si quieres conocer más al respecto sobre este componente, puedes consultar el siguiente documento pdf.

El enlace es este.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.