systemd Systemmanager Version 250

Nach fünfmonatiger Entwicklungszeit wurde die Veröffentlichung des Systemmanagers systemd 250 vorgestellt. Die neue Version führte die Möglichkeit ein, Anmeldeinformationen in verschlüsselter Form zu speichern, implementierte die Überprüfung automatisch erkannter GPT-Partitionen mithilfe einer digitalen Signatur und verbesserte Informationen über die Ursachen von Verzögerungen, wenn Starten von Diensten und zusätzliche Optionen zum Beschränken des Dienstzugriffs auf bestimmte Dateisysteme und Netzwerkschnittstellen, Unterstützung für die Überwachung der Partitionsintegrität mithilfe des dm-integrity-Moduls und Unterstützung für die automatische Aktualisierung von SD-Boot.

Wichtigste Änderungen:

  • Unterstützung für verschlüsselte und authentifizierte Anmeldeinformationen hinzugefügt, die für die sichere Speicherung vertraulicher Materialien wie SSL-Schlüssel und Zugriffskennwörter nützlich sein können. Die Entschlüsselung der Anmeldeinformationen erfolgt nur bei Bedarf und im Zusammenhang mit der lokalen Installation oder Ausrüstung. Die Verschlüsselung der Daten erfolgt automatisch mithilfe symmetrischer Verschlüsselungsalgorithmen, deren Schlüssel sich im Dateisystem, im TPM2-Chip befinden kann, oder mithilfe eines Kombinationsschemas. Beim Start des Dienstes werden die Anmeldeinformationen automatisch entschlüsselt und stehen dem Dienst in seiner normalen Form zur Verfügung. Um mit verschlüsselten Anmeldeinformationen zu arbeiten, wurde das Dienstprogramm „systemd-creds“ hinzugefügt und für Dienste wurden die Einstellungen LoadCredentialEncrypted und SetCredentialEncrypted vorgeschlagen.
  • sd-stub, die ausführbare EFI-Datei, die es der EFI-Firmware ermöglicht, den Linux-Kernel zu laden, unterstützt jetzt das Booten des Kernels mit dem EFI-Protokoll LINUX_EFI_INITRD_MEDIA_GUID. Zu sd-stub wurde außerdem die Möglichkeit hinzugefügt, Anmeldeinformationen und Sysext-Dateien in ein cpio-Archiv zu packen und dieses Archiv zusammen mit der initrd an den Kernel zu übertragen (zusätzliche Dateien werden im Verzeichnis /.extra/ abgelegt). Mit dieser Funktion können Sie eine überprüfbare, unveränderliche initrd-Umgebung verwenden, ergänzt durch Sysexts und verschlüsselte Authentifizierungsdaten.
  • Die Spezifikation „Discoverable Partitions“ wurde erheblich erweitert und bietet Tools zum Identifizieren, Mounten und Aktivieren von Systempartitionen mithilfe von GPT (GUID Partition Tables). Im Vergleich zu früheren Versionen unterstützt die Spezifikation jetzt die Root-Partition und die /usr-Partition für die meisten Architekturen, einschließlich Plattformen, die kein UEFI verwenden.

    Discoverable Partitions bietet außerdem Unterstützung für Partitionen, deren Integrität vom dm-verity-Modul mithilfe digitaler PKCS#7-Signaturen überprüft wird, wodurch es einfacher wird, vollständig authentifizierte Festplatten-Images zu erstellen. Die Überprüfungsunterstützung ist in verschiedene Dienstprogramme integriert, die Festplatten-Images bearbeiten, darunter systemd-nspawn, systemd-sysext, systemd-dissect, RootImage-Dienste, systemd-tmpfiles und systemd-sysusers.

  • Bei Einheiten, deren Start oder Stopp lange dauern, besteht neben der Anzeige eines animierten Fortschrittsbalkens die Möglichkeit, Statusinformationen anzuzeigen, die es Ihnen ermöglichen, zu verstehen, was genau gerade mit dem Dienst passiert und welcher Dienst der Systemmanager ist wartet derzeit auf die Fertigstellung.
  • Der Parameter DefaultOOMScoreAdjust wurde zu /etc/systemd/system.conf und /etc/systemd/user.conf hinzugefügt, mit dem Sie den OOM-Killer-Schwellenwert für wenig Speicher anpassen können, anwendbar auf Prozesse, die systemd für das System und Benutzer startet. Standardmäßig ist das Gewicht von Systemdiensten höher als das von Benutzerdiensten, d. h. Bei unzureichendem Speicher ist die Wahrscheinlichkeit der Beendigung von Benutzerdiensten höher als die von Systemdiensten.
  • Die Einstellung „RestrictFileSystems“ wurde hinzugefügt, mit der Sie den Zugriff von Diensten auf bestimmte Dateisystemtypen einschränken können. Um die verfügbaren Dateisystemtypen anzuzeigen, können Sie den Befehl „systemd-analyze filesystems“ verwenden. Analog dazu wurde die Option RestrictNetworkInterfaces implementiert, mit der Sie den Zugriff auf bestimmte Netzwerkschnittstellen einschränken können. Die Implementierung basiert auf dem BPF-LSM-Modul, das den Zugriff einer Gruppe von Prozessen auf Kernelobjekte einschränkt.
  • Eine neue /etc/integritytab-Konfigurationsdatei und ein neues Dienstprogramm systemd-integritysetup hinzugefügt, die das dm-integrity-Modul konfigurieren, um die Datenintegrität auf Sektorebene zu steuern, um beispielsweise die Unveränderlichkeit verschlüsselter Daten zu gewährleisten (authentifizierte Verschlüsselung stellt sicher, dass ein Datenblock vorhanden ist). nicht auf Umwegen verändert wurde). Das Format der Datei /etc/integritytab ähnelt den Dateien /etc/crypttab und /etc/veritytab, mit der Ausnahme, dass dm-integrity anstelle von dm-crypt und dm-verity verwendet wird.
  • Eine neue Unit-Datei systemd-boot-update.service wurde hinzugefügt. Wenn sie aktiviert und der sd-boot-Bootloader installiert ist, aktualisiert systemd automatisch die Version des sd-boot-Bootloaders und hält den Bootloader-Code immer auf dem neuesten Stand. sd-boot selbst wird jetzt standardmäßig mit Unterstützung für den SBAT-Mechanismus (UEFI Secure Boot Advanced Targeting) erstellt, der Probleme mit der Zertifikatsperrung für UEFI Secure Boot löst. Darüber hinaus bietet sd-boot die Möglichkeit, die Starteinstellungen von Microsoft Windows zu analysieren, um die Namen der Startpartitionen mit Windows korrekt zu generieren und die Windows-Version anzuzeigen.

    SD-Boot bietet außerdem die Möglichkeit, beim Erstellen ein Farbschema zu definieren. Während des Startvorgangs wurde Unterstützung für das Ändern der Bildschirmauflösung durch Drücken der Taste „r“ hinzugefügt. Hotkey „f“ hinzugefügt, um zur Firmware-Konfigurationsoberfläche zu gelangen. Es wurde ein Modus hinzugefügt, um das System entsprechend dem beim letzten Start ausgewählten Menüpunkt automatisch zu starten. Es wurde die Möglichkeit hinzugefügt, EFI-Treiber automatisch zu laden, die sich im Verzeichnis /EFI/systemd/drivers/ im Abschnitt ESP (EFI System Partition) befinden.

  • Es ist eine neue Unit-Datei „factory-reset.target“ enthalten, die in systemd-logind auf ähnliche Weise wie die Vorgänge „Neustart“, „Ausschalten“, „Suspend“ und „Ruhezustand“ verarbeitet wird und zum Erstellen von Handlern für die Durchführung eines Zurücksetzens auf die Werkseinstellungen verwendet wird.
  • Der systemd-aufgelöste Prozess erstellt nun zusätzlich zu 127.0.0.54 einen zusätzlichen Listening-Socket bei 127.0.0.53. Anfragen, die bei 127.0.0.54 eingehen, werden immer an einen vorgelagerten DNS-Server umgeleitet und nicht lokal verarbeitet.
  • Bietet die Möglichkeit, systemd-importd und systemd-resolved mit der OpenSSL-Bibliothek anstelle von libgcrypt zu erstellen.
  • Erste Unterstützung für die in Loongson-Prozessoren verwendete LoongArch-Architektur hinzugefügt.
  • systemd-gpt-auto-generator bietet die Möglichkeit, systemdefinierte Swap-Partitionen, die vom LUKS2-Subsystem verschlüsselt werden, automatisch zu konfigurieren.
  • Der GPT-Image-Parsing-Code, der in systemd-nspawn, systemd-dissect und ähnlichen Dienstprogrammen verwendet wird, implementiert die Möglichkeit, Bilder für andere Architekturen zu dekodieren, sodass systemd-nspawn zum Ausführen von Bildern auf Emulatoren anderer Architekturen verwendet werden kann.
  • Bei der Überprüfung von Disk-Images zeigt systemd-dissect jetzt Informationen über den Zweck der Partition an, beispielsweise die Eignung zum Booten über UEFI oder zum Ausführen in einem Container.
  • Das Feld „SYSEXT_SCOPE“ wurde zu den system-extension.d/-Dateien hinzugefügt, sodass Sie den Umfang des Systemabbilds angeben können – „initrd“, „system“ oder „portable“.
  • Der OS-Release-Datei wurde ein Feld „PORTABLE_PREFIXES“ hinzugefügt, das in tragbaren Images verwendet werden kann, um unterstützte Unit-Dateipräfixe zu ermitteln.
  • systemd-logind führt die neuen Einstellungen HandlePowerKeyLongPress, HandleRebootKeyLongPress, HandleSuspendKeyLongPress und HandleHibernateKeyLongPress ein, mit denen festgelegt werden kann, was passiert, wenn bestimmte Tasten länger als 5 Sekunden gedrückt gehalten werden (z. B. kann das schnelle Drücken der Suspend-Taste so konfiguriert werden, dass in den Standby-Modus gewechselt wird). , und wenn es gedrückt gehalten wird, geht es in den Ruhezustand.) .
  • Für Einheiten sind die Einstellungen „StartupAllowedCPUs“ und „StartupAllowedMemoryNodes“ implementiert, die sich von ähnlichen Einstellungen ohne das Startup-Präfix dadurch unterscheiden, dass sie nur beim Booten und Herunterfahren angewendet werden, wodurch Sie während des Bootens andere Ressourcenbeschränkungen festlegen können.
  • [Bedingung|Assert][Speicher|CPU|IO]Druckprüfungen hinzugefügt, die es ermöglichen, dass die Aktivierung der Einheit übersprungen wird oder fehlschlägt, wenn der PSI-Mechanismus eine starke Auslastung von Speicher, CPU und E/A im System erkennt.
  • Das standardmäßige maximale Inode-Limit wurde für die /dev-Partition von 64 KB auf 1 MB und für die /tmp-Partition von 400 KB auf 1 MB erhöht.
  • Für Dienste wurde eine ExecSearchPath-Einstellung vorgeschlagen, die es ermöglicht, den Pfad für die Suche nach ausführbaren Dateien zu ändern, die über Einstellungen wie ExecStart gestartet werden.
  • Die Einstellung „RuntimeRandomizedExtraSec“ wurde hinzugefügt, mit der Sie zufällige Abweichungen in das RuntimeMaxSec-Timeout einführen können, wodurch die Ausführungszeit einer Einheit begrenzt wird.
  • Die Syntax der Einstellungen RuntimeDirectory, StateDirectory, CacheDirectory und LogsDirectory wurde erweitert. Durch die Angabe eines durch einen Doppelpunkt getrennten zusätzlichen Werts können Sie nun die Erstellung eines symbolischen Links zu einem bestimmten Verzeichnis organisieren, um den Zugriff über mehrere Pfade zu organisieren.
  • Für Dienste werden die Einstellungen TTYRows und TTYColumns angeboten, um die Anzahl der Zeilen und Spalten im TTY-Gerät festzulegen.
  • Die ExitType-Einstellung wurde hinzugefügt, mit der Sie die Logik zur Bestimmung des Endes eines Dienstes ändern können. Standardmäßig überwacht systemd nur den Tod des Hauptprozesses. Wenn jedoch ExitType=cgroup festgelegt ist, wartet der Systemmanager, bis der letzte Prozess in der cgroup abgeschlossen ist.
  • Die Implementierung der TPM2/FIDO2/PKCS11-Unterstützung durch systemd-cryptsetup ist jetzt auch als Cryptsetup-Plugin erstellt, sodass der normale Cryptsetup-Befehl zum Entsperren einer verschlüsselten Partition verwendet werden kann.
  • Der TPM2-Handler in systemd-cryptsetup/systemd-cryptsetup fügt neben ECC-Schlüsseln auch Unterstützung für RSA-Primärschlüssel hinzu, um die Kompatibilität mit Nicht-ECC-Chips zu verbessern.
  • Die Option token-timeout wurde zu /etc/crypttab hinzugefügt, mit der Sie die maximale Wartezeit für eine PKCS#11/FIDO2-Token-Verbindung festlegen können. Anschließend werden Sie aufgefordert, ein Kennwort oder einen Wiederherstellungsschlüssel einzugeben.
  • systemd-timesyncd implementiert die SaveIntervalSec-Einstellung, die es Ihnen ermöglicht, die aktuelle Systemzeit regelmäßig auf der Festplatte zu speichern, um beispielsweise eine monotone Uhr auf Systemen ohne RTC zu implementieren.
  • Dem Dienstprogramm systemd-analyze wurden Optionen hinzugefügt: „--image“ und „--root“ zum Überprüfen von Unit-Dateien in einem bestimmten Image oder Stammverzeichnis, „--recursive-errors“ zum Berücksichtigen abhängiger Units bei einem Fehler erkannt wird, „--offline“ zum Überprüfen separat auf der Festplatte gespeicherter Einheitendateien, „—json“ für die Ausgabe im JSON-Format, „—quiet“ zum Deaktivieren unwichtiger Meldungen, „—profile“ zum Binden an ein tragbares Profil. Außerdem wurde der Befehl inspect-elf zum Parsen von Kerndateien im ELF-Format und die Möglichkeit hinzugefügt, Unit-Dateien mit einem bestimmten Unit-Namen zu überprüfen, unabhängig davon, ob dieser Name mit dem Dateinamen übereinstimmt.
  • systemd-networkd hat die Unterstützung für den Controller Area Network (CAN)-Bus erweitert. Einstellungen zur Steuerung der CAN-Modi hinzugefügt: Loopback, OneShot, PresumeAck und ClassicDataLengthCode. Dem Abschnitt [CAN] von .network-Dateien wurden die Optionen TimeQuantaNSec, PropagationSegment, PhaseBufferSegment1, PhaseBufferSegment2, SyncJumpWidth, DataTimeQuantaNSec, DataPropagationSegment, DataPhaseBufferSegment1, DataPhaseBufferSegment2 und DataSyncJumpWidth hinzugefügt, um die Bitsynchronisation der CAN-Schnittstelle zu steuern.
  • Systemd-networkd hat eine Label-Option für den DHCPv4-Client hinzugefügt, mit der Sie die Adressbezeichnung konfigurieren können, die beim Konfigurieren von IPv4-Adressen verwendet wird.
  • systemd-udevd für „ethtool“ implementiert die Unterstützung spezieller „max“-Werte, die die Puffergröße auf den von der Hardware unterstützten Maximalwert festlegen.
  • In .link-Dateien für systemd-udevd können Sie nun verschiedene Parameter für die Kombination von Netzwerkadaptern und die Anbindung von Hardware-Handlern (Offload) konfigurieren.
  • systemd-networkd bietet standardmäßig neue .network-Dateien an: 80-container-vb.network zum Definieren von Netzwerkbrücken, die erstellt werden, wenn systemd-nspawn mit den Optionen „--network-bridge“ oder „--network-zone“ ausgeführt wird; 80-6rd-tunnel.network zum Definieren von Tunneln, die automatisch erstellt werden, wenn eine DHCP-Antwort mit der Option 6RD empfangen wird.
  • Systemd-networkd und systemd-udevd haben Unterstützung für die IP-Weiterleitung über InfiniBand-Schnittstellen hinzugefügt, wofür der Abschnitt „[IPoIB]“ zu den systemd.netdev-Dateien hinzugefügt wurde und die Verarbeitung des „ipoib“-Werts im Kind implementiert wurde Einstellung.
  • systemd-networkd bietet eine automatische Routenkonfiguration für im Parameter AllowedIPs angegebene Adressen, die über die Parameter RouteTable und RouteMetric in den Abschnitten [WireGuard] und [WireGuardPeer] konfiguriert werden können.
  • systemd-networkd bietet die automatische Generierung sich nicht ändernder MAC-Adressen für die Batadv- und Bridge-Schnittstellen. Um dieses Verhalten zu deaktivieren, können Sie MACAddress=none in .netdev-Dateien angeben.
  • Den .link-Dateien im Abschnitt „[Link]“ wurde eine WakeOnLanPassword-Einstellung hinzugefügt, um das Passwort zu bestimmen, wenn WoL im „SecureOn“-Modus ausgeführt wird.
  • Dem Abschnitt „[CAKE]“ von .network-Dateien wurden die Einstellungen „AutoRateIngress“, „CompensationMode“, „FlowIsolationMode“, „NAT“, „MPUBytes“, „PriorityQueueingPreset“, „FirewallMark“, „Wash“, „SplitGSO“ und „UseRawPacketSize“ hinzugefügt, um die Parameter des Netzwerkwarteschlangenverwaltungsmechanismus CAKE (Common Applications Kept Enhanced) zu definieren .
  • Dem Abschnitt „[Netzwerk]“ von .network-Dateien wurde die Einstellung „IgnoreCarrierLoss“ hinzugefügt, mit der Sie bestimmen können, wie lange gewartet werden soll, bevor auf einen Verlust des Trägersignals reagiert wird.
  • Systemd-nspawn, homectl, machinectl und systemd-run haben die Syntax des Parameters „--setenv“ erweitert – wenn nur der Variablenname angegeben wird (ohne „="), wird der Wert aus der entsprechenden Umgebungsvariablen übernommen (z. B Wenn Sie beispielsweise „--setenv=FOO“ angeben, wird der Wert aus der Umgebungsvariablen $FOO übernommen und in der gleichnamigen Umgebungsvariablen im Container verwendet.
  • systemd-nspawn hat eine Option „--suppress-sync“ hinzugefügt, um die Systemaufrufe sync()/fsync()/fdatasync() beim Erstellen eines Containers zu deaktivieren (nützlich, wenn Geschwindigkeit Priorität hat und die Erhaltung von Build-Artefakten im Falle eines Fehlers nicht). wichtig, da sie jederzeit neu erstellt werden können).
  • Es wurde eine neue hwdb-Datenbank hinzugefügt, die verschiedene Arten von Signalanalysatoren (Multimeter, Protokollanalysatoren, Oszilloskope usw.) enthält. Die Informationen zu Kameras in hwdb wurden um ein Feld mit Informationen zum Kameratyp (normal oder Infrarot) und zur Objektivplatzierung (vorne oder hinten) erweitert.
  • Die Generierung unveränderlicher Netzwerkschnittstellennamen für in Xen verwendete Netfront-Geräte wurde aktiviert.
  • Die Analyse von Kerndateien durch das Dienstprogramm systemd-coredump basierend auf den libdw/libelf-Bibliotheken wird jetzt in einem separaten Prozess durchgeführt, isoliert in einer Sandbox-Umgebung.
  • systemd-importd hat Unterstützung für die Umgebungsvariablen $SYSTEMD_IMPORT_BTRFS_SUBVOL, $SYSTEMD_IMPORT_BTRFS_QUOTA, $SYSTEMD_IMPORT_SYNC hinzugefügt, mit denen Sie die Generierung von Btrfs-Unterpartitionen deaktivieren sowie Kontingente und Festplattensynchronisierung konfigurieren können.
  • In systemd-journald wird auf Dateisystemen, die den Copy-on-Write-Modus unterstützen, der COW-Modus für archivierte Journale wieder aktiviert, sodass diese mit Btrfs komprimiert werden können.
  • systemd-journald implementiert die Deduplizierung identischer Felder in einer einzelnen Nachricht, die in der Phase vor dem Platzieren der Nachricht im Journal durchgeführt wird.
  • Option „--show“ zum Shutdown-Befehl hinzugefügt, um das geplante Herunterfahren anzuzeigen.

Source: opennet.ru

Kommentar hinzufügen