versión 248 del administrador del sistema systemd

Después de cuatro meses de desarrollo, se presenta el lanzamiento del administrador del sistema systemd 248. La nueva versión brinda soporte para imágenes para expandir los directorios del sistema, el archivo de configuración /etc/veritytab, la utilidad systemd-cryptenroll y el desbloqueo de LUKS2 usando chips TPM2 y FIDO2. tokens, unidades en ejecución en un espacio de identificador IPC aislado, protocolo BATMAN para redes en malla, backend nftables para systemd-nspawn. Systemd-oomd se ha estabilizado.

Cambios importantes:

  • Se ha implementado el concepto de imágenes de extensión del sistema, que se pueden utilizar para ampliar la jerarquía de los directorios /usr/ y /opt/ y agregar archivos adicionales en tiempo de ejecución, incluso si los directorios especificados están montados como de solo lectura. Cuando se monta una imagen de extensión del sistema, su contenido se superpone en la jerarquía /usr/ y /opt/ usando OverlayFS.

    Se ha propuesto una nueva utilidad, systemd-sysext, para conectar, desconectar, ver y actualizar imágenes de extensiones del sistema. Para conectar automáticamente imágenes ya instaladas durante el arranque, se ha agregado el servicio systemd-sysext.service. Se agregó el parámetro "SYSEXT_LEVEL=" al archivo os-release para determinar el nivel de extensiones del sistema compatibles.

  • Para las unidades, se implementó la configuración ExtensionImages, que se puede usar para vincular imágenes de extensión del sistema a la jerarquía de espacios de nombres FS de servicios aislados individuales.
  • Se agregó el archivo de configuración /etc/veritytab para configurar la verificación de datos a nivel de bloque usando el módulo dm-verity. El formato del archivo es similar a /etc/crypttab - “nombre_sección dispositivo_para_datos dispositivo_para_hashes opciones check_hash_root”. Se agregó la opción de línea de comando del kernel systemd.verity.root_options para configurar el comportamiento de dm-verity para el dispositivo raíz.
  • systemd-cryptsetup agrega la capacidad de extraer el URI del token PKCS#11 y la clave cifrada del encabezado de metadatos LUKS2 en formato JSON, lo que permite integrar información sobre la apertura de un dispositivo cifrado en el propio dispositivo sin involucrar archivos externos.
  • systemd-cryptsetup brinda soporte para desbloquear particiones cifradas LUKS2 usando chips TPM2 y tokens FIDO2, además de los tokens PKCS#11 previamente admitidos. La carga de libfido2 se realiza mediante dlopen(), es decir. la disponibilidad se verifica sobre la marcha, en lugar de como una dependencia cableada.
  • Se agregaron nuevas opciones "no-write-workqueue" y "no-read-workqueue" a /etc/crypttab para systemd-cryptsetup para permitir el procesamiento sincrónico de E/S asociadas con el cifrado y descifrado.
  • La utilidad systemd-repart ha agregado la capacidad de activar particiones cifradas utilizando chips TPM2, por ejemplo, para crear una partición /var cifrada en el primer arranque.
  • Se agregó la utilidad systemd-cryptenroll para vincular tokens TPM2, FIDO2 y PKCS#11 a particiones LUKS, así como para desanclar y ver tokens, vincular claves de repuesto y establecer una contraseña para el acceso.
  • Se agregó el parámetro PrivateIPC, que le permite configurar el archivo de unidad para ejecutar procesos en un espacio IPC aislado con sus propios identificadores separados y cola de mensajes. Para conectar una unidad a un espacio de identificador IPC ya creado, se propone la opción IPCNamespacePath.
  • Se agregaron configuraciones de ExecPaths y NoExecPaths para permitir que el indicador noexec se aplique a partes específicas del sistema de archivos.
  • systemd-networkd agrega soporte para el protocolo de malla BATMAN (Better Approach To Mobile Adhoc Networking), que permite la creación de redes descentralizadas en las que cada nodo está conectado a través de nodos vecinos. Para la configuración se propone la sección [BatmanAdvanced] en .netdev, el parámetro BatmanAdvanced en archivos .network y un nuevo tipo de dispositivo “batadv”.
  • Se ha estabilizado la implementación del mecanismo de respuesta temprana para poca memoria en el sistema systemd-oomd. Se agregó la opción DefaultMemoryPressureDurationSec para configurar el tiempo de espera para que se libere un recurso antes de afectar una unidad. Systemd-oomd utiliza el subsistema del núcleo PSI (Pressure Stall Information) y le permite detectar la aparición de retrasos debido a la falta de recursos y finalizar selectivamente los procesos que consumen muchos recursos en una etapa en la que el sistema aún no se encuentra en un estado crítico y no comience a recortar intensamente el caché y a desplazar los datos a la partición de intercambio.
  • Se agregó el parámetro de línea de comando del kernel “root=tmpfs”, que le permite montar la partición raíz en un almacenamiento temporal ubicado en la RAM usando Tmpfs.
  • El parámetro /etc/crypttab que especifica el archivo de clave ahora puede apuntar a los tipos de socket AF_UNIX y SOCK_STREAM. En este caso, la clave se debe proporcionar al conectarse al socket, que, por ejemplo, se puede utilizar para crear servicios que emitan claves dinámicamente.
  • El nombre de host alternativo para uso del administrador del sistema y systemd-hostnamed ahora se puede configurar de dos maneras: a través del parámetro DEFAULT_HOSTNAME en os-release y a través de la variable de entorno $SYSTEMD_DEFAULT_HOSTNAME. systemd-hostnamed también maneja "localhost" en el nombre de host y agrega la capacidad de exportar el nombre de host así como las propiedades "HardwareVendor" y "HardwareModel" a través de DBus.
  • El bloque con variables de entorno expuestas ahora se puede configurar a través de la nueva opción ManagerEnvironment en system.conf o user.conf, y no solo a través de la línea de comando del kernel y la configuración del archivo de unidad.
  • En tiempo de compilación, es posible utilizar la llamada al sistema fexecve() para iniciar procesos en lugar de execve() para reducir el retraso entre la verificación del contexto de seguridad y su aplicación.
  • Para archivos unitarios, se agregaron nuevas operaciones condicionales ConditionSecurity=tpm2 y ConditionCPUFeature para verificar la presencia de dispositivos TPM2 y capacidades de CPU individuales (por ejemplo, ConditionCPUFeature=rdrand se puede usar para verificar si el procesador admite la operación RDRAND).
  • Para los núcleos disponibles, se ha implementado la generación automática de tablas de llamadas al sistema para filtros seccomp.
  • Se agregó la capacidad de sustituir nuevos montajes de enlace en espacios de nombres de montaje de servicios existentes, sin reiniciar los servicios. La sustitución se realiza con los comandos 'systemctl bind ...' y 'systemctl montar-imagen …'.
  • Se agregó soporte para especificar rutas en las configuraciones StandardOutput y StandardError en el formato "truncar: » para limpiar antes de su uso.
  • Se agregó la capacidad de establecer una conexión a la sesión de un usuario específico dentro de un contenedor local a sd-bus. Por ejemplo "systemctl -user -M lennart@ start quux".
  • Los siguientes parámetros se implementan en los archivos systemd.link en la sección [Enlace]:
    • Promiscuo: le permite cambiar el dispositivo al modo "promiscuo" para procesar todos los paquetes de red, incluidos aquellos que no están dirigidos al sistema actual;
    • TransmitQueues y ReceiverQueues para configurar el número de colas TX y RX;
    • TransmitQueueLength para establecer el tamaño de la cola TX; GenericSegmentOffloadMaxBytes y GenericSegmentOffloadMaxSegment para establecer límites para el uso de la tecnología GRO (descarga de recepción genérica).
  • Se han agregado nuevas configuraciones a los archivos systemd.network:
    • [Red] RouteTable para seleccionar una tabla de enrutamiento;
    • [RoutingPolicyRule] Escriba el tipo de enrutamiento ("agujero negro, "inalcanzable", "prohibido");
    • [IPv6AcceptRA] RouteDenyList y RouteAllowList para listas de anuncios de rutas permitidas y denegadas;
    • [DHCPv6] UseAddres para ignorar la dirección emitida por DHCP;
    • [DHCPv6PrefixDelegation] Administrar dirección temporal;
    • ActivationPolicy para definir la política con respecto a la actividad de la interfaz (mantener siempre en estado ARRIBA o ABAJO o permitir al usuario cambiar estados con el comando “ip link set dev”).
  • Se agregaron las opciones de protocolo [VLAN], IngressQOSMaps, EgressQOSMaps y [MACVLAN] BroadcastMulticastQueueLength a los archivos systemd.netdev para configurar el manejo de paquetes VLAN.
  • Se dejó de montar el directorio /dev/ en modo noexec ya que causa un conflicto al usar el indicador ejecutable con archivos /dev/sgx. Para devolver el comportamiento anterior, puede utilizar la configuración NoExecPaths=/dev.
  • Los permisos del archivo /dev/vsock se cambiaron a 0o666 y los archivos /dev/vhost-vsock y /dev/vhost-net se movieron al grupo kvm.
  • La base de datos de ID de hardware se ha ampliado con lectores de huellas dactilares USB que admiten correctamente el modo de suspensión.
  • systemd-resolved agregó soporte para emitir respuestas a consultas DNSSEC a través de un resolutor de código auxiliar. Los clientes locales pueden realizar la validación DNSSEC por sí mismos, mientras que los clientes externos se envían sin cambios al servidor DNS principal.
  • Se agregó la opción CacheFromLocalhost a resolve.conf; cuando se configura, systemd-resolved usará el almacenamiento en caché incluso para llamadas al servidor DNS en 127.0.0.1 (de forma predeterminada, el almacenamiento en caché de dichas solicitudes está deshabilitado para evitar el doble almacenamiento en caché).
  • systemd-resolved agrega soporte para NSID RFC-5001 en el solucionador DNS local, lo que permite a los clientes diferenciar entre interacciones con el solucionador local y otro servidor DNS.
  • La utilidad resolvectl implementa la capacidad de mostrar información sobre la fuente de datos (caché local, solicitud de red, respuesta del procesador local) y el uso de cifrado al transmitir datos. Las opciones --cache, --synthesize, --network, --zone, --trust-anchor y --validate se proporcionan para controlar el proceso de determinación de nombres.
  • systemd-nspawn agrega soporte para configurar un firewall usando nftables además del soporte existente para iptables. La configuración de IPMasquerade en systemd-networkd ha agregado la capacidad de utilizar un backend basado en nftables.
  • systemd-localed agregó soporte para llamar a locale-gen para generar configuraciones regionales faltantes.
  • Se han agregado opciones --pager/-no-pager/-json= a varias utilidades para habilitar/deshabilitar el modo de paginación y la salida en formato JSON. Se agregó la capacidad de establecer la cantidad de colores utilizados en la terminal a través de la variable de entorno SYSTEMD_COLORS (“16” o “256”).
  • La compilación con jerarquías de directorios separadas (split / y /usr) y la compatibilidad con cgroup v1 han quedado obsoletas.
  • Se cambió el nombre de la rama master en Git de 'master' a 'main'.

Fuente: opennet.ru

Añadir un comentario