Systemd System Manager versión 250

Despois de cinco meses de desenvolvemento, presentouse o lanzamento do xestor do sistema systemd 250. A nova versión introduciu a posibilidade de almacenar credenciais en forma cifrada, implementou a verificación das particións GPT detectadas automaticamente mediante unha sinatura dixital, mellorou a información sobre as causas dos atrasos. servizos de inicio e opcións engadidas para limitar o acceso ao servizo a certos sistemas de ficheiros e interfaces de rede, ofrécese soporte para a supervisión da integridade das particións mediante o módulo dm-integrity e engádese soporte para a actualización automática de sd-boot.

Principais cambios:

  • Engadiuse compatibilidade con credenciais cifradas e autenticadas, que poden ser útiles para almacenar de forma segura materiais confidenciais como claves SSL e contrasinais de acceso. O descifrado das credenciais realízase só cando é necesario e en conexión coa instalación ou o equipo local. Os datos cífranse automaticamente mediante algoritmos de cifrado simétrico, cuxa clave se pode localizar no sistema de ficheiros, no chip TPM2 ou mediante un esquema de combinación. Cando se inicia o servizo, as credenciais descifran automaticamente e quedan dispoñibles para o servizo na súa forma normal. Para traballar con credenciais cifradas, engadiuse a utilidade "systemd-creds" e propuxéronse os axustes LoadCredentialEncrypted e SetCredentialEncrypted para os servizos.
  • sd-stub, o executable EFI que permite que o firmware EFI cargue o núcleo de Linux, agora admite o inicio do núcleo mediante o protocolo EFI LINUX_EFI_INITRD_MEDIA_GUID. Tamén se engade a sd-stub a posibilidade de empaquetar credenciais e ficheiros sysext nun arquivo cpio e transferir este arquivo ao núcleo xunto co initrd (os ficheiros adicionais colócanse no directorio /.extra/). Esta función permítelle utilizar un ambiente initrd inmutable verificable, complementado con sysexts e datos de autenticación cifrados.
  • A especificación Discoverable Partitions ampliouse significativamente, proporcionando ferramentas para identificar, montar e activar particións do sistema mediante GPT (GUID Partition Tables). En comparación coas versións anteriores, a especificación agora admite a partición raíz e a partición /usr para a maioría das arquitecturas, incluídas as plataformas que non usan UEFI.

    Discoverable Partitions tamén engade soporte para particións cuxa integridade é verificada polo módulo dm-verity mediante sinaturas dixitais PKCS#7, o que facilita a creación de imaxes de disco totalmente autenticadas. O soporte de verificación está integrado en varias utilidades que manipulan imaxes de disco, incluíndo systemd-nspawn, systemd-sysext, systemd-dissect, servizos RootImage, systemd-tmpfiles e systemd-sysusers.

  • Para as unidades que tardan moito tempo en iniciarse ou parar, ademais de mostrar unha barra de progreso animada, é posible mostrar información de estado que lle permite comprender o que está a suceder exactamente co servizo neste momento e que servizo é o xestor do sistema. actualmente agardando para completar.
  • Engadiuse o parámetro DefaultOOMScoreAdjust a /etc/systemd/system.conf e /etc/systemd/user.conf, que lle permite axustar o limiar OOM-killer para pouca memoria, aplicable aos procesos que systemd inicia para o sistema e os usuarios. Por defecto, o peso dos servizos do sistema é superior ao dos servizos de usuario, é dicir. Cando hai memoria insuficiente, a probabilidade de que se rematen os servizos dos usuarios é maior que a dos do sistema.
  • Engadiuse a configuración RestrictFileSystems, que lle permite restrinxir o acceso dos servizos a certos tipos de sistemas de ficheiros. Para ver os tipos de sistemas de ficheiros dispoñibles, pode usar o comando "systemd-analyze filesystems". Por analoxía, implementouse a opción RestrictNetworkInterfaces, que permite restrinxir o acceso a determinadas interfaces de rede. A implementación baséase no módulo BPF LSM, que restrinxe o acceso dun grupo de procesos aos obxectos do núcleo.
  • Engadiuse un novo ficheiro de configuración /etc/integritytab e unha utilidade systemd-integritysetup que configuran o módulo dm-integrity para controlar a integridade dos datos a nivel de sector, por exemplo, para garantir a inmutabilidade dos datos cifrados (Cifrado autenticado, garante que un bloque de datos teña non foi modificado de forma circular). O formato do ficheiro /etc/integritytab é semellante aos ficheiros /etc/crypttab e /etc/veritytab, agás que se usa dm-integrity en lugar de dm-crypt e dm-verity.
  • Engadiuse un novo ficheiro de unidade systemd-boot-update.service, cando se activa e se instala o cargador de arranque sd-boot, systemd actualizará automaticamente a versión do cargador de arranque sd-boot, mantendo o código do cargador de arranque sempre actualizado. O propio sd-boot agora está construído por defecto con soporte para o mecanismo SBAT (UEFI Secure Boot Advanced Targeting), que resolve os problemas coa revogación de certificados para UEFI Secure Boot. Ademais, sd-boot ofrece a posibilidade de analizar a configuración de inicio de Microsoft Windows para xerar correctamente os nomes das particións de arranque con Windows e mostrar a versión de Windows.

    sd-boot tamén ofrece a posibilidade de definir un esquema de cores no momento da construción. Durante o proceso de inicio, engadiuse soporte para cambiar a resolución da pantalla premendo a tecla "r". Engadida a tecla de acceso rápido "f" para ir á interface de configuración do firmware. Engadiuse un modo para iniciar automaticamente o sistema correspondente ao elemento de menú seleccionado durante o último arranque. Engadida a posibilidade de cargar automaticamente controladores EFI situados no directorio /EFI/systemd/drivers/ na sección ESP (Partición do sistema EFI).

  • Inclúese un novo ficheiro de unidade factory-reset.target, que se procesa en systemd-logind dun xeito similar ás operacións de reinicio, apagado, suspensión e hibernación, e úsase para crear controladores para realizar un restablecemento de fábrica.
  • O proceso resolto por systemd agora crea un socket de escoita adicional en 127.0.0.54 ademais de 127.0.0.53. As solicitudes que chegan a 127.0.0.54 son sempre redirixidas a un servidor DNS ascendente e non se procesan localmente.
  • Proporcionou a posibilidade de construír systemd-importd e systemd-resolved coa biblioteca OpenSSL en lugar de libgcrypt.
  • Engadido soporte inicial para a arquitectura LoongArch usada nos procesadores Loongson.
  • systemd-gpt-auto-generator ofrece a posibilidade de configurar automaticamente particións de intercambio definidas polo sistema cifradas polo subsistema LUKS2.
  • O código de análise de imaxes GPT usado en systemd-nspawn, systemd-dissect e utilidades similares implementa a capacidade de decodificar imaxes para outras arquitecturas, o que permite que systemd-nspawn se utilice para executar imaxes en emuladores doutras arquitecturas.
  • Cando se inspeccionan as imaxes do disco, systemd-dissect agora mostra información sobre o propósito da partición, como a idoneidade para iniciarse mediante UEFI ou executarse nun contedor.
  • O campo "SYSEXT_SCOPE" engadiuse aos ficheiros system-extension.d/, o que lle permite indicar o alcance da imaxe do sistema: "initrd", "system" ou "portable".
  • Engadiuse un campo "PORTABLE_PREFIXES" ao ficheiro de versión do sistema operativo, que se pode usar en imaxes portátiles para determinar os prefixos de ficheiros de unidades admitidos.
  • systemd-logind introduce novos axustes HandlePowerKeyLongPress, HandleRebootKeyLongPress, HandleSuspendKeyLongPress e HandleHibernateKeyLongPress, que se poden usar para determinar o que ocorre cando se manteñen determinadas teclas durante máis de 5 segundos (por exemplo, se se preme rapidamente a tecla para configurar o modo de suspensión , e cando se manteña pulsado, irá durmir).
  • Para as unidades, implícanse as configuracións StartupAllowedCPU e StartupAllowedMemoryNodes, que se diferencian de configuracións similares sen o prefixo de inicio en que só se aplican na fase de arranque e apagado, o que lle permite establecer outras restricións de recursos durante o arranque.
  • Engadíronse [Condición|Afirmación][Memoria|CPU|IO]Comprobacións de presión que permiten omitir ou fallar a activación da unidade se o mecanismo PSI detecta unha gran carga na memoria, CPU e E/S do sistema.
  • O límite máximo de inode predeterminado aumentou para a partición /dev de 64k a 1M e para a partición /tmp de 400k a 1M.
  • Propúxose un axuste ExecSearchPath para os servizos, que permite cambiar o camiño para buscar ficheiros executables iniciados a través de configuracións como ExecStart.
  • Engadiuse a configuración RuntimeRandomizedExtraSec, que permite introducir desviacións aleatorias no tempo de espera de RuntimeMaxSec, o que limita o tempo de execución dunha unidade.
  • Ampliouse a sintaxe das configuracións RuntimeDirectory, StateDirectory, CacheDirectory e LogsDirectory, na que ao especificar un valor adicional separado por dous puntos, agora pode organizar a creación dunha ligazón simbólica a un determinado directorio para organizar o acceso por varias rutas.
  • Para os servizos, ofrécese a configuración de TTYRows e TTYColumns para establecer o número de filas e columnas no dispositivo TTY.
  • Engadiuse a configuración ExitType, que lle permite cambiar a lóxica para determinar o final dun servizo. Por defecto, systemd só supervisa a morte do proceso principal, pero se se establece ExitType=cgroup, o xestor do sistema agardará a que se complete o último proceso do cgroup.
  • A implementación de systemd-cryptsetup de compatibilidade con TPM2/FIDO2/PKCS11 agora tamén está construída como un complemento cryptsetup, o que permite que o comando cryptsetup normal se use para desbloquear unha partición cifrada.
  • O manejador TPM2 en systemd-cryptsetup/systemd-cryptsetup engade compatibilidade con chaves primarias RSA ademais das claves ECC para mellorar a compatibilidade con chips non ECC.
  • A opción de tempo de espera do token engadiuse a /etc/crypttab, o que lle permite definir o tempo máximo de espera para unha conexión de token PKCS#11/FIDO2, despois de que se lle pedirá que introduza un contrasinal ou unha clave de recuperación.
  • systemd-timesyncd implementa a configuración SaveIntervalSec, que lle permite gardar periodicamente o tempo actual do sistema no disco, por exemplo, para implementar un reloxo monótono en sistemas sen RTC.
  • Engadíronse opcións á utilidade systemd-analyze: "--image" e "--root" para comprobar os ficheiros de unidades dentro dunha imaxe ou directorio raíz dados, "--recursive-errors" para ter en conta as unidades dependentes cando se produce un erro. se detecta, "--offline" para comprobar por separado os ficheiros de unidades gardados no disco, "—json" para a saída en formato JSON, "—quiet" para desactivar mensaxes sen importancia, "—profile" para vincularse a un perfil portátil. Tamén se engade o comando inspect-elf para analizar ficheiros básicos en formato ELF e a posibilidade de comprobar os ficheiros da unidade cun nome da unidade, independentemente de que este nome coincida co nome do ficheiro.
  • systemd-networkd ampliou o soporte para o bus Controller Area Network (CAN). Engadiuse configuración para controlar os modos CAN: Loopback, OneShot, PresumeAck e ClassicDataLengthCode. Engadíronse as opcións TimeQuantaNSec, PropagationSegment, PhaseBufferSegment1, PhaseBufferSegment2, SyncJumpWidth, DataTimeQuantaNSec, DataPropagationSegment, DataPhaseBufferSegment1, DataPhaseBufferSegment2 e DataSyncJumpWidth á sección de sincronización [CAN] dos ficheiros de sincronización de bits CAN.
  • Systemd-networkd engadiu unha opción Etiqueta para o cliente DHCPv4, que lle permite configurar a etiqueta de enderezo utilizada ao configurar enderezos IPv4.
  • systemd-udevd para "ethtool" implementa soporte para valores "máximos" especiais que establecen o tamaño do búfer ao valor máximo admitido polo hardware.
  • Nos ficheiros .link para systemd-udevd agora pode configurar varios parámetros para combinar adaptadores de rede e conectar controladores de hardware (descarga).
  • systemd-networkd ofrece novos ficheiros .network por defecto: 80-container-vb.network para definir pontes de rede creadas ao executar systemd-nspawn coas opcións “--network-bridge” ou “--network-zone”; 80-6rd-tunnel.network para definir túneles que se crean automaticamente ao recibir unha resposta DHCP coa opción 6RD.
  • Systemd-networkd e systemd-udevd engadiron soporte para o reenvío de IP a través de interfaces InfiniBand, para o que se engadiu a sección "[IPoIB]" aos ficheiros systemd.netdev e o procesamento do valor "ipoib" foi implementado no Kind. configuración.
  • systemd-networkd ofrece configuración automática de rutas para enderezos especificados no parámetro AllowedIPs, que se pode configurar a través dos parámetros RouteTable e RouteMetric nas seccións [WireGuard] e [WireGuardPeer].
  • systemd-networkd proporciona a xeración automática de enderezos MAC non cambiantes para as interfaces batadv e bridge. Para desactivar este comportamento, pode especificar MACAddress=none nos ficheiros .netdev.
  • Engadiuse unha configuración de WakeOnLanPassword aos ficheiros .link na sección "[Link]" para determinar o contrasinal cando WoL se executa no modo "SecureOn".
  • Engadíronse os axustes de AutoRateIngress, CompensationMode, FlowIsolationMode, NAT, MPUBytes, PriorityQueueingPreset, FirewallMark, Wash, SplitGSO e UserRawPacketSize á sección "[CAKE]" dos ficheiros .network para definir os parámetros da rede CAKE (mecanismo de xestión de aplicacións comúns queue mellorado) .
  • Engadiuse unha configuración IgnoreCarrierLoss á sección "[Rede]" dos ficheiros .network, o que lle permite determinar canto tempo debe esperar antes de reaccionar ante unha perda de sinal do operador.
  • Systemd-nspawn, homectl, machinectl e systemd-run estenderon a sintaxe do parámetro "--setenv" - se só se especifica o nome da variable (sen "="), o valor tomarase da variable de ambiente correspondente (para exemplo, ao especificar "--setenv=FOO" o valor tomarase da variable de ambiente $FOO e empregarase na variable de ambiente co mesmo nome definido no contedor).
  • systemd-nspawn engadiu unha opción "--suppress-sync" para desactivar as chamadas ao sistema sync()/fsync()/fdatasync() ao crear un contedor (útil cando a velocidade é unha prioridade e preservar os artefactos de compilación en caso de falla non o é. importante, xa que se poden volver a crear en calquera momento).
  • Engadiuse unha nova base de datos hwdb, que inclúe varios tipos de analizadores de sinais (multímetros, analizadores de protocolos, osciloscopios, etc.). A información sobre cámaras en hwdb ampliouse cun campo con información sobre o tipo de cámara (regular ou infravermella) e a colocación da lente (frontal ou traseira).
  • Activada a xeración de nomes de interface de rede non cambiantes para os dispositivos netfront usados ​​en Xen.
  • A análise dos ficheiros principais mediante a utilidade systemd-coredump baseada nas bibliotecas libdw/libelf realízase agora nun proceso separado, illado nun ambiente sandbox.
  • systemd-importd engadiu soporte para as variables de ambiente $SYSTEMD_IMPORT_BTRFS_SUBVOL, $SYSTEMD_IMPORT_BTRFS_QUOTA, $SYSTEMD_IMPORT_SYNC, co que pode desactivar a xeración de subparticións Btrfs, así como configurar cotas e sincronización de discos.
  • En systemd-journald, nos sistemas de ficheiros que admiten o modo de copia en escritura, o modo COW volve activarse para as revistas arquivadas, o que permite comprimilas mediante Btrfs.
  • systemd-journald implementa a deduplicación de campos idénticos nunha única mensaxe, que se realiza na fase antes de colocar a mensaxe no diario.
  • Engadiuse a opción "--show" ao comando de apagado para mostrar o apagado programado.

Fonte: opennet.ru

Engadir un comentario