gestionnaire de système systemd version 248

Après quatre mois de développement, la version du gestionnaire de système systemd 248 est présentée. La nouvelle version prend en charge les images pour l'extension des répertoires système, le fichier de configuration /etc/veritytab, l'utilitaire systemd-cryptenroll, le déverrouillage de LUKS2 à l'aide des puces TPM2 et FIDO2. jetons, exécution d'unités dans un espace d'identification IPC isolé, protocole B.A.T.M.A.N pour les réseaux maillés, backend nftables pour systemd-nspawn. Systemd-oomd a été stabilisé.

Les principaux changements:

  • Le concept d'images d'extension système a été implémenté, qui peuvent être utilisés pour étendre la hiérarchie des répertoires /usr/ et /opt/ et ajouter des fichiers supplémentaires au moment de l'exécution, même si les répertoires spécifiés sont montés en lecture seule. Lorsqu'une image d'extension système est montée, son contenu est superposé sur la hiérarchie /usr/ et /opt/ à l'aide d'OverlayFS.

    Un nouvel utilitaire, systemd-sysext, a été proposé pour connecter, déconnecter, visualiser et mettre à jour les images des extensions système. Pour connecter automatiquement les images déjà installées lors du démarrage, le service systemd-sysext.service a été ajouté. Ajout du paramètre "SYSEXT_LEVEL=" au fichier os-release pour déterminer le niveau des extensions système prises en charge.

  • Pour les unités, le paramètre ExtensionImages a été implémenté, qui peut être utilisé pour lier des images d'extension système à la hiérarchie d'espace de noms FS de services isolés individuels.
  • Ajout du fichier de configuration /etc/veritytab pour configurer la vérification des données au niveau du bloc à l'aide du module dm-verity. Le format de fichier est similaire à /etc/crypttab - "section_name device_for_data device_for_hashes check_hash_root options." Ajout de l'option de ligne de commande du noyau systemd.verity.root_options pour configurer le comportement de dm-verity pour le périphérique racine.
  • systemd-cryptsetup ajoute la possibilité d'extraire l'URI du jeton PKCS#11 et la clé chiffrée de l'en-tête de métadonnées LUKS2 au format JSON, permettant aux informations sur l'ouverture d'un appareil chiffré d'être intégrées dans l'appareil lui-même sans impliquer de fichiers externes.
  • systemd-cryptsetup prend en charge le déverrouillage des partitions chiffrées LUKS2 à l'aide de puces TPM2 et de jetons FIDO2, en plus des jetons PKCS#11 précédemment pris en charge. Le chargement de libfido2 se fait via dlopen(), c'est-à-dire la disponibilité est vérifiée à la volée, plutôt que comme une dépendance câblée.
  • De nouvelles options « no-write-workqueue » et « no-read-workqueue » ont été ajoutées à /etc/crypttab pour systemd-cryptsetup afin de permettre le traitement synchrone des E/S associées au chiffrement et au déchiffrement.
  • L'utilitaire systemd-repart a ajouté la possibilité d'activer des partitions chiffrées à l'aide de puces TPM2, par exemple pour créer une partition /var chiffrée au premier démarrage.
  • L'utilitaire systemd-cryptenroll a été ajouté pour lier les jetons TPM2, FIDO2 et PKCS#11 aux partitions LUKS, ainsi que pour détacher et afficher les jetons, lier les clés de rechange et définir un mot de passe pour l'accès.
  • Ajout du paramètre PrivateIPC, qui vous permet de configurer le fichier unité pour exécuter des processus dans un espace IPC isolé avec leurs propres identifiants et file d'attente de messages distincts. Pour connecter une unité à un espace d'identifiant IPC déjà créé, l'option IPCNamespacePath est proposée.
  • Ajout des paramètres ExecPaths et NoExecPaths pour permettre à l'indicateur noexec d'être appliqué à des parties spécifiques du système de fichiers.
  • systemd-networkd ajoute la prise en charge du protocole maillé B.A.T.M.A.N. (« Better Approach To Mobile Adhoc Networking »), qui vous permet de créer des réseaux décentralisés, dans lesquels chaque nœud est connecté via des nœuds voisins. Pour la configuration, la section [BatmanAdvanced] dans .netdev, le paramètre BatmanAdvanced dans les fichiers .network et un nouveau type de périphérique « batadv » sont proposés.
  • La mise en œuvre du mécanisme de réponse précoce en cas de mémoire faible dans le système systemd-oomd a été stabilisée. Ajout de l'option DefaultMemoryPressureDurationSec pour configurer le temps d'attente pour qu'une ressource soit libérée avant d'affecter une unité. Systemd-oomd utilise le sous-système du noyau PSI (Pressure Stall Information) et vous permet de détecter l'apparition de retards dus au manque de ressources et de mettre fin de manière sélective aux processus gourmands en ressources à un stade où le système n'est pas encore dans un état critique et ne le fait pas. commencez à réduire intensivement le cache et à déplacer les données dans la partition d'échange.
  • Ajout du paramètre de ligne de commande du noyau « root=tmpfs », qui vous permet de monter la partition racine dans un stockage temporaire situé dans la RAM à l'aide de Tmpfs.
  • Le paramètre /etc/crypttab qui spécifie le fichier de clé peut désormais pointer vers les types de socket AF_UNIX et SOCK_STREAM. Dans ce cas, la clé doit être donnée lors de la connexion au socket, qui peut par exemple être utilisé pour créer des services qui émettent dynamiquement des clés.
  • Le nom d'hôte de secours à utiliser par le gestionnaire système et systemd-hostnamed peut désormais être défini de deux manières : via le paramètre DEFAULT_HOSTNAME dans os-release et via la variable d'environnement $SYSTEMD_DEFAULT_HOSTNAME. systemd-hostnamed gère également "localhost" dans le nom d'hôte et ajoute la possibilité d'exporter le nom d'hôte ainsi que les propriétés "HardwareVendor" et "HardwareModel" via DBus.
  • Le bloc avec les variables d'environnement exposées peut désormais être configuré via la nouvelle option ManagerEnvironment dans system.conf ou user.conf, et pas seulement via la ligne de commande du noyau et les paramètres du fichier unité.
  • Au moment de la compilation, il est possible d'utiliser l'appel système fexecve() pour démarrer des processus au lieu de execve() afin de réduire le délai entre la vérification du contexte de sécurité et son application.
  • Pour les fichiers d'unité, de nouvelles opérations conditionnelles ConditionSecurity=tpm2 et ConditionCPUFeature ont été ajoutées pour vérifier la présence de périphériques TPM2 et les capacités individuelles du processeur (par exemple, ConditionCPUFeature=rdrand peut être utilisé pour vérifier si le processeur prend en charge l'opération RDRAND).
  • Pour les noyaux disponibles, la génération automatique de tables d'appels système pour les filtres seccomp a été implémentée.
  • Ajout de la possibilité de remplacer de nouveaux montages de liaison dans les espaces de noms de montage existants des services, sans redémarrer les services. La substitution est effectuée avec les commandes « systemctl bind … » et « systemctl mount-image … ».
  • Ajout de la prise en charge de la spécification des chemins sous la forme « truncate: » dans les paramètres StandardOutput et StandardError pour les effacer avant utilisation.
  • Ajout de la possibilité d'établir une connexion à la session d'un utilisateur spécifié dans un conteneur local vers sd-bus. Par exemple "systemctl -user -M lennart@ start quux".
  • Les paramètres suivants sont implémentés dans les fichiers systemd.link de la section [Link] :
    • Promiscuous - vous permet de basculer l'appareil en mode « promiscuous » pour traiter tous les paquets réseau, y compris ceux qui ne sont pas adressés au système actuel ;
    • TransmitQueues et ReceiverQueues pour définir le nombre de files d'attente TX et RX ;
    • TransmitQueueLength pour définir la taille de la file d'attente TX ; GenericSegmentOffloadMaxBytes et GenericSegmentOffloadMaxSegment pour définir les limites d'utilisation de la technologie GRO (Generic Receiver Offload).
  • De nouveaux paramètres ont été ajoutés aux fichiers systemd.network :
    • [Réseau] RouteTable pour sélectionner une table de routage ;
    • [RoutingPolicyRule] Type pour le type de routage (« trou noir, « inaccessible », « interdire ») ;
    • [IPv6AcceptRA] RouteDenyList et RouteAllowList pour les listes d'annonces de routes autorisées et refusées ;
    • [DHCPv6] Utilisez Addres pour ignorer l'adresse émise par DHCP ;
    • [DHCPv6PrefixDelegation] ManageTemporaryAddress ;
    • ActivationPolicy pour définir la politique concernant l'activité de l'interface (toujours maintenir l'état UP ou DOWN, ou permettre à l'utilisateur de changer d'état avec la commande « ip link set dev »).
  • Ajout des options [VLAN] Protocol, IngressQOSMaps, EgressQOSMaps et [MACVLAN] BroadcastMulticastQueueLength aux fichiers systemd.netdev pour configurer le traitement des paquets VLAN.
  • Arrêt du montage du répertoire /dev/ en mode noexec car cela provoque un conflit lors de l'utilisation de l'indicateur exécutable avec les fichiers /dev/sgx. Pour renvoyer l'ancien comportement, vous pouvez utiliser le paramètre NoExecPaths=/dev.
  • Les autorisations du fichier /dev/vsock ont ​​été modifiées en 0o666 et les fichiers /dev/vhost-vsock et /dev/vhost-net ont été déplacés vers le groupe kvm.
  • La base de données d'identification du matériel a été étendue avec des lecteurs d'empreintes digitales USB qui prennent correctement en charge le mode veille.
  • Prise en charge ajoutée résolue par systemd pour l'émission de réponses aux requêtes DNSSEC via un résolveur de stub. Les clients locaux peuvent effectuer une validation DNSSEC sur eux-mêmes, tandis que les clients externes sont transmis sans changement au serveur DNS parent.
  • Ajout de l'option CacheFromLocalhost àsolving.conf. Lorsqu'elle est définie, systemd-resolved utilisera la mise en cache même pour les appels au serveur DNS à l'adresse 127.0.0.1 (par défaut, la mise en cache de ces requêtes est désactivée pour éviter la double mise en cache).
  • systemd-resolved ajoute la prise en charge des NSID RFC-5001 dans le résolveur DNS local, permettant aux clients de faire la différence entre les interactions avec le résolveur local et un autre serveur DNS.
  • L'utilitaire solvectl implémente la possibilité d'afficher des informations sur la source des données (cache local, requête réseau, réponse du processeur local) et l'utilisation du cryptage lors de la transmission des données. Les options --cache, --synthesize, --network, --zone, --trust-anchor et --validate sont fournies pour contrôler le processus de détermination du nom.
  • systemd-nspawn ajoute la prise en charge de la configuration d'un pare-feu à l'aide de nftables en plus de la prise en charge iptables existante. La configuration d'IPMasquerade dans systemd-networkd a ajouté la possibilité d'utiliser un backend basé sur nftables.
  • systemd-localed a ajouté la prise en charge de l'appel de locale-gen pour générer les paramètres régionaux manquants.
  • Les options --pager/-no-pager/-json= ont été ajoutées à divers utilitaires pour activer/désactiver le mode de pagination et la sortie au format JSON. Ajout de la possibilité de définir le nombre de couleurs utilisées dans le terminal via la variable d'environnement SYSTEMD_COLORS (« 16 » ou « 256 »).
  • La version avec des hiérarchies de répertoires distinctes (split / et /usr) et la prise en charge de cgroup v1 sont obsolètes.
  • La branche master de Git a été renommée de « master » à « main ».

Source: opennet.ru

Ajouter un commentaire