versión 250 del administrador del sistema systemd

Después de cinco meses de desarrollo, se presentó el lanzamiento del administrador del sistema systemd 250. La nueva versión introdujo la capacidad de almacenar credenciales en forma cifrada, implementó la verificación de particiones GPT detectadas automáticamente mediante una firma digital, mejoró la información sobre las causas de los retrasos cuando inicio de servicios y opciones agregadas para limitar el acceso a servicios a ciertos sistemas de archivos e interfaces de red, se proporciona soporte para el monitoreo de la integridad de la partición usando el módulo dm-integrity y se agrega soporte para la actualización automática de sd-boot.

Cambios importantes:

  • Se agregó soporte para credenciales cifradas y autenticadas, lo que puede ser útil para almacenar de forma segura materiales confidenciales como claves SSL y contraseñas de acceso. El descifrado de credenciales se realiza sólo cuando es necesario y en relación con la instalación o el equipo local. Los datos se cifran automáticamente mediante algoritmos de cifrado simétrico, cuya clave puede ubicarse en el sistema de archivos, en el chip TPM2 o ​​mediante un esquema combinado. Cuando se inicia el servicio, las credenciales se descifran automáticamente y quedan disponibles para el servicio en su forma normal. Para trabajar con credenciales cifradas, se agregó la utilidad 'systemd-creds' y se propusieron las configuraciones LoadCredentialEncrypted y SetCredentialEncrypted para los servicios.
  • sd-stub, el ejecutable de EFI que permite que el firmware EFI cargue el kernel de Linux, ahora admite el inicio del kernel utilizando el protocolo EFI LINUX_EFI_INITRD_MEDIA_GUID. También se agrega a sd-stub la capacidad de empaquetar credenciales y archivos sysext en un archivo cpio y transferir este archivo al kernel junto con el initrd (los archivos adicionales se colocan en el directorio /.extra/). Esta característica le permite utilizar un entorno initrd inmutable verificable, complementado con sysexts y datos de autenticación cifrados.
  • La especificación de particiones detectables se ha ampliado significativamente, proporcionando herramientas para identificar, montar y activar particiones del sistema utilizando GPT (tablas de particiones GUID). En comparación con versiones anteriores, la especificación ahora admite la partición raíz y la partición /usr para la mayoría de las arquitecturas, incluidas las plataformas que no utilizan UEFI.

    Discoverable Partitions también agrega soporte para particiones cuya integridad es verificada por el módulo dm-verity usando firmas digitales PKCS#7, lo que facilita la creación de imágenes de disco completamente autenticadas. El soporte de verificación está integrado en varias utilidades que manipulan imágenes de disco, incluidas systemd-nspawn, systemd-sysext, systemd-dissect, RootImage Services, systemd-tmpfiles y systemd-sysusers.

  • Para unidades que tardan mucho en iniciarse o detenerse, además de mostrar una barra de progreso animada, es posible mostrar información de estado que permite comprender qué está sucediendo exactamente con el servicio en ese momento y qué servicio está siendo administrado por el administrador del sistema. actualmente en espera de completarse.
  • Se agregó el parámetro DefaultOOMScoreAdjust a /etc/systemd/system.conf y /etc/systemd/user.conf, que le permite ajustar el umbral OOM-killer para poca memoria, aplicable a los procesos que systemd inicia para el sistema y los usuarios. De forma predeterminada, el peso de los servicios del sistema es mayor que el de los servicios del usuario, es decir. Cuando no hay memoria suficiente, la probabilidad de que los servicios del usuario se cancelen es mayor que la del sistema.
  • Se agregó la configuración RestrictFileSystems, que le permite restringir el acceso de los servicios a ciertos tipos de sistemas de archivos. Para ver los tipos de sistemas de archivos disponibles, puede utilizar el comando "systemd-analyze filesystems". Por analogía, se ha implementado la opción RestrictNetworkInterfaces, que le permite restringir el acceso a determinadas interfaces de red. La implementación se basa en el módulo BPF LSM, que restringe el acceso de un grupo de procesos a los objetos del kernel.
  • Se agregó un nuevo archivo de configuración /etc/integritytab y una utilidad systemd-integritysetup que configura el módulo dm-integrity para controlar la integridad de los datos a nivel de sector, por ejemplo, para garantizar la inmutabilidad de los datos cifrados (el cifrado autenticado garantiza que un bloque de datos tenga no ha sido modificado de forma indirecta). El formato del archivo /etc/integritytab es similar a los archivos /etc/crypttab y /etc/veritytab, excepto que se usa dm-integrity en lugar de dm-crypt y dm-verity.
  • Se ha agregado un nuevo archivo de unidad systemd-boot-update.service, cuando se activa y el gestor de arranque sd-boot está instalado, systemd actualizará automáticamente la versión del gestor de arranque sd-boot, manteniendo el código del gestor de arranque siempre actualizado. El propio sd-boot ahora está construido de forma predeterminada con soporte para el mecanismo SBAT (UEFI Secure Boot Advanced Targeting), que resuelve problemas con la revocación de certificados para UEFI Secure Boot. Además, sd-boot brinda la capacidad de analizar la configuración de inicio de Microsoft Windows para generar correctamente los nombres de las particiones de inicio con Windows y mostrar la versión de Windows.

    sd-boot también ofrece la posibilidad de definir una combinación de colores en el momento de la compilación. Durante el proceso de arranque, se agregó soporte para cambiar la resolución de la pantalla presionando la tecla "r". Se agregó la tecla de acceso rápido "f" para ir a la interfaz de configuración del firmware. Se agregó un modo para iniciar automáticamente el sistema correspondiente al elemento del menú seleccionado durante el último inicio. Se agregó la capacidad de cargar automáticamente los controladores EFI ubicados en el directorio /EFI/systemd/drivers/ en la sección ESP (Partición del sistema EFI).

  • Se incluye un nuevo archivo de unidad factory-reset.target, que se procesa en systemd-logind de forma similar a las operaciones de reinicio, apagado, suspensión e hibernación, y se utiliza para crear controladores para realizar un restablecimiento de fábrica.
  • El proceso resuelto por systemd ahora crea un socket de escucha adicional en 127.0.0.54 además de 127.0.0.53. Las solicitudes que llegan a 127.0.0.54 siempre se redirigen a un servidor DNS ascendente y no se procesan localmente.
  • Se brindó la capacidad de compilar systemd-importd y systemd-resolved con la biblioteca OpenSSL en lugar de libgcrypt.
  • Se agregó soporte inicial para la arquitectura LoongArch utilizada en los procesadores Loongson.
  • systemd-gpt-auto-generator brinda la capacidad de configurar automáticamente particiones de intercambio definidas por el sistema cifradas por el subsistema LUKS2.
  • El código de análisis de imágenes GPT utilizado en systemd-nspawn, systemd-dissect y utilidades similares implementa la capacidad de decodificar imágenes para otras arquitecturas, lo que permite utilizar systemd-nspawn para ejecutar imágenes en emuladores de otras arquitecturas.
  • Al inspeccionar imágenes de disco, systemd-dissect ahora muestra información sobre el propósito de la partición, como la idoneidad para arrancar a través de UEFI o ejecutarse en un contenedor.
  • El campo "SYSEXT_SCOPE" se ha agregado a los archivos system-extension.d/, lo que le permite indicar el alcance de la imagen del sistema: "initrd", "system" o "portable".
  • Se agregó un campo "PORTABLE_PREFIXES" al archivo de lanzamiento del sistema operativo, que se puede usar en imágenes portátiles para determinar los prefijos de archivos de unidades admitidos.
  • systemd-logind presenta nuevas configuraciones HandlePowerKeyLongPress, HandleRebootKeyLongPress, HandleSuspendKeyLongPress y HandleHibernateKeyLongPress, que se pueden usar para determinar qué sucede cuando ciertas teclas se mantienen presionadas durante más de 5 segundos (por ejemplo, presionar la tecla Suspender rápidamente se puede configurar para entrar en modo de espera , y cuando se mantiene presionado, se irá a dormir).
  • Para las unidades, se implementan las configuraciones StartupAllowedCPUs y StartupAllowedMemoryNodes, que se diferencian de configuraciones similares sin el prefijo de Inicio en que se aplican solo en las etapas de inicio y apagado, lo que le permite establecer otras restricciones de recursos durante el inicio.
  • Se agregaron controles de presión [Condición|Asertar][Memoria|CPU|IO] que permiten omitir o fallar la activación de la unidad si el mecanismo PSI detecta una carga pesada en la memoria, la CPU y las E/S del sistema.
  • El límite máximo de inodos predeterminado se ha aumentado para la partición /dev de 64k a 1M, y para la partición /tmp de 400k a 1M.
  • Se ha propuesto una configuración ExecSearchPath para los servicios, que permite cambiar la ruta para buscar archivos ejecutables iniciados a través de configuraciones como ExecStart.
  • Se agregó la configuración RuntimeRandomizedExtraSec, que le permite introducir desviaciones aleatorias en el tiempo de espera de RuntimeMaxSec, lo que limita el tiempo de ejecución de una unidad.
  • Se ha ampliado la sintaxis de las configuraciones RuntimeDirectory, StateDirectory, CacheDirectory y LogsDirectory, en las que al especificar un valor adicional separado por dos puntos, ahora puede organizar la creación de un enlace simbólico a un directorio determinado para organizar el acceso a lo largo de varias rutas.
  • Para los servicios, se ofrecen configuraciones TTYRows y TTYColumns para establecer el número de filas y columnas en el dispositivo TTY.
  • Se agregó la configuración ExitType, que le permite cambiar la lógica para determinar el final de un servicio. De forma predeterminada, systemd solo monitorea la muerte del proceso principal, pero si se establece ExitType=cgroup, el administrador del sistema esperará a que se complete el último proceso en el cgroup.
  • La implementación de systemd-cryptsetup de compatibilidad con TPM2/FIDO2/PKCS11 ahora también está integrada como un complemento cryptsetup, lo que permite utilizar el comando cryptsetup normal para desbloquear una partición cifrada.
  • El controlador TPM2 en systemd-cryptsetup/systemd-cryptsetup agrega soporte para claves primarias RSA además de claves ECC para mejorar la compatibilidad con chips que no son ECC.
  • La opción de tiempo de espera del token se agregó a /etc/crypttab, que le permite definir el tiempo máximo de espera para una conexión del token PKCS#11/FIDO2, después del cual se le pedirá que ingrese una contraseña o clave de recuperación.
  • systemd-timesyncd implementa la configuración SaveIntervalSec, que le permite guardar periódicamente la hora actual del sistema en el disco, por ejemplo, para implementar un reloj monótono en sistemas sin RTC.
  • Se han agregado opciones a la utilidad systemd-analyze: “--image” y “--root” para verificar archivos de unidades dentro de una imagen determinada o directorio raíz, “--recursive-errors” para tener en cuenta las unidades dependientes cuando se produce un error se detecta, “--offline” para verificar archivos unitarios separados guardados en el disco, “—json” para salida en formato JSON, “—quiet” para deshabilitar mensajes sin importancia, “—profile” para vincular a un perfil portátil. También se agregó el comando inspect-elf para analizar archivos principales en formato ELF y la capacidad de verificar archivos de unidad con un nombre de unidad determinado, independientemente de si este nombre coincide con el nombre del archivo.
  • systemd-networkd ha ampliado el soporte para el bus CAN (Controller Area Network). Se agregaron configuraciones para controlar los modos CAN: Loopback, OneShot, PresumeAck y ClassicDataLengthCode. Se agregaron las opciones TimeQuantaNSec, PropagationSegment, PhaseBufferSegment1, PhaseBufferSegment2, SyncJumpWidth, DataTimeQuantaNSec, DataPropagationSegment, DataPhaseBufferSegment1, DataPhaseBufferSegment2 y DataSyncJumpWidth a la sección [CAN] de los archivos .network para controlar la sincronización de bits de la interfaz CAN.
  • Systemd-networkd ha agregado una opción de Etiqueta para el cliente DHCPv4, que le permite configurar la etiqueta de dirección utilizada al configurar direcciones IPv4.
  • systemd-udevd para "ethtool" implementa soporte para valores "máximos" especiales que establecen el tamaño del búfer al valor máximo admitido por el hardware.
  • En los archivos .link para systemd-udevd ahora puede configurar varios parámetros para combinar adaptadores de red y conectar controladores de hardware (descarga).
  • systemd-networkd ofrece nuevos archivos .network de forma predeterminada: 80-container-vb.network para definir puentes de red creados al ejecutar systemd-nspawn con las opciones “--network-bridge” o “--network-zone”; 80-6rd-tunnel.network para definir túneles que se crean automáticamente al recibir una respuesta DHCP con la opción 6RD.
  • Systemd-networkd y systemd-udevd han agregado soporte para el reenvío de IP a través de interfaces InfiniBand, para lo cual se agregó la sección “[IPoIB]” a los archivos systemd.netdev y se implementó el procesamiento del valor “ipoib” en Kind configuración.
  • systemd-networkd proporciona configuración de ruta automática para las direcciones especificadas en el parámetro AllowedIPs, que se puede configurar a través de los parámetros RouteTable y RouteMetric en las secciones [WireGuard] y [WireGuardPeer].
  • systemd-networkd proporciona generación automática de direcciones MAC que no cambian para las interfaces batadv y bridge. Para deshabilitar este comportamiento, puede especificar MACAddress=none en archivos .netdev.
  • Se agregó una configuración WakeOnLanPassword a los archivos .link en la sección “[Enlace]” para determinar la contraseña cuando WoL se ejecuta en modo “SecureOn”.
  • Se agregaron las configuraciones AutoRateIngress, CompensationMode, FlowIsolationMode, NAT, MPUBytes, PriorityQueueingPreset, FirewallMark, Wash, SplitGSO y UseRawPacketSize a la sección “[CAKE]” de los archivos .network para definir los parámetros del mecanismo de administración de colas de red CAKE (Common Applications Kept Enhanced). .
  • Se agregó una configuración IgnoreCarrierLoss a la sección "[Red]" de los archivos .network, lo que le permite determinar cuánto tiempo esperar antes de reaccionar ante una pérdida de señal del operador.
  • Systemd-nspawn, homectl, machinectl y systemd-run han ampliado la sintaxis del parámetro "--setenv" - si solo se especifica el nombre de la variable (sin "="), el valor se tomará de la variable de entorno correspondiente (por Por ejemplo, al especificar "--setenv=FOO", el valor se tomará de la variable de entorno $FOO y se utilizará en la variable de entorno del mismo nombre establecida en el contenedor).
  • systemd-nspawn ha agregado una opción "--suppress-sync" para deshabilitar las llamadas al sistema sync()/fsync()/fdatasync() al crear un contenedor (útil cuando la velocidad es una prioridad y preservar los artefactos de compilación en caso de falla no lo es). importante, ya que se pueden recrear en cualquier momento).
  • Se ha añadido una nueva base de datos hwdb, que incluye varios tipos de analizadores de señales (multímetros, analizadores de protocolos, osciloscopios, etc.). La información sobre las cámaras en hwdb se ha ampliado con un campo con información sobre el tipo de cámara (normal o infrarroja) y la ubicación de la lente (delantera o trasera).
  • Se habilitó la generación de nombres de interfaz de red que no cambian para dispositivos netfront utilizados en Xen.
  • El análisis de archivos principales mediante la utilidad systemd-coredump basada en las bibliotecas libdw/libelf ahora se realiza en un proceso separado, aislado en un entorno sandbox.
  • systemd-importd ha agregado soporte para las variables de entorno $SYSTEMD_IMPORT_BTRFS_SUBVOL, $SYSTEMD_IMPORT_BTRFS_QUOTA, $SYSTEMD_IMPORT_SYNC, con las cuales puedes deshabilitar la generación de subparticiones Btrfs, así como configurar cuotas y sincronización de discos.
  • En systemd-journald, en sistemas de archivos que admiten el modo de copia en escritura, el modo COW se vuelve a habilitar para los diarios archivados, lo que permite comprimirlos usando Btrfs.
  • systemd-journald implementa la deduplicación de campos idénticos en un solo mensaje, que se realiza en la etapa anterior a colocar el mensaje en el diario.
  • Se agregó la opción "--show" al comando de apagado para mostrar el apagado programado.

Fuente: opennet.ru

Añadir un comentario