Publication du gestionnaire de système systemd 261 et du fork liberated-systemd 261

Après trois mois de développement, la version du gestionnaire de systèmes systemd 261 est disponible. Changements clés : préparation au support de l'API pour la vérification d'âge, prise en charge des sous-systèmes Kexec Handover et Live Update Orchestration pour un redémarrage sans perte d'état, sous-système IMDS (Instance Metadata Service), fonctionnalité pour protéger le démarrage sur des systèmes sans TPM physique (Trusted Platform Module), composant systemd-sysinstall avec implémentation de l'installateur.

Parmi les changements de la nouvelle version :

  • Un nouveau composant systemd-sysinstall a été ajouté, offrant un installateur simple du système d'exploitation pouvant être géré depuis la ligne de commande ou via une interface texte interactive. La fonctionnalité de systemd-sysinstall est formée à partir des capacités déjà existantes de systemd : pour configurer les partitions de disque, systemd-repart est utilisé, pour installer le noyau et générer le menu de démarrage — la commande « bootctl link », pour installer le chargeur de démarrage systemd-boot — la commande « bootctl install », pour la configuration initiale du système installé (par exemple, choix de la locale et de la disposition du clavier) — systemd-creds.
  • Dans le cadre de la préparation à l'implémentation des exigences des lois sur l'intégration dans le système d'exploitation de l'API pour la vérification de l'âge, un champ birthDate avec la date de naissance de l'utilisateur a été ajouté à la base de données userdb. Ce champ ajouté pourra être utilisé dans le portail xdg-desktop-portal en cours de développement pour les distributions et dans le service AccountsService pour fournir des informations sur la catégorie d'âge de l'utilisateur aux applications via l'interface D-Bus « org.freedesktop.AgeVerification1 » ou « org.freedesktop.ParentalControls ». Pour définir l'âge, une option « —birth-date » a été ajoutée à l'outil homectl.
  • Le gestionnaire PID1 a été mis à jour pour prendre en charge les sous-systèmes du noyau Linux LUO (Live Update Orchestration) et KHO (Kexec Handover), permettant un redémarrage et une mise à jour du noyau sans interrompre le fonctionnement et sans perdre l'état du système, des dispositifs et des processus. KHO offre des possibilités de démarrer un nouveau noyau depuis l'ancien sans perte d'état du système, tandis que LUO permet de sauvegarder l'état des dispositifs et de la mémoire vive, et assure la continuité des opérations liées au DMA et au traitement des interruptions.

    Dans systemd, il est possible de préserver les descripteurs de fichiers pour les unités système et utilisateur avant l'appel de kexec et de les restaurer après le redémarrage du noyau via kexec. Il est également possible de créer des sessions LUO personnalisées dans les unités, qui sont sauvegardées et restaurées lors de l'exécution de kexec. Pour activer la préservation de l'état des descripteurs de fichiers, il faut utiliser le paramètre ‘FileDescriptorStorePreserve=yes’.

  • Un sous-système systemd-imdsd a été mis en place, fournissant une API basée sur Varlink IPC pour permettre aux programmes locaux d'accéder aux services IMDS (Instance Metadata Service) fournis par différents fournisseurs de systèmes cloud. IMDS permet aux machines virtuelles d'obtenir des informations sur l'environnement cloud, par exemple, il est possible d'obtenir des détails sur la configuration réseau, la localisation géographique du nœud, le type de CPU et la taille de stockage. systemd-imdsd offre à la fois une API de bas niveau pour accéder à des champs spécifiques et une interface de haut niveau pour interroger des clés standards, associées à des clés spécifiques à chaque plateforme cloud. Une utilitaire nommé systemd-imds a été ajoutée pour interagir avec systemd-imdsd, permettant d'importer des champs depuis IMDS dans le système de comptes local.

    Pour identifier les plateformes cloud à partir des informations SMBIOS et déterminer les fonctionnalités IMDS disponibles sur le nœud actuel, une nouvelle base de données hwdb.d/40-imds.hwdb a été ajoutée. La reconnaissance des plateformes cloud Amazon EC2, Microsoft Azure, Google Compute Engine, Hetzner, Oracle Cloud, Scaleway, Tencent Cloud, Alibaba ECS et Vultr a été mise en œuvre. Un gestionnaire nommé systemd-imds-generator est disponible pour injecter automatiquement le service permettant d'obtenir des données via IMDS lorsqu'il détecte qu'il fonctionne sur une plateforme cloud prise en charge. Il est possible de créer des images universelles qui prennent en charge l'utilisation d'IMDS lors de leur chargement dans des environnements cloud, mais qui peuvent également fonctionner sans IMDS.

  • Dans systemd-stub, une fonctionnalité « boot secret » a été implémentée, permettant de générer une clé basée sur une variable EFI, stockée dans une zone inaccessible pour le système d'exploitation et initialisée avec une valeur aléatoire. Dans initrd, la clé est transmise via un fichier /.extra/boot-secret. Cette fonctionnalité peut être nécessaire pour obtenir une clé aléatoire spécifique au système pour vérifier le processus de démarrage ou le cryptage sur des systèmes sans TPM (Trusted Platform Module) matériel.
  • Un service systemd-tpm2-swtpm.service a été ajouté pour lancer l'émulateur de puce TPM swtpm (Software TPM Emulator), qui peut être utilisé pour revenir automatiquement à une implémentation logicielle du TPM pour le démarrage sécurisé sur les systèmes sans TPM matériel. Le TPM logiciel fonctionne dans l'espace utilisateur et ne permet pas d'atteindre le niveau de sécurité d'un TPM matériel, mais dans certaines situations, son utilisation est justifiée par rapport à un fonctionnement sans TPM. Par exemple, le TPM logiciel peut obtenir une clé de chiffrement des partitions grâce à la nouvelle fonctionnalité « boot secret » et utiliser pour stocker son état la partition ESP (EFI System Partition) sur le disque. Un paramètre de ligne de commande du noyau systemd.tpm2_software_fallback a été proposé pour activer automatiquement le TPM logiciel.
  • Le composant systemd-sysupdate a été annoncé comme stable et est placé dans /usr/bin. Il est destiné à détecter automatiquement, télécharger et installer des mises à jour en utilisant un mécanisme atomique de remplacement de partitions, fichiers ou répertoires (deux partitions/fichiers/répertoires indépendants sont utilisés, l'un contenant la ressource actuellement active et l'autre recevant la mise à jour, après quoi les partitions/fichiers/répertoires se remplacent mutuellement).
  • Dans systemd-resolved, il est désormais possible de remplacer ou d'indiquer de nouveaux enregistrements DNS en plaçant des fichiers au format JSON dans les répertoires systemd/resolve/static.d/. Contrairement à /etc/hosts, dans les nouveaux fichiers, il est possible de lier non seulement adresses IP à des noms d'hôtes, mais aussi de définir des enregistrements DNS RR de ressources autres que « A » et « AAAA ». De plus, des paramètres pour la taille du cache DNS ont été ajoutés dans systemd-resolved : ‘DNSCacheSize’, ‘MulticastDNSCacheSize’ et ‘LLMNRCacheSize’.
  • Un utilitaire ‘storagectl’ a été ajouté pour inspecter des dispositifs de stockage et gérer la connexion de dispositifs de blocs et de systèmes de fichiers.
  • Dans le cadre de l'initiative de réduction des dépendances, libsystemd a implémenté le chargement dynamique des bibliothèques libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk et libcryptsetup
    via l'appel dlopen() dans des situations où leurs fonctions sont effectivement nécessaires.
  • Dans systemd-tmpfiles, un drapeau « —inline » a été ajouté, permettant de définir des directives en ligne de commande sans créer de fichiers de configuration dans tmpfiles.d/ et sans envoyer de paramètres via STDIN. Un nouveau type de directive ‘k/K’ pour définir des capacités a été ajouté. Un fichier de configuration tmpfiles.d/root.conf a été créé, définissant des autorisations d'accès 0555 (-r-xr-xr-x) pour le répertoire racine (/) afin de protéger contre l'attribution de droits incorrects lors de la formation dynamique du FS racine.
  • Dans l'outil bootctl, la sauvegarde du chargeur systemd-boot et l'inscription d'une ancienne version dans l'UEFI comme option de démarrage de secours ont été assurées.
  • Dans systemd-vmspawn, le support du chargement direct du noyau sans utiliser le firmware UEFI a été ajouté. Une option « —firmware-features » a été implémentée pour activer ou désactiver sélectivement certaines fonctionnalités des firmwares. Un mode « —console=headless » a été ajouté pour lancer une machine virtuelle sans console ni écran. Une option « —image-disk-type » a été ajoutée pour choisir le type de stockage en bloc utilisé dans la VM (virtio-blk, virtio-scsi, nvme, scsi-cd). Une option « —coco » (Confidential Computing) a été ajoutée pour activer le mode de cryptage de la mémoire. machines virtuelles en utilisant la technologie AMD SEV-SNP.
  • Dans systemd-hostnamed et /etc/machine-info, le support des étiquettes arbitraires attachées au système actuel a été ajouté, en utilisant le paramètre « Tags ». Les étiquettes fixées peuvent ensuite être utilisées pour appliquer sélectivement des configurations avec vérification via l'expression ConditionMachineTag.
  • Des paramètres EventLoopRateLimitIntervalSec et EventLoopRateLimitBurst ont été ajoutés, limitant l'intensité de la boucle de traitement des événements dans PID1 pour libérer des ressources CPU en cas de bouclage.
  • Dans le gestionnaire de services, le paramètre MinimumUptimeSec a été mis en œuvre pour définir le temps de fonctionnement minimum du système (par défaut 15 secondes). Si une extinction ou un redémarrage est initié avant l'écoulement de ce temps, un retard correspondant est ajouté à l'étape finale.
  • De nouveaux paramètres CPUSetPartition pour définir le type de partition cpuset dans cgroup (« root », « isolated », « member »), RestrictFileSystemAccess pour autoriser uniquement l'exécution de fichiers exécutables vérifiés par signature numérique à l'aide de dm-verity, ainsi que CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec pour recevoir des notifications de haute charge sur le CPU et les entrées/sorties ont été mis en œuvre pour les unités.
  • La liste des métriques fournies par l'outil systemd-report a été étendue. Par exemple, des informations sur la taille de la mémoire physique et les cœurs CPU actifs, des données sur le contenu des champs SMBIOS et /etc/machine-info, des informations sur la prise en charge du mode Confidential Computing et des détails sur le fabricant des puces TPM2 ont été ajoutées.
  • Dans systemd-oomd, la possibilité de définir des règles pour le filtrage des processus lors d'une pénurie de mémoire dans le système a été implémentée. Les règles peuvent être définies dans le répertoire /etc/systemd/oomd/rules.d/ ou dans les unités de service via la directive OOMRule.
  • Le support du protocole « PROXY », conforme à la première version du protocole « haproxy », a été ajouté à systemd-socket-proxy.
  • Dans systemd-networkd, un nouveau backend sd-dhcp-relay pour les relais DHCP a été mis en œuvre. Les paramètres de la section « [DHCPServer] » — BindToInterface, RelayTarget, RelayAgentCircuitId et RelayAgentRemoteId — sont déclarés obsolètes, et il convient d'utiliser le paramètre DHCPRelay dans la section « [Network] » ainsi qu'une série de nouveaux paramètres dans la section [DHCPRelay] et dans le fichier networkd.conf. La commande ‘networkctl dhcp-lease INTERFACE’ a été ajoutée pour sauvegarder un dump contenant des informations sur la liaison des adresses IP (DHCP lease).
  • L'outil systemd-nspawn a été complété par l'option « —restrict-address-families », et dans les fichiers .nspawn, la configuration RestrictAddressFamilies pour limiter les familles d'adresses socket utilisées dans le conteneur. Dans les futures versions, seules les familles AF_INET, AF_INET6 et AF_UNIX seront autorisées par défaut.
  • La prise en charge de l'ancien format de base de données udev (version 0.x) a été arrêtée. La mise à jour en direct des versions de systemd vers la version 247 n'est plus prise en charge.
  • Lors de la compilation avec la bibliothèque C musl, la version minimale requise est désormais musl 1.2.6.

On peut également noter la sortie du projet liberated-systemd 261, qui développe un fork de systemd dépouillé du code utilisé pour surveiller les utilisateurs. Dans la version proposée, les modifications consistent à supprimer le code ajoutant dans userdb le champ birthDate avec la date de naissance de l'utilisateur, ainsi que l'option « —birth-date » pour définir l'âge dans l'outil homectl.

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