Publication du gestionnaire systĂšme systemd 252 avec prise en charge du UKI (Unified Kernel Image)

AprÚs cinq mois de développement, la version du gestionnaire de systÚme systemd 252 a été publiée. Le changement clé de cette nouvelle version est l'intégration du support d'un processus de démarrage modernisé, permettant de vérifier par des signatures numériques non seulement le noyau et le chargeur de démarrage, mais aussi les composants de l'environnement systÚme de base.

La mĂ©thode proposĂ©e consiste Ă  utiliser une image de noyau unifiĂ©e UKI (Unified Kernel Image) au dĂ©marrage, qui combine le gestionnaire de dĂ©marrage du noyau Ă  partir de l'UEFI (UEFI boot stub), l'image du noyau Linux et l'environnement systĂšme initrd chargĂ© en mĂ©moire, utilisĂ© pour l'initialisation initiale avant le montage du systĂšme de fichiers racine. L'image UKI est prĂ©sentĂ©e sous la forme d'un exĂ©cutable au format PE, pouvant ĂȘtre chargĂ©e au moyen de chargeurs traditionnels ou appelĂ©e directement depuis le firmware UEFI. Lors de l'appel depuis l'UEFI, il est possible de vĂ©rifier l'intĂ©gritĂ© et l'authenticitĂ© par une signature numĂ©rique non seulement du noyau, mais aussi du contenu de l'initrd.

Pour le calcul des paramĂštres des registres TPM PCR (Trusted Platform Module Platform Configuration Register), utilisĂ©s pour contrĂŽler l'intĂ©gritĂ© et gĂ©nĂ©rer la signature numĂ©rique de l'image UKI, un nouvel outil systemd-measure a Ă©tĂ© inclus. La clĂ© publique utilisĂ©e dans la signature et les informations associĂ©es sur le PCR peuvent ĂȘtre intĂ©grĂ©es directement dans l'image de dĂ©marrage UKI (la clĂ© et la signature sont enregistrĂ©es dans un fichier au format PE dans les champs ‘.pcrsig’ et ‘.pcrkey’) et extraites par des outils externes ou internes.

Notamment, pour utiliser ces informations, les outils systemd-cryptsetup, systemd-cryptenroll et systemd-creds ont été adaptés, permettant d'assurer le lien entre les partitions de disque chiffrées et le noyau validé par une signature numérique (dans ce cas, l'accÚs à la partition chiffrée est accordé uniquement si l'image UKI a passé la vérification par signature numérique basée sur les paramÚtres stockés dans le TPM).

De plus, l'outil systemd-pcrphase a été intégré, permettant de gérer l'association de différentes étapes de démarrage aux paramÚtres stockés en mémoire des crypto-processeurs prenant en charge la spécification TPM 2.0 (par exemple, il est possible de rendre la clé de déchiffrement de la partition LUKS2 accessible uniquement dans l'image initrd et de bloquer l'accÚs à celle-ci lors des étapes ultérieures du démarrage).

D'autres modifications incluent :

  • L'utilisation de la locale C.UTF-8 est assurĂ©e par dĂ©faut, sauf indication contraire dans les paramĂštres.
  • La possibilitĂ© d'exĂ©cuter l'opĂ©ration de prĂ©configuration complĂšte des services («systemctl preset») lors du premier dĂ©marrage a Ă©tĂ© mise en Ɠuvre. Pour activer la prĂ©configuration au dĂ©marrage, une construction avec l'option «-Dfirst-boot-full-preset» est requise, mais elle devrait ĂȘtre activĂ©e par dĂ©faut dans les futures versions.
  • Dans les unitĂ©s de gestion des utilisateurs, un contrĂŽleur de ressources CPU a Ă©tĂ© mis en Ɠuvre, ce qui a permis d'assurer l'application des rĂ©glages CPUWeight Ă  toutes les unitĂ©s slice utilisĂ©es pour diviser le systĂšme en parties (app.slice, background.slice, session.slice) afin d'isoler les ressources entre les diffĂ©rents services utilisateur qui concourent pour les ressources CPU. Le CPUWeight prend Ă©galement en charge la valeur «idle» pour activer le mode de fourniture de ressources correspondant.
  • Dans les unitĂ©s temporaires («transient») et dans l'outil systemd-repart, la possibilitĂ© de redĂ©finir des rĂ©glages par la crĂ©ation de fichiers drop-in dans le rĂ©pertoire /etc/systemd/system/nom.d/ a Ă©tĂ© autorisĂ©e.
  • Pour les images systĂšme, un drapeau de fin de support (‘support-ended’) a Ă©tĂ© mis en place, dĂ©terminant ce fait sur la base de la valeur du nouveau paramĂštre «SUPPORT_END=» dans le fichier /etc/os-release.
  • Les rĂ©glages «ConditionCredential=» et «AssertCredential=» ont Ă©tĂ© ajoutĂ©s, pouvant ĂȘtre utilisĂ©s pour ignorer ou terminer de maniĂšre abrupte les unitĂ©s en l'absence de certaines informations d'identification dans le systĂšme.
  • Dans system.conf et user.conf, les rĂ©glages «DefaultSmackProcessLabel=» et «DefaultDeviceTimeoutSec=» ont Ă©tĂ© ajoutĂ©s pour dĂ©finir le niveau de sĂ©curitĂ© SMACK et le dĂ©lai d'activation de l'unitĂ©, appliquĂ©s par dĂ©faut.
  • Dans les rĂ©glages «ConditionFirmware=» et «AssertFirmware=», il est dĂ©sormais possible d'indiquer des champs SMBIOS spĂ©cifiques, par exemple pour dĂ©marrer l'unitĂ© uniquement si le champ /sys/class/dmi/id/board_name contient la valeur «Custom Board», on peut spĂ©cifier «ConditionFirmware=smbios-field(board_name = «Custom Board»)».
  • Au cours de l'initialisation (PID 1), la possibilitĂ© d'importer des informations d'identification Ă  partir de champs SMBIOS (Type 11, «lignes de fournisseur OEM») a Ă©tĂ© ajoutĂ©e, en complĂ©ment de leur dĂ©finition via qemu_fwcfg, ce qui facilite la fourniture d'informations d'identification. aux machines virtuelles et permet d'Ă©viter des outils tiers tels que cloud-init et ignition.
  • Lors de l'arrĂȘt, la logique de dĂ©montage des systĂšmes de fichiers virtuels (proc, sys) a Ă©tĂ© modifiĂ©e et des informations sur les processus bloquant le dĂ©montage des systĂšmes de fichiers ont Ă©tĂ© enregistrĂ©es dans le journal.
  • Dans le filtre des appels systĂšme (SystemCallFilter), l'accĂšs Ă  l'appel systĂšme riscv_flush_icache est autorisĂ© par dĂ©faut.
  • Le chargeur sd-boot a introduit la possibilitĂ© de dĂ©marrer en mode mixte, oĂč un noyau Linux 64 bits est lancĂ© depuis un firmware UEFI 32 bits. Une fonctionnalitĂ© expĂ©rimentale a Ă©tĂ© ajoutĂ©e pour appliquer automatiquement les clĂ©s SecureBoot Ă  partir des fichiers trouvĂ©s dans l'ESP (partition systĂšme EFI).
  • De nouvelles options ont Ă©tĂ© ajoutĂ©es Ă  l'outil bootctl : « —all-architectures » pour installer des fichiers binaires pour toutes les architectures EFI prises en charge, « —root= » et « —image= » pour travailler avec un rĂ©pertoire ou une image disque, « —install-source= » pour dĂ©finir la source pour l'installation, « —efi-boot-option-description= » pour gĂ©rer les noms des entrĂ©es de dĂ©marrage.
  • L'outil systemctl a ajoutĂ© la commande ‘list-automounts’ pour afficher la liste des rĂ©pertoires montĂ©s automatiquement, et l'option « —image= » pour exĂ©cuter des commandes en liaison avec l'image disque spĂ©cifiĂ©e. Les commandes ‘show’ et ‘status’ ont reçu les options « —state= » et « —type= ».
  • Dans systemd-networkd, des options « TCPCongestionControlAlgorithm= » ont Ă©tĂ© ajoutĂ©es pour choisir l'algorithme de contrĂŽle de congestion TCP, « KeepFileDescriptor= » pour conserver le descripteur de fichier des interfaces TUN/TAP, « NetLabel= » pour dĂ©finir des Ă©tiquettes NetLabel, et « RapidCommit= » pour accĂ©lĂ©rer la configuration via DHCPv6 (RFC 3315). Dans le paramĂštre « RouteTable= », il est dĂ©sormais autorisĂ© de spĂ©cifier les noms des tables de routage.
  • Dans systemd-nspawn, l'utilisation de chemins de fichiers relatifs est dĂ©sormais autorisĂ©e dans les options « —bind= » et « —overlay= ». L'option « —bind= » a Ă©tĂ© enrichie du paramĂštre ‘rootidmap’ pour lier l'identifiant utilisateur root dans le conteneur au propriĂ©taire du rĂ©pertoire montĂ© cĂŽtĂ© hĂŽte.
  • Dans systemd-resolved, le paquet OpenSSL est utilisĂ© par dĂ©faut comme backend pour le chiffrement (le support de gnutls reste en option). Les algorithmes DNSSEC non pris en charge sont dĂ©sormais traitĂ©s comme non sĂ©curisĂ©s, au lieu de renvoyer une erreur (SERVFAIL).
  • Dans systemd-sysusers, systemd-tmpfiles et systemd-sysctl, la possibilitĂ© de transmettre des configurations via le mĂ©canisme de stockage des identifiants a Ă©tĂ© mise en Ɠuvre.
  • L'outil systemd-analyze a ajoutĂ© la commande ‘compare-versions’ pour comparer des chaĂźnes contenant des numĂ©ros de version (similaire Ă  ‘rpmdev-vercmp’ et ‘dpkg —compare-versions’). La commande ‘systemd-analyze dump’ a introduit la possibilitĂ© de filtrer les unitĂ©s par masque.
  • Lors du choix du mode de suspension en plusieurs Ă©tapes (suspend-then-hibernate, passage en mode veille aprĂšs le mode d'attente), le temps passĂ© en mode d'attente est dĂ©sormais dĂ©terminĂ© en fonction de l'estimation du temps d'autonomie restante. Le passage instantanĂ© en mode veille se produit lorsque la batterie reste Ă  moins de 5 % de charge.
  • Un nouveau mode de sortie « -o short-delta » a Ă©tĂ© ajoutĂ© Ă  'journalctl', affichant la diffĂ©rence de temps entre les diffĂ©rents messages dans le journal.
  • Le support de la crĂ©ation de partitions avec FS Squashfs et de partitions pour dm-verity, y compris avec des signatures numĂ©riques, a Ă©tĂ© ajoutĂ© Ă  systemd-repart.
  • Une configuration « StopIdleSessionSec= » a Ă©tĂ© ajoutĂ©e Ă  systemd-logind pour terminer une session inactive aprĂšs l'expiration d'un dĂ©lai spĂ©cifiĂ©.
  • Une option « —unlock-key-file= » a Ă©tĂ© ajoutĂ©e Ă  systemd-cryptenroll pour extraire la clĂ© de dĂ©chiffrement depuis un fichier, plutĂŽt que par une demande interactive Ă  l'utilisateur.
  • La possibilitĂ© d'exĂ©cuter l'utilitaire systemd-growfs dans des environnements sans udev a Ă©tĂ© assurĂ©e.
  • L'amĂ©lioration du support des systĂšmes avec plusieurs cartes graphiques a Ă©tĂ© apportĂ©e Ă  systemd-backlight.
  • La licence des exemples de code fournis dans la documentation a Ă©tĂ© modifiĂ©e de CC0 Ă  MIT-0.

Modifications rompant la compatibilité :

  • Lors de la vĂ©rification du numĂ©ro de version du noyau Ă  l’aide de la directive ConditionKernelVersion, un simple comparatif de chaĂźnes est dĂ©sormais appliquĂ© pour les opĂ©rateurs ‘=’ et ‘!=’. Si l'opĂ©rateur de comparaison n'est pas spĂ©cifiĂ©, un correspondance par glob avec les caractĂšres ‘*’, ‘?’ et ‘[‘, ‘]’ peut ĂȘtre utilisĂ©e. Pour comparer les versions au style de la fonction stverscmp(), les opĂ©rateurs ‘’, ‘=’ doivent ĂȘtre utilisĂ©s.
  • L'Ă©tiquette SELinux utilisĂ©e pour vĂ©rifier l'accĂšs depuis le fichier de unit est dĂ©sormais lue au moment du chargement du fichier, et non au moment de la vĂ©rification d'accĂšs.
  • La condition « ConditionFirstBoot » se dĂ©clenche dĂ©sormais uniquement lors du premier dĂ©marrage du systĂšme, directement au stade de dĂ©marrage et renvoie « false » lors de l'appel des unitĂ©s aprĂšs le dĂ©marrage.
  • En 2024, la prise en charge du mĂ©canisme de limitation des ressources cgroup v1 sera interrompue dans systemd, ce qui en fait un Ă©lĂ©ment obsolĂšte dans la version systemd 248. Les administrateurs sont invitĂ©s Ă  prĂ©voir la migration vers cgroup v2 pour les services qui dĂ©pendent de cgroup v1. La principale diffĂ©rence entre cgroups v2 et v1 est l'utilisation d'une hiĂ©rarchie de cgroups commune pour tous les types de ressources, au lieu de hiĂ©rarchies sĂ©parĂ©es pour la rĂ©partition des ressources CPU, la gestion de la mĂ©moire et l'entrĂ©e/sortie. Les hiĂ©rarchies sĂ©parĂ©es entraĂźnent des difficultĂ©s d'organisation de l'interaction entre les gestionnaires et des coĂ»ts supplĂ©mentaires pour le noyau lors de l'application des rĂšgles pour un processus mentionnĂ© dans diffĂ©rentes hiĂ©rarchies.
  • Au cours de la seconde moitiĂ© de 2023, la prise en charge des hiĂ©rarchies de rĂ©pertoires sĂ©parĂ©es sera interrompue lorsque /usr est montĂ© sĂ©parĂ©ment de la racine ou lorsque les rĂ©pertoires /bin et /usr/bin, /lib et /usr/lib sont sĂ©parĂ©s.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster