Erscheinung des Systemmanagers systemd 248

Nach viermonatiger Entwicklung wurde die Veröffentlichung des Systemmanagers systemd 248 vorgestellt. In dieser neuen Version wird die Unterstützung von Images zur Erweiterung der Systemverzeichnisse, der Konfigurationsdatei /etc/veritytab, des Tools systemd-cryptenroll, der Entsperrung von LUKS2 über TPM2-Chips und FIDO2-Token, der Ausführung von Einheiten in einem isolierten IPC-Identifikationsraum sowie des B.A.T.M.A.N.-Protokolls für Mesh-Netzwerke und des nftables-Backends für systemd-nspawn bereitgestellt. systemd-oomd wurde stabilisiert.

Wesentliche Änderungen:

  • Das Konzept der Systemerweiterungsbilder (System Extension) wurde umgesetzt, die verwendet werden können, um die Verzeichnisstruktur von /usr/ und /opt/ zu erweitern und zusätzliche Dateien während des Betriebs hinzuzufügen, selbst wenn die genannten Verzeichnisse im Nur-Lese-Modus gemountet sind. Bei der Anbindung eines Systemerweiterungsbildes wird dessen Inhalt mithilfe von OverlayFS auf die Hierarchie von /usr/ und /opt/ überlagert.

    Für die Verbindung, Trennung, Anzeige und Aktualisierung von Systemerweiterungs-Images wurde das neue Tool systemd-sysext eingeführt. Zum automatischen Einbinden bereits installierter Images während des Bootvorgangs wurde der Dienst systemd-sysext.service hinzugefügt. In die Datei os-release wurde der Parameter „SYSEXT_LEVEL=” aufgenommen, um die unterstützten Erweiterungslevel des Systems zu bestimmen.

  • Für die Units wurde die Einstellung ExtensionImages implementiert, die zur Bindung von Systemerweiterungs-Images an die Hierarchie des Namensraums für spezielle isolierte Dienste verwendet werden kann.
  • Eine Konfigurationsdatei /etc/veritytab wurde hinzugefügt, um die Datenverifizierung auf Blockebene mithilfe des dm-verity-Moduls zu konfigurieren. Das Dateiformat ähnelt /etc/crypttab — „Partitionsname Datenträger Gerät für Hashes Root-Hash-Überprüfung Optionen“. Für die Konfiguration des Verhaltens von dm-verity für das Root-Gerät wurde ein neuer Parameter in den Kernel-Befehlszeilenoptionen systemd.verity.root_options hinzugefügt.
  • In systemd-cryptsetup wurde die Möglichkeit hinzugefügt, den URI-Token PKCS#11 und den verschlüsselten Schlüssel aus dem LUKS2-Metadaten-Header im JSON-Format zu extrahieren. Dies ermöglicht die Integration von Informationen zum Entsperren des verschlüsselten Geräts direkt mit dem Gerät, ohne externe Dateien einzubeziehen.
  • In systemd-cryptsetup wird die Unterstützung für das Entsperren von verschlüsselten LUKS2-Partitionen mit TPM2-Chips und FIDO2-Tokens bereitgestellt, zusätzlich zu den zuvor unterstützten PKCS#11-Token. Die libfido2 wird über dlopen() geladen, d.h. die Verfügbarkeit wird zur Laufzeit überprüft und nicht als feste Abhängigkeit.
  • In /etc/crypttab für systemd-cryptsetup wurden neue Optionen "no-write-workqueue" und "no-read-workqueue" hinzugefügt, um die synchrone Verarbeitung von Ein-/Ausgaben zu aktivieren, die mit der Verschlüsselung und Entschlüsselung verbunden sind.
  • Das Tool systemd-repart hat die Möglichkeit erhalten, verschlüsselte Partitionen mit TPM2-Chips zu aktivieren, beispielsweise zur Erstellung einer verschlüsselten Partition /var bei der ersten Bootvorgang.
  • Das Tool systemd-cryptenroll wurde hinzugefügt, um TPM2-, FIDO2- und PKCS#11-Tokens an LUKS-Partitionen zu binden, sowie zur Ablösung und Anzeige von Tokens, zur Bindung von Ersatzschlüsseln und zur Festlegung eines Passworts für den Zugriff.
  • Der Parameter PrivateIPC wurde hinzugefügt, um im Unit-File den Start von Prozessen in einem isolierten IPC-Raum mit eigenen Identifikatoren und einer eigenen Nachrichtenwarteschlange zu konfigurieren. Eine Option zur Verbindung des Units mit bereits bestehenden IPC-Identifikatoren ist der IPCNamespacePath.
  • Die Einstellungen ExecPaths und NoExecPaths wurden hinzugefügt, die es ermöglichen, das noexec-Flag auf bestimmte Teile des Dateisystems anzuwenden.
  • In systemd-networkd wurde die Unterstützung für das Mesh-Protokoll B.A.T.M.A.N. („Better Approach To Mobile Adhoc Networking“) hinzugefügt, das die Erstellung dezentralisierter Netzwerke ermöglicht, in denen jeder Knoten über benachbarte Knoten verbunden ist. Für die Konfiguration sind die Sektion [BatmanAdvanced] in .netdev, der Parameter BatmanAdvanced in .network-Dateien und ein neuer Gerätetyp „batadv“ vorgesehen.
  • Die Implementierung des Frühwarnmechanismus zur Überwachung des Speicherengpasses im systemd-oomd wurde stabilisiert. Eine neue Option, DefaultMemoryPressureDurationSec, wurde hinzugefügt, um die Wartezeit für die Freigabe von Ressourcen vor dem Eingriff in die Einheit zu konfigurieren. Systemd-oomd nutzt das PSI-Subsystem (Pressure Stall Information) des Kernels und ermöglicht das Erkennen von Verzögerungen aufgrund von Ressourcenmangel, sodass ressourcenintensive Prozesse selektiv beendet werden können, bevor das System in einen kritischen Zustand übergeht und anfängt, den Cache stark zu reduzieren und Daten auf die Auslagerungsdatei zu schieben.
  • Ein neuer Kernel-Befehlszeilenparameter — „root=tmpfs“ — ermöglicht es, den Wurzelpartition in einem temporären Speicher, der im Arbeitsspeicher mithilfe von Tmpfs angelegt wird, einzuhängen.
  • Ein Parameter in /etc/crypttab, der die Schlüsseldatei definiert, kann jetzt auf Sockets des Typs AF_UNIX und SOCK_STREAM verweisen. Der Schlüssel muss dabei beim Verbinden mit dem Socket übergeben werden, was beispielsweise für die Erstellung von Diensten verwendet werden kann, die Schlüssel dynamisch bereitstellen.
  • Der Fallback-Hostnamen kann nun auf zwei Arten für den Systemmanager und systemd-hostnamed festgelegt werden: über den Parameter DEFAULT_HOSTNAME in os-release und über die Umgebungsvariable $SYSTEMD_DEFAULT_HOSTNAME. Zudem wird in systemd-hostnamed die Verarbeitung von „localhost“ im Hostnamen unterstützt, und es wurde die Möglichkeit hinzugefügt, den Hostnamen sowie die Eigenschaften „HardwareVendor“ und „HardwareModel“ über DBus zu exportieren.
  • Das Block mit den einstellbaren Umgebungsvariablen kann jetzt über die neue Option ManagerEnvironment in system.conf oder user.conf konfiguriert werden, anstatt nur über die Kernel-Befehlszeile und die Einstellungen der Unit-Dateien.
  • Während der Kompilierung besteht die Möglichkeit, den Systemaufruf fexecve() anstelle von execve() zu nutzen, um die Verzögerung zwischen der Überprüfung des Sicherheitskontexts und dessen Anwendung zu minimieren.
  • Für Unit-Dateien wurden neue bedingte Operationen ConditionSecurity=tpm2 und ConditionCPUFeature hinzugefügt, um das Vorhandensein von TPM2-Geräten und bestimmten CPU-Funktionen zu überprüfen (zum Beispiel kann ConditionCPUFeature=rdrand verwendet werden, um die Unterstützung der RDRAND-Operation durch die CPU zu prüfen).
  • Für die verfügbaren Kernel wird eine automatische Generierung von Systemaufruftabellen für Seccomp-Filter implementiert.
  • Die Möglichkeit, neue Bindungen (bind mounts) in bestehende Mount-Namespace von Diensten ohne einen Neustart der Dienste einzufügen, wurde hinzugefügt. Die Einfügung erfolgt mit den Befehlen 'systemctl bind …' und 'systemctl mount-image …'.
  • Die Einstellungen StandardOutput und StandardError unterstützen nun die Angabe von Pfaden im Format „truncate:“ zur Bereinigung vor der Nutzung.
  • Im sd-bus wurde die Möglichkeit hinzugefügt, eine Verbindung zu einer Sitzung eines bestimmten Benutzers innerhalb eines lokalen Containers herzustellen. Zum Beispiel „systemctl —user -M lennart@ start quux“.
  • In den Dateien systemd.link wurden im Abschnitt [Link] folgende Parameter implementiert:
    • Promiscuous — ermöglicht es, das Gerät in den Modus „promiscuous“ zu versetzen, um alle Netzwerkpakete, einschließlich der nicht an das aktuelle System adressierten, zu verarbeiten;
    • TransmitQueues und ReceiveQueues zur Konfiguration der Anzahl der TX- und RX-Queues;
    • TransmitQueueLength zur Einstellung der Größe der TX-Queue; GenericSegmentOffloadMaxBytes und GenericSegmentOffloadMaxSegment zur Festlegung der Limits für die Anwendung der Technologie GRO (Generic Receive Offload).
  • In die Dateien systemd.network wurden neue Einstellungen hinzugefügt:
    • [Network] RouteTable zur Auswahl der Routingtabelle;
    • [RoutingPolicyRule] Type für die Art der Route („blackhole“, „unreachable“, „prohibit“);
    • [IPv6AcceptRA] RouteDenyList und RouteAllowList für die Listen von erlaubten und verbotenen Routenankündigungen;
    • [DHCPv6] UseAddres zum Ignorieren der vergebenen DHCP-Adresse;
    • [DHCPv6PrefixDelegation] ManageTemporaryAddress;
    • ActivationPolicy zur Bestimmung der Politik hinsichtlich der Aktivität der Schnittstelle (immer im Zustand UP oder DOWN halten oder dem Benutzer erlauben, den Zustand mit dem Befehl „ip link set dev“ zu ändern).
  • In die Dateien systemd.netdev wurden die Optionen [VLAN] Protocol, IngressQOSMaps, EgressQOSMaps und [MACVLAN] BroadcastMulticastQueueLength zur Konfiguration der VLAN-Paketverarbeitung hinzugefügt.
  • Das Einbinden des Verzeichnisses /dev/ im noexec-Modus wurde eingestellt, da dies zu Konflikten bei der Verwendung des ausführbaren Flags mit Dateien in /dev/sgx führt. Um das alte Verhalten wiederherzustellen, kann die Einstellung NoExecPaths=/dev verwendet werden.
  • Die Dateiberechtigungen für /dev/vsock wurden auf 0o666 geändert, und die Dateien /dev/vhost-vsock und /dev/vhost-net wurden in die Gruppe verschoben. kvm.
  • Die Basis der Hardware-IDs wurde um USB-Geräte zur Erfassung von Fingerabdrücken erweitert, die den Wechsel in den Ruhezustand korrekt unterstützen.
  • In systemd-resolved wurde die Unterstützung für die Beantwortung von DNSSEC-Anfragen über den Stub-Resolver hinzugefügt. Lokale Clients können DNSSEC-Validierungen selbst durchführen, während externe Anfragen unverändert an den übergeordneten DNS-Server weitergeleitet werden.
  • In resolved.conf wurde die Option CacheFromLocalhost hinzugefügt. Mit dieser Einstellung verwendet systemd-resolved Caching sogar für Anfragen an den DNS-Server unter der Adresse 127.0.0.1 (standardmäßig ist das Caching solcher Anfragen deaktiviert, um doppelte Caching-Vorgänge zu vermeiden).
  • systemd-resolved unterstützt jetzt die RFC-5001 NSID im lokalen DNS-Resolver, was es Clients ermöglicht, zwischen der Interaktion mit dem lokalen Resolver und anderen zu unterscheiden. dem Server durch Die Unterstützung für neue WAV-Dateiformate wurde zu den Dienstprogrammen audioplay und audiorecord hinzugefügt.
  • In der Utility resolvectl wurde die Möglichkeit implementiert, Informationen über die Quelle der Daten zu erhalten (lokaler Cache, Netzwerkabfrage, Antwort des lokalen Handlers) und die Anwendung von Verschlüsselung bei der Datenübertragung. Um den Namensauflösungsprozess zu steuern, wurden die Optionen —cache, —synthesize, —network, —zone, —trust-anchor und —validate angeboten.
  • In systemd-nspawn wurde die Unterstützung für die Konfiguration der Firewall mit nftables hinzugefügt, zusätzlich zur bestehenden Unterstützung für iptables. In der IPMasquerade-Konfiguration in systemd-networkd wurde die Möglichkeit eingeführt, ein Backend basierend auf nftables zu verwenden.
  • In systemd-localed wurde die Unterstützung für den Aufruf von locale-gen zur Generierung fehlender Locales hinzugefügt.
  • Verschiedene Tools haben Optionen —pager/—no-pager/—json= erhalten, um den seitenweisen Anzeigemodus und die Ausgabe im JSON-Format zu aktivieren/deaktivieren. Es wurde die Möglichkeit hinzugefügt, die Anzahl der im Terminal verwendeten Farben über die Umgebungsvariable SYSTEMD_COLORS festzulegen („16“ oder „256“).
  • Die Version mit separaten Verzeichnis-Hierarchien (Trennung von / und /usr) sowie die Unterstützung von cgroup v1 wurden als veraltet erklärt.
  • Der Hauptbranch in Git wurde von ‚master‘ in ‚main‘ umbenannt.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster