Lanzamiento del gestor de sistemas systemd 248

Después de cuatro meses de desarrollo, se presenta la versión del gestor de sistema systemd 248. En esta nueva versión, se ha añadido soporte para imágenes de extensiones de directorios del sistema, el archivo de configuración /etc/veritytab, la utilidad systemd-cryptenroll, el desbloqueo de LUKS2 utilizando chips TPM2 y tokens FIDO2, el inicio de unidades en un espacio aislado de identificadores IPC, el protocolo B.A.T.M.A.N. para redes en malla, y el backend nftables para systemd-nspawn. Se ha estabilizado systemd-oomd.

Principales cambios:

  • Se ha implementado el concepto de imágenes de extensión del sistema (System Extension), que se pueden usar para ampliar la jerarquía de directorios /usr/ y /opt/, y añadir archivos adicionales en tiempo de ejecución, incluso si los directorios especificados están montados en modo solo lectura. Al conectar la imagen de extensión del sistema, su contenido se superpone a la jerarquía de /usr/ y /opt/ mediante OverlayFS.

    Se ha ofrecido una nueva utilidad systemd-sysext para conectar, desconectar, ver y actualizar imágenes de extensiones del sistema. Para la conexión automática de imágenes ya instaladas durante el arranque, se ha añadido el servicio systemd-sysext.service. Se ha añadido el parámetro «SYSEXT_LEVEL=» al archivo os-release para determinar el nivel de extensiones del sistema admitido.

  • Para las unidades, se ha implementado la configuración ExtensionImages, que se puede usar para vincular imágenes de extensión del sistema a la jerarquía del espacio de nombres de sistema de archivos de servicios aislados específicos.
  • Se ha añadido un archivo de configuración /etc/veritytab para configurar la verificación de datos a nivel de bloque utilizando el módulo dm-verity. El formato del archivo es similar al de /etc/crypttab: «nombre_partición dispositivo_datos dispositivo_hash opciones_hash». Para configurar el comportamiento de dm-verity para el dispositivo raíz, se ha añadido el parámetro systemd.verity.root_options a la línea de comandos del núcleo.
  • Se ha añadido en systemd-cryptsetup la capacidad de extraer la URI del token PKCS#11 y la clave cifrada del encabezado de metadatos LUKS2 en formato JSON, lo que permite integrar la información para abrir un dispositivo cifrado dentro del mismo dispositivo sin la necesidad de archivos externos.
  • En systemd-cryptsetup se ha proporcionado soporte para desbloquear particiones cifradas LUKS2 utilizando chips TPM2 y tokens FIDO2, además de los tokens PKCS#11 previamente compatibles. La carga de libfido2 se realiza a través de dlopen(), es decir, la existencia se verifica sobre la marcha y no en forma de una dependencia fija.
  • En /etc/crypttab para systemd-cryptsetup se han añadido nuevas opciones «no-write-workqueue» y «no-read-workqueue» para habilitar el procesamiento sincrónico de entradas/salidas relacionadas con el cifrado y descifrado.
  • En la utilidad systemd-repart se ha añadido la posibilidad de activar particiones cifradas utilizando chips TPM2, por ejemplo, para crear una partición cifrada /var durante el primer arranque.
  • Se ha añadido la utilidad systemd-cryptenroll para vincular tokens TPM2, FIDO2 y PKCS#11 a particiones LUKS, así como para desvincular y ver tokens, vincular claves de respaldo y establecer una contraseña para el acceso.
  • Se ha añadido el parámetro PrivateIPC, que permite configurar el inicio de procesos en un espacio IPC aislado con sus propios identificadores y colas de mensajes en el archivo de unidad. Para conectar la unidad a un espacio de identificadores IPC ya creado, se ha propuesto la opción IPCNamespacePath.
  • Se han añadido las configuraciones ExecPaths y NoExecPaths, que permiten aplicar la bandera noexec a partes específicas del sistema de archivos.
  • En systemd-networkd se ha añadido soporte para el protocolo de malla B.A.T.M.A.N. (Better Approach To Mobile Adhoc Networking), que permite crear redes descentralizadas donde cada nodo está vinculado a través de nodos vecinos. Para la configuración, se ha propuesto la sección [BatmanAdvanced] en .netdev, el parámetro BatmanAdvanced en los archivos .network y un nuevo tipo de dispositivo «batadv».
  • Se ha estabilizado la implementación del mecanismo de respuesta temprana a la falta de memoria en el sistema systemd-oomd. Se ha añadido la opción DefaultMemoryPressureDurationSec para configurar el tiempo de espera antes de influir en la unidad. Systemd-oomd utiliza la subsistema del núcleo PSI (Pressure Stall Information) y permite identificar el inicio de retrasos debido a la falta de recursos y finalizar selectivamente procesos que consumen muchos recursos en una etapa en la que el sistema aún no está en un estado crítico y no comienza a reducir intensamente la memoria caché y a sustituir datos en el área de intercambio.
  • Se ha añadido un parámetro de línea de comandos del núcleo — «root=tmpfs», que permite montar la partición raíz en un almacenamiento temporal ubicado en la memoria RAM utilizando Tmpfs.
  • El parámetro en /etc/crypttab que define el archivo de clave ahora puede apuntar a sockets de tipo AF_UNIX y SOCK_STREAM. En este caso, la clave debe entregarse al conectarse al socket, lo que, por ejemplo, puede aplicarse para crear servicios que entreguen claves dinámicamente.
  • El nombre de host de reserva (fallback) para su uso por el gestor 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. También se ha implementado en systemd-hostnamed el manejo de la designación de «localhost» en el nombre de host y se ha añadido la capacidad de exportar el nombre de host, así como las propiedades «HardwareVendor» y «HardwareModel» a través de DBus.
  • El bloque de variables de entorno ahora se puede configurar mediante una nueva opción ManagerEnvironment en system.conf o user.conf, y no solo a través de la línea de comandos del núcleo y configuraciones de archivos unit.
  • En la fase de compilación se ha ofrecido la opción de utilizar la llamada al sistema fexecve() en lugar de execve() para reducir la latencia entre la verificación del contexto de seguridad y su aplicación.
  • Se han añadido nuevas operaciones condicionales ConditionSecurity=tpm2 y ConditionCPUFeature a los archivos unit para verificar la existencia de dispositivos TPM2 y características específicas de la CPU (por ejemplo, ConditionCPUFeature=rdrand se puede usar para verificar el soporte del procesador para la operación RDRAND).
  • Se ha implementado la generación automática de tablas de llamadas al sistema para filtros seccomp para los núcleos disponibles.
  • Se ha añadido la posibilidad de sustituir nuevos enlaces de montaje (bind mounts) en espacios de puntos de montaje existentes (mount namespace) de servicios, sin reiniciar los servicios. La sustitución se realiza con los comandos ‘systemctl bind …’ y ‘systemctl mount-image …’.
  • En las configuraciones StandardOutput y StandardError se ha añadido soporte para especificar rutas en la forma «truncate:» para limpiar antes de su uso.
  • En sd-bus se ha añadido la posibilidad de establecer una conexión con la sesión de un usuario específico dentro de un contenedor local. Por ejemplo, «systemctl —user -M lennart@ start quux».
  • En los archivos systemd.link en la sección [Link] se han implementado los parámetros:
    • Promiscuous — permite poner el dispositivo en modo «promiscuous» para procesar todos los paquetes de red, incluidos los que no están dirigidos al sistema actual;
    • TransmitQueues y ReceiveQueues para configurar el número de colas TX y RX;
    • TransmitQueueLength para configurar el tamaño de la cola TX; GenericSegmentOffloadMaxBytes y GenericSegmentOffloadMaxSegment para establecer límites en la aplicación de la tecnología GRO (Generic Receive Offload).
  • En los archivos systemd.network se han añadido nuevas configuraciones:
    • [Network] RouteTable para seleccionar la tabla de enrutamiento;
    • [RoutingPolicyRule] Type para el tipo de enrutamiento («blackhole», «unreachable», «prohibit»);
    • [IPv6AcceptRA] RouteDenyList y RouteAllowList para listas de anuncios de rutas permitidas y denegadas;
    • [DHCPv6] UseAddres para ignorar la dirección DHCP otorgada;
    • [DHCPv6PrefixDelegation] ManageTemporaryAddress;
    • ActivationPolicy para definir la política sobre la actividad de la interfaz (mantener siempre en estado UP o DOWN o permitir al usuario cambiar estados con el comando «ip link set dev»).
  • Se añadieron opciones [VLAN] Protocol, IngressQOSMaps, EgressQOSMaps y [MACVLAN] BroadcastMulticastQueueLength a los archivos systemd.netdev para configurar el procesamiento de paquetes VLAN.
  • Se interrumpió el montaje del directorio /dev/ en modo noejecutable, ya que esto causa un conflicto al usar la bandera ejecutable con archivos /dev/sgx. Para restaurar el comportamiento anterior se puede usar 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 identificadores de hardware se amplió con dispositivos USB para lecturas de huellas dactilares que soportan correctamente el modo de suspensión.
  • Se añadió el soporte en systemd-resolved para responder a consultas DNSSEC a través de un resolvedor stub. Los clientes locales pueden realizar la validación DNSSEC por sí mismos, mientras que las externas se proxyen sin cambios al servidor DNS padre.
  • En resolved.conf se añadió la opción CacheFromLocalhost, de modo que systemd-resolved usará almacenamiento en caché incluso para consultas al servidor DNS en la dirección 127.0.0.1 (por defecto el almacenamiento en caché de tales solicitudes está desactivado para evitar el doble almacenamiento en caché).
  • En systemd-resolved se añadió soporte para RFC-5001 NSID en el resolvedor DNS local, permitiendo a los clientes distinguir la interacción con el resolvedor local de otros. el servidor DNS.
  • En la utilidad resolvectl se implementó la posibilidad de mostrar información sobre la fuente de los datos (caché local, solicitud de red, respuesta de un manejador local) y la aplicación de cifrado durante la transmisión de datos. Para el control del proceso de resolución de nombres se ofrecieron las opciones —cache, —synthesize, —network, —zone, —trust-anchor y —validate.
  • En systemd-nspawn se añadió soporte para la configuración del firewall usando nftables, además del soporte existente para iptables. En la configuración IPMasquerade de systemd-networkd se añadió la posibilidad de usar un backend basado en nftables.
  • En systemd-localed se añadió soporte para llamar a locale-gen para generar locales que faltan.
  • Se añaden opciones —pager/—no-pager/—json= a diversas utilidades para activar/desactivar el modo de paginación y la salida en formato JSON. Se ha añadido la posibilidad de establecer el número de colores utilizados en el terminal a través de la variable de entorno SYSTEMD_COLORS («16» o «256»).
  • Se ha declarado obsoleto el ensamblaje con jerarquías de directorios separadas (división / y /usr) y el soporte para cgroup v1.
  • La rama principal en Git se ha renombrado de ‘master’ a ‘main’.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster