Open Source im professionellen Einsatz

Systemd 233 verbessert Crypto-Support und Umgang mit Environment-Variablen

02.03.2017

Systemd 233 lädt Environment-Variablen aus Textdateien, kommt besser mit verschlüsselten Festplatten zurecht und bringt neue Optionen im Containerbereich mit.

793

Es dauert recht lange, sich durch die Liste an Änderungen für Systemd 233 zu fräsen, die Ausführlichkeit der Release-Ankündigung ist wie immer erschöpfend und lobenswert zugleich. Für Details werfen Admins am besten einen Blick auf die Ankündigung selbst, ein paar Dinge stechen aber heraus.

Umgebungsvariablen und Cgroups

Instanzen des Systemd User Manager laden nun Umgebungsvariablen aus Textdateien, die ein Environment-Generator beim Laden der Konfiguration auf Wunsch einliest. So integrieren Admins Umgebungsvariablen in den Environment Block, aus dem sich gestartete Services dann bedienen. Die Variablen legt der Admin wahlweise unter "/etc/environment.d/", "~/.config/environment.d" oder "/usr/lib/environment.d/" ab.

Am Support für Cgroups haben die Entwickler ebenfalls geschraubt, der gemischte Control-Groups-Modus (Option "hybrid") unterstützt nun Cgroups in Version 1 besser. Den mit der Option "hybrid" erzielten Mischbetrieb von Cgroups v1 und v2 empfiehlt die Ankündigung aber nur für Distributionen, die zur Release anstehen. Entwicklungsvarianten, wie etwa Fedora Rawhide, sollten besser die Option "unified" verwenden, die allein auf die neue Cgroups-Version 2 setzt.

Systemd-networkd und Systemd-nspawn

Den ".network"-Konfigurationsdateien von Systemd-networkd stehen nun ein paar neue Optionen zur Verfügung. Setzt der Admin "ListenPort=" in der "[DHCP]"-Sektion ein, horcht der DHCP-Client auf dem UDP-Clientport. Über "Unmanaged=" lassen sich ein oder mehrere Devices von der Betreuung durch Systemd ausschließen. Über "MulticastDNS=yes" löst der Host Namen entfernter Host auf und antwortet auf mDNS A- und AAAA-Anfragen. Beim Bonding, also dem Zusammenschalten von Netzwerk-Devices, helfen die beiden Schalter "ActiveSlave=" und "PirimarySlave=". Nicht zuletzt konfiguriert "IPv6ProxyNDPAddress=" IPv6 Proxy NDP-Adressen.

Systemd-nspawn bringt Support für flüchtige Bootvorgänge von Disk-Images mit, wobei sich "--ephemeral" und "--image=" kombinieren lassen und das Booten auch für normale Verzeichnisse gilt, die nicht Btr-FS als Dateisystem verwenden. Unterstützt das Dateisystem allerdings keine Reflinks und FS-Snapshots, braucht der initiale Copy-Vorgang deutlich mehr Ressourcen. Die Option "--image" erlaubt es zudem auch, Raw Devices einzubinden.

Über die Schalter "Overlay=" und "OverlayReadOnly=" definieren ".nspawn"-Konfigurationsdateien Overlay Mounts, über "--bind=" und "--overlay=" startet Systemd-nspawn Overlay- und Bind-mounts, bei denen die Quelle im Container-Tree liegt. Dem Pfad dorthin müssen Admins dann ein "+" voranstellen. Ansonsten taugen beide Optionen dafür, ein temporäres Source-Dir in "/var/tmp" zu schaffen, das verschwindet, sobald der Admin den Container deaktiviert.

Eine weitere neue Option für Unit Files ist "RootImage=". Sie erlaubt es, das Root-Directory für einen Dienst aus einem Image zu laden, nicht aus einem nromalen Verzeichnis. Der neue Schalter "--pivot-root=switch" ordnet das Root-Dir in einem Container einem bestimmten Mountpunkt zu, während das ursprüngliche Root-Dir an einen anderen Ort wandert. Nicht zuletzt kann Nspawn nun mit LUKS verschlüsselte und mit Verity geschützte Partitionen einrichten.

LUKS und Verity

Generell unterstützt Systemd 233 Verschlüsselung besser. das fängt damit an, dass es die Kerneloptionen "CONFIG_CRYPTO_USER_API_HASH", "CONFIG_CRYPTO_HMAC" und "CONFIG_CRYPTO_SHA256" voraussetzt. Ein "systemd-verity-generator" erzeugt analog zum "systemd-cryptsetup-generator" Verity-Root-Partition, wenn Systemd bootet. Der "systemd-gpt-auto-generator" unterstützt das Aufsetzen von verschlüsselten Root-Partitionen. Außerdem ist experimentell das neue Tool "/usr/lib/systemd/system-dissect" an Bord, das Disk-Images nach der Bootable Partition Specification untersucht. Es kann Images mit komplexen Partitionierungen in ein lokales Verzeichnis mounten, um sie zu untersuchen. Dazu zählen auch solche mit LUKS und Verity-Partitionen.

Ansonsten verwenden alle Pythonskripte von Systemd Python 3, laufen Systemd Unit Tests jetzt auch ohne Source- oder Build-Verzeichnisse, funktionieren in Unit Files die Specifier "%c", "%r", "%R" nicht mehr, verwendet die Debug-Shell standardmäßig "/bin/sh" oder beschränkt die neue Option "RestrictNamespaces=" für Unit Files den Zugriff auf die verschiedenen Process Namespaces, die der Kernel anbietet. Eine Service Unit kann dann keine zusätzlichen Dateisysteme, Netzwerke oder User anlegen.

Und vieles mehr

In der Datei "/etc/fstab" dürfen Admins nun systemd-spezifische Mountoptionen wie "x-systemd.mount-timeout=", "x-systemd.device-bound" oder "x-systemd.after=" und "x-systemd.before=" verwenden. Der "systemd-fstab-generator" prüft nun auf die Kerneloption "systemd.volatile=". Das folgt dem Konzept von "systemd-nspawn --volatile=", gilt aber für nicht-virtuelle Bootvorgänge.

Herunterladen lässt sich die neue Version, indem Interessierte dem Link in der Ankündigung folgen. Darin lassen sich auch weitere Details zur neuen Version nachlesen. Informationen zum Umgang mit Umgebungsvariablen liefert ein Blogeintrag hier.

Ähnliche Artikel

  • Systemd-nspawn

    Ursprünglich als Tool für Systemd-Tester gedacht, mausert sich Systemd-nspawn zu einer eigenständigen Containerlösung. Bei Rkt von Core OS ist es bereits als Low-Level-Tool im Einsatz. Rkt-Entwickler Jonathan Boulle stellt Systemd-nspawn vor.

  • Systemd 228 mit UTC-Support für Timestamps und Task-Limits

    Eine neue Version 228 von Systemd ist erschienen. Sie verändert unter anderem den Umgang mit Units, unterstützt UTC-Timestamps und bringt zusätzliche Schalter für Journalctl und Systemd-nspawn mit.

  • Systemd 216 verbessert DNS-Auflösung

    Laut Systemd-Entwickler Lennart Poettering handelt es sich bei Systemd 216 um eine Major Release, die insbesondere die DNS-Auflösung komplettiert.

  • Systemd 229 mit neuer Coredump-Logik und DNSSEC-Validierung

    Die Macher von Systemd haben Version 229 veröffentlicht, das größere und Änderungen im Detail mitbringt. Unter anderem erleichtert Systemd den Umgang mit DNSSEC, die neue Coredump-Logik soll sicherer sein.

  • Systemd 219 veröffentlicht

    Die Arbeit an Systemd schreitet zügig voran. Lennart Poettering hat die neue Version 219 angekündigt, die unter anderem den Umgang mit Containern und Btrfs erleichtert.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.