La version du gestionnaire de système systemd 248.

Après quatre mois de développement, la version du gestionnaire de système systemd 248 est présentée. Cette nouvelle version assure la prise en charge des images pour étendre les répertoires système, du fichier de configuration /etc/veritytab, de l'outil systemd-cryptenroll, du déverrouillage LUKS2 à l'aide de puces TPM2 et de tokens FIDO2, ainsi que du lancement des unités dans un espace isolé d'identifiants IPC, du protocole B.A.T.M.A.N. pour les réseaux maillés, et du backend nftables pour systemd-nspawn. systemd-oomd a été stabilisé.

Principales modifications :

  • Le concept des images d'extension système (System Extension) a été mis en œuvre, permettant d'étendre la hiérarchie des répertoires /usr/ et /opt/, et d'ajouter des fichiers supplémentaires en cours d'exécution, même si ces répertoires sont montés en mode lecture seule. Lorsqu'une image d'extension système est montée, son contenu se superpose à la hiérarchie /usr/ et /opt/ à l'aide de OverlayFS.

    Une nouvelle utilité systemd-sysext a été proposée pour monter, démonter, visualiser et mettre à jour les images d'extensions système. Pour monter automatiquement les images déjà installées au démarrage, un service systemd-sysext.service a été ajouté. Un paramètre « SYSEXT_LEVEL= » a été ajouté au fichier os-release pour définir le niveau des extensions système prises en charge.

  • Pour les unités, une configuration ExtensionImages a été mise en œuvre, permettant de lier des images d'extension système à la hiérarchie de l'espace de noms F.S. de services isolés spécifiques.
  • Un fichier de configuration /etc/veritytab a été ajouté pour configurer la vérification des données au niveau bloc à l'aide du module dm-verity. Le format du fichier est similaire à /etc/crypttab — « nom_partition appareil_données appareil_hash hachage_racine options ». Pour configurer le comportement de dm-verity pour l'appareil racine, un paramètre a été ajouté aux options de ligne de commande du noyau systemd.verity.root_options.
  • Dans systemd-cryptsetup, la possibilité d'extraire l'URI du token PKCS#11 et la clé chiffrée des métadonnées LUKS2 au format JSON a été ajoutée, permettant d'intégrer les informations pour déverrouiller un appareil chiffré directement dans le dispositif sans avoir recours à des fichiers externes.
  • Dans systemd-cryptsetup, la prise en charge du déverrouillage des partitions chiffrées LUKS2 à l'aide de puces TPM2 et de tokens FIDO2 a été intégrée, en plus des tokens PKCS#11 précédemment pris en charge. Le chargement de libfido2 se fait via dlopen(), c'est-à-dire que sa présence est vérifiée à la volée, et non sous forme de dépendance rigide.
  • Dans /etc/crypttab pour systemd-cryptsetup, de nouvelles options «no-write-workqueue» et «no-read-workqueue» ont été ajoutées pour activer le traitement synchrone des entrées/sorties liées au chiffrement et au déchiffrement.
  • L'outil systemd-repart a été amélioré pour permettre l'activation de partitions chiffrées à l'aide de puces TPM2, par exemple, pour créer une partition chiffrée /var lors du premier démarrage.
  • Un nouvel outil systemd-cryptenroll a été ajouté pour lier des jetons TPM2, FIDO2 et PKCS#11 aux partitions LUKS, ainsi que pour détacher et visualiser les jetons, lier des clés de secours et définir un mot de passe pour l'accès.
  • Le paramètre PrivateIPC a été ajouté, permettant dans le fichier d'unité de configurer le lancement de processus dans un espace IPC isolé avec ses propres identifiants et file d'attente de messages. Pour connecter l'unité à un espace d'identifiants IPC déjà créés, une option IPCNamespacePath a été proposée.
  • Les paramètres ExecPaths et NoExecPaths ont été ajoutés, permettant d'appliquer le drapeau noexec à certaines parties du système de fichiers.
  • Dans systemd-networkd, le support du protocole mesh B.A.T.M.A.N. («Better Approach To Mobile Adhoc Networking») a été ajouté, permettant de créer des réseaux décentralisés où chaque nœud est lié via des nœuds voisins. Pour la configuration, une section [BatmanAdvanced] dans .netdev, le paramètre BatmanAdvanced dans les fichiers .network et un nouveau type de dispositif «batadv» ont été proposés.
  • La mise en œuvre du mécanisme de réponse précoce à la pénurie de mémoire dans systemd-oomd a été stabilisée. L'option DefaultMemoryPressureDurationSec a été ajoutée pour configurer le temps d'attente pour libérer la ressource avant d'agir sur l'unité. Systemd-oomd utilise la sous-système du noyau PSI (Pressure Stall Information) et permet de détecter le début des retards dus à un manque de ressources et de terminer sélectivement des processus gourmands en ressources à un stade où le système n'est pas encore en état critique et n'a pas encore commencé à réduire intensément le cache et à échanger des données vers une partition de swap.
  • Un paramètre de ligne de commande du noyau — «root=tmpfs» — a été ajouté, permettant de monter la partition racine dans un stockage temporaire situé en mémoire vive à l'aide de Tmpfs.
  • Le paramètre dans /etc/crypttab qui définit le fichier clé peut désormais pointer vers des sockets de type AF_UNIX et SOCK_STREAM. La clé doit dans ce cas être fournie lors de la connexion au socket, ce qui peut par exemple être utilisé pour créer des services fournissant dynamiquement des clés.
  • Le nom d'hôte de secours (fallback) utilisé 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 a également implementé le traitement de la désignation de «localhost» dans le nom d'hôte et a ajouté la possibilité d'exporter le nom d'hôte ainsi que les propriétés «HardwareVendor» et «HardwareModel» via DBus.
  • Le bloc des variables d'environnement peut maintenant être configuré grâce à la nouvelle option ManagerEnvironment dans system.conf ou user.conf, et non plus seulement via la ligne de commande du noyau et les paramètres des fichiers unit.
  • Lors de la compilation, il est désormais possible d'utiliser l'appel système fexecve() au lieu de execve() pour réduire le délai entre la vérification du contexte de sécurité et son application.
  • De nouvelles opérations conditionnelles ConditionSecurity=tpm2 et ConditionCPUFeature pour vérifier la présence de dispositifs TPM2 et certaines fonctionnalités CPU ont été ajoutées pour les fichiers unit (par exemple, ConditionCPUFeature=rdrand peut être utilisée pour vérifier le support par le processeur de l'opération RDRAND).
  • Pour les noyaux disponibles, une génération automatique des tableaux d'appels système pour les filtres seccomp a été mise en place.
  • La possibilité d'injecter de nouveaux montages (bind mounts) dans des espaces de noms de points de montage (mount namespace) existants pour les services, sans redémarrer ces derniers, a été ajoutée. L'injection se fait par les commandes ‘systemctl bind …’ et ‘systemctl mount-image …’.
  • Les réglages StandardOutput et StandardError prennent désormais en charge la spécification de chemins sous la forme de «truncate:» pour effacer avant utilisation.
  • sd-bus a été enrichi de la possibilité d'établir une connexion avec la session d'un utilisateur donné à l'intérieur d'un conteneur local. Par exemple «systemctl —user -M lennart@ start quux».
  • Dans les fichiers systemd.link, section [Link], les paramètres suivants ont été implémentés :
    • Promiscuous — permet de mettre le dispositif en mode «promiscuous» pour traiter tous les paquets réseau, y compris ceux non adressés à la système actuel ;
    • TransmitQueues et ReceiveQueues pour configurer le nombre de files d'attente TX et RX ;
    • TransmitQueueLength pour configurer la taille de la file d'attente TX ; GenericSegmentOffloadMaxBytes et GenericSegmentOffloadMaxSegment pour définir les limites d'utilisation de la technologie GRO (Generic Receive Offload).
  • De nouveaux réglages ont été ajoutés dans les fichiers systemd.network :
    • [Network] RouteTable pour sélectionner la table de routage ;
    • [RoutingPolicyRule] Type pour le type de routage («blackhole», «unreachable», «prohibit») ;
    • [IPv6AcceptRA] RouteDenyList et RouteAllowList pour les listes d'annonces de routes autorisées et interdites;
    • [DHCPv6] UseAddres pour ignorer l'adresse fournie par DHCP;
    • [DHCPv6PrefixDelegation] ManageTemporaryAddress;
    • ActivationPolicy pour définir la politique concernant l'activité de l'interface (toujours maintenir un état UP ou DOWN ou permettre à l'utilisateur de changer les états avec la commande «ip link set dev»).
  • Des options ont été ajoutées aux fichiers systemd.netdev : [VLAN] Protocol, IngressQOSMaps, EgressQOSMaps et [MACVLAN] BroadcastMulticastQueueLength pour configurer le traitement des paquets VLAN.
  • Le montage du répertoire /dev/ en mode noexec a été supprimé, car cela entraîne un conflit lors de l'utilisation du drapeau exécutable avec les fichiers /dev/sgx. Pour restaurer le comportement ancien, vous pouvez utiliser le paramètre NoExecPaths=/dev.
  • Les permissions 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 dans le groupe. kvm.
  • La base d'identifiants matériels a été élargie aux périphériques USB pour la lecture d'empreintes digitales, prenant correctement en charge le passage en mode veille.
  • systemd-resolved a ajouté la prise en charge de la réponse aux requêtes DNSSEC via un résolveur stub. Les clients locaux peuvent effectuer une validation DNSSEC pour eux-mêmes, tandis que les requêtes externes sont relayées sans modification au serveur DNS parent.
  • Une option CacheFromLocalhost a été ajoutée à resolved.conf, permettant à systemd-resolved d'utiliser le cache même pour les requêtes vers le serveur DNS à l'adresse 127.0.0.1 (par défaut, le cache de telles requêtes est désactivé pour éviter un double cache).
  • systemd-resolved a ajouté la prise en charge de la RFC-5001 NSID dans le résolveur DNS local, permettant aux clients de distinguer l'interaction avec le résolveur local et l'autre. serveur DNS.
  • L'outil resolvectl a introduit la possibilité d'afficher des informations sur la source des données reçues (cache local, requête réseau, réponse du gestionnaire local) et l'application du chiffrement lors du transfert de données. Des options pour gérer le processus de résolution de nom ont été proposées : --cache, --synthesize, --network, --zone, --trust-anchor et --validate.
  • Dans systemd-nspawn, le support de la configuration du pare-feu à l'aide de nftables a été ajouté en complément du support existant des iptables. Dans la configuration IPMasquerade dans systemd-networkd, la possibilité d'utiliser un backend basé sur nftables a été ajoutée.
  • Dans systemd-localed, la prise en charge de l'appel de locale-gen pour générer les locales manquantes a été ajoutée.
  • Des options —pager/—no-pager/—json= ont été ajoutées à divers outils pour activer/désactiver le mode de pagination et sortir en format JSON. Il est maintenant possible de définir le nombre de couleurs utilisées dans le terminal via la variable d'environnement SYSTEMD_COLORS («16» ou «256»).
  • Les versions avec des hiérarchies de répertoires séparées (séparation / et /usr) et le support de cgroup v1 sont déclarées obsolètes.
  • La branche principale dans Git a été renommée de ‘master’ en ‘main’.

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