systemd Systemmanager Version 243

Nach fünf Monaten Entwicklungszeit eingereicht Systemmanager-Release System 243. Zu den Neuerungen zählen die Integration eines Handlers für wenig Speicher im System in PID 1, die Unterstützung für das Anhängen eigener BPF-Programme zum Filtern des Einheitenverkehrs, zahlreiche neue Optionen für systemd-networkd, einen Modus zur Überwachung der Netzwerkbandbreite Schnittstellen, standardmäßige Aktivierung von 64-Bit-PID-Nummern anstelle von 22-Bit auf 16-Bit-Systemen, Übergang zu einer einheitlichen cgroups-Hierarchie, Aufnahme in systemd-network-generator.

Wichtigste Änderungen:

  • Dem PID 1-Handler wurde die Erkennung von vom Kernel generierten Signalen über nicht genügend Speicher (Out-Of-Memory, OOM) hinzugefügt, um Einheiten, die das Speicherverbrauchslimit erreicht haben, in einen Sonderzustand zu überführen, mit der optionalen Möglichkeit, sie zum Beenden zu erzwingen oder aufhören;
  • Für Unit-Dateien gibt es neue Parameter IPIngressFilterPath und
    IPEgressFilterPath, mit dem Sie BPF-Programme mit beliebigen Handlern verbinden können, um ein- und ausgehende IP-Pakete zu filtern, die von mit dieser Einheit verbundenen Prozessen generiert werden. Mit den vorgeschlagenen Funktionen können Sie eine Art Firewall für Systemdienste erstellen. Schreibbeispiel ein einfacher Netzwerkfilter basierend auf BPF;

  • Der Befehl „clean“ wurde zum Dienstprogramm systemctl hinzugefügt, um den Cache, Laufzeitdateien, Statusinformationen und Protokollverzeichnisse zu löschen.
  • systemd-networkd fügt Unterstützung für MACsec-, nlmon-, IPVTAP- und Xfrm-Netzwerkschnittstellen hinzu;
  • systemd-networkd implementiert die separate Konfiguration von DHCPv4- und DHCPv6-Stacks über die Abschnitte „[DHCPv4]“ und „[DHCPv6]“ in der Konfigurationsdatei. Die Option „RoutesToDNS“ wurde hinzugefügt, um eine separate Route zum DNS-Server hinzuzufügen, der in den vom DHCP-Server empfangenen Parametern angegeben ist (so dass der Datenverkehr zum DNS über denselben Link gesendet wird wie die vom DHCP empfangene Hauptroute). Für DHCPv4 wurden neue Optionen hinzugefügt: MaxAttempts – maximale Anzahl von Anfragen zum Erhalten einer Adresse, BlackList – schwarze Liste der DHCP-Server, SendRelease – aktiviert das Senden von DHCP-RELEASE-Nachrichten, wenn die Sitzung endet;
  • Dem Dienstprogramm systemd-analyze wurden neue Befehle hinzugefügt:
    • „systemd-analyze timestamp“ – Zeitanalyse und -konvertierung;
    • „systemd-analyze timespan“ – Analyse und Umrechnung von Zeiträumen;
    • „systemd-analyze condition“ – ConditionXYZ-Ausdrücke analysieren und testen;
    • „systemd-analyze exit-status“ – Parsen und Konvertieren von Exit-Codes von Zahlen in Namen und umgekehrt;
    • „systemd-analyze unit-files“ – Listet alle Dateipfade für Units und Unit-Aliase auf.
  • Optionen SuccessExitStatus, RestartPreventExitStatus und
    RestartForceExitStatus unterstützt jetzt nicht nur numerische Rückkehrcodes, sondern auch deren Textbezeichner (z. B. „DATAERR“). Mit dem Befehl „sytemd-analyze exit-status“ können Sie die Liste der den Bezeichnern zugewiesenen Codes anzeigen.

  • Dem Dienstprogramm networkctl wurde der Befehl „delete“ zum Löschen virtueller Netzwerkgeräte sowie die Option „—stats“ zum Anzeigen von Gerätestatistiken hinzugefügt.
  • Die Einstellungen „SpeedMeter“ und „SpeedMeterIntervalSec“ wurden zur Datei „networkd.conf“ hinzugefügt, um den Durchsatz von Netzwerkschnittstellen regelmäßig zu messen. Aus den Messergebnissen gewonnene Statistiken können in der Ausgabe des Befehls „networkctl status“ eingesehen werden;
  • Neues Dienstprogramm systemd-network-generator zum Generieren von Dateien hinzugefügt
    .network, .netdev und .link basierend auf IP-Einstellungen, die beim Start über die Linux-Kernel-Befehlszeile im Dracut-Einstellungsformat übergeben werden;

  • Der sysctl-Wert „kernel.pid_max“ auf 64-Bit-Systemen ist jetzt standardmäßig auf 4194304 (22-Bit-PIDs statt 16-Bit) eingestellt, was die Wahrscheinlichkeit von Kollisionen bei der Zuweisung von PIDs verringert und die Begrenzung der Anzahl gleichzeitiger PIDs erhöht laufende Prozesse und wirkt sich positiv auf die Sicherheit aus. Die Änderung könnte möglicherweise zu Kompatibilitätsproblemen führen, solche Probleme wurden jedoch in der Praxis bisher nicht gemeldet;
  • Standardmäßig wechselt die Build-Phase zur einheitlichen Hierarchie cgroups-v2 („-Ddefault-hierarchy=unified“). Zuvor war der Standardmodus der Hybridmodus („-Ddefault-hierarchy=hybrid“);
  • Das Verhalten des Systemaufruffilters (SystemCallFilter) wurde geändert, der im Falle eines verbotenen Systemaufrufs nun den gesamten Prozess und nicht einzelne Threads beendet, da das Beenden einzelner Threads zu unvorhersehbaren Problemen führen könnte. Die Änderungen gelten nur, wenn Sie über Linux-Kernel 4.14+ und libseccomp 2.4.0+ verfügen;
  • Nicht privilegierte Programme erhalten die Möglichkeit, ICMP-Echo-Pakete (Ping) zu senden, indem sie den Sysctl „net.ipv4.ping_group_range“ für den gesamten Gruppenbereich (für alle Prozesse) festlegen;
  • Um den Erstellungsprozess zu beschleunigen, wurde die Generierung von Man-Handbüchern standardmäßig gestoppt (um eine vollständige Dokumentation zu erstellen, müssen Sie die Option „-Dman=true“ oder „-Dhtml=true“ für Handbücher im HTML-Format verwenden). Um die Anzeige der Dokumentation zu erleichtern, sind zwei Skripte enthalten: build/man/man und build/man/html zum Generieren und Anzeigen von Handbüchern von Interesse;
  • Um Domänennamen mit Zeichen aus nationalen Alphabeten zu verarbeiten, wird standardmäßig die Bibliothek libidn2 verwendet (um libidn zurückzugeben, verwenden Sie die Option „-Dlibidn=true“);
  • Die Unterstützung für die ausführbare Datei /usr/sbin/halt.local, die Funktionen bereitstellte, die in Distributionen nicht weit verbreitet waren, wurde eingestellt. Um den Start von Befehlen beim Herunterfahren zu organisieren, wird empfohlen, Skripte in /usr/lib/systemd/system-shutdown/ zu verwenden oder eine neue Einheit zu definieren, die von final.target abhängt;
  • In der letzten Phase des Herunterfahrens erhöht systemd nun automatisch die Protokollebene im sysctl „kernel.printk“, wodurch das Problem mit der Anzeige von Ereignissen im Protokoll gelöst wird, die in späteren Phasen des Herunterfahrens aufgetreten sind, wenn die regulären Protokollierungsdämonen bereits abgeschlossen sind ;
  • In „journalctl“ und anderen Dienstprogrammen, die Protokolle anzeigen, werden Warnungen gelb und Prüfdatensätze blau hervorgehoben, um sie optisch aus der Masse hervorzuheben.
  • In der Umgebungsvariablen $PATH steht nun der Pfad zu bin/ vor dem Pfad zu sbin/, d. h. Wenn in beiden Verzeichnissen identische Namen ausführbarer Dateien vorhanden sind, wird die Datei aus bin/ ausgeführt;
  • systemd-logind bietet einen SetBrightness()-Aufruf, um die Bildschirmhelligkeit pro Sitzung sicher zu ändern;
  • Das Flag „--wait-for-initialization“ wurde zum Befehl „udevadm info“ hinzugefügt, um auf die Initialisierung des Geräts zu warten;
  • Während des Systemstarts zeigt der PID 1-Handler jetzt die Namen der Einheiten anstelle einer Zeile mit ihrer Beschreibung an. Um zum früheren Verhalten zurückzukehren, können Sie die Option StatusUnitFormat in /etc/systemd/system.conf oder die Kerneloption systemd.status_unit_format verwenden;
  • Option KExecWatchdogSec zu /etc/systemd/system.conf für Watchdog-PID 1 hinzugefügt, die das Timeout für den Neustart mit kexec angibt. Alte Einstellung
    ShutdownWatchdogSec wurde in RebootWatchdogSec umbenannt und definiert ein Timeout für Jobs beim Herunterfahren oder normalen Neustart;

  • Für Dienste wurde eine neue Option hinzugefügt ExecCondition, mit dem Sie Befehle angeben können, die vor ExecStartPre ausgeführt werden. Basierend auf dem vom Befehl zurückgegebenen Fehlercode wird über die weitere Ausführung der Einheit entschieden. Wenn Code 0 zurückgegeben wird, wird der Start der Einheit fortgesetzt, wenn er von 1 bis 254 ohne Fehlerflag endet, endet er mit 255 ein Fehlerflag;
  • Neuer Dienst systemd-pstore.service hinzugefügt, um Daten aus sys/fs/pstore/ zu extrahieren und zur weiteren Analyse in /var/lib/pstore zu speichern;
  • Dem Dienstprogramm timedatectl wurden neue Befehle zum Konfigurieren von NTP-Parametern für systemd-timesyncd in Bezug auf Netzwerkschnittstellen hinzugefügt.
  • Der Befehl „localectl list-locales“ zeigt keine anderen Gebietsschemas als UTF-8 mehr an;
  • Stellt sicher, dass Variablenzuweisungsfehler in sysctl.d/-Dateien ignoriert werden, wenn der Variablenname mit dem Zeichen „-“ beginnt;
  • Service systemd-random-seed.service ist nun vollständig für die Initialisierung des Entropiepools des Pseudozufallszahlengenerators des Linux-Kernels verantwortlich. Dienste, die ein korrekt initialisiertes /dev/urandom erfordern, sollten nach systemd-random-seed.service gestartet werden;
  • Der Systemd-Boot-Bootloader bietet die optionale Möglichkeit zur Unterstützung Seed-Datei mit zufälliger Reihenfolge in der EFI-Systempartition (ESP);
  • Dem Bootctl-Dienstprogramm wurden neue Befehle hinzugefügt: „bootctl random-seed“ zum Generieren einer Seed-Datei im ESP und „bootctl is-installed“ zum Überprüfen der Installation des Systemd-Boot-Bootloaders. bootctl wurde außerdem angepasst, um Warnungen über falsche Konfiguration von Boot-Einträgen anzuzeigen (z. B. wenn das Kernel-Image gelöscht wird, aber der Eintrag zum Laden übrig bleibt);
  • Bietet eine automatische Auswahl der Swap-Partition, wenn das System in den Ruhemodus wechselt. Die Auswahl der Partition richtet sich nach der für sie konfigurierten Priorität und bei identischen Prioritäten nach der Menge des freien Speicherplatzes;
  • Option „keyfile-timeout“ zu /etc/crypttab hinzugefügt, um festzulegen, wie lange das Gerät mit dem Verschlüsselungsschlüssel wartet, bevor es nach einem Passwort für den Zugriff auf die verschlüsselte Partition fragt;
  • Option „IOWeight“ hinzugefügt, um die I/O-Gewichtung für den BFQ-Scheduler festzulegen;
  • systemd-resolved fügte den „strengen“ Modus für DNS-over-TLS hinzu und implementierte die Möglichkeit, nur positive DNS-Antworten zwischenzuspeichern („Cache no-negative“ in „resolved.conf“);
  • Für VXLAN hat systemd-networkd eine GenericProtocolExtension-Option hinzugefügt, um VXLAN-Protokollerweiterungen zu aktivieren. Für VXLAN und GENEVE wurde die Option IPDoNotFragment hinzugefügt, um das Fragmentierungsverbotsflag für ausgehende Pakete zu setzen;
  • In systemd-networkd ist im Abschnitt „[Route]“ die Option FastOpenNoCookie aufgetaucht, um den Mechanismus zum schnellen Öffnen von TCP-Verbindungen (TFO – TCP Fast Open, RFC 7413) in Bezug auf einzelne Routen sowie die Option TTLPropagate zu aktivieren um TTL LSP (Label Switched Path) zu konfigurieren. Die Option „Typ“ bietet Unterstützung für die Routing-Modi Local, Broadcast, Anycast, Multicast, Any und xresolve;
  • Systemd-networkd bietet im Abschnitt „[Netzwerk]“ die Option „DefaultRouteOnDevice“, um automatisch eine Standardroute für ein bestimmtes Netzwerkgerät zu konfigurieren.
  • Systemd-networkd hat ProxyARP und hinzugefügt
    ProxyARPWifi zum Festlegen des Proxy-ARP-Verhaltens, MulticastRouter zum Festlegen von Routing-Parametern im Multicast-Modus, MulticastIGMPVersion zum Ändern der IGMP-Version (Internet Group Management Protocol) für Multicast;

  • Systemd-networkd hat Local-, Peer- und PeerPort-Optionen für FooOverUDP-Tunnel hinzugefügt, um die lokalen und Remote-IP-Adressen sowie die Netzwerk-Portnummer zu konfigurieren. Für TUN-Tunnel wurde die VnetHeader-Option hinzugefügt, um die GSO-Unterstützung (Generic Segment Offload) zu konfigurieren.
  • In systemd-networkd ist in den .network- und .link-Dateien im Abschnitt [Match] eine Eigenschaftsoption aufgetaucht, mit der Sie Geräte anhand ihrer spezifischen Eigenschaften in udev identifizieren können;
  • In systemd-networkd wurde für Tunnel eine AssignToLoopback-Option hinzugefügt, die steuert, ob das Ende des Tunnels dem Loopback-Gerät „lo“ zugewiesen wird;
  • systemd-networkd aktiviert automatisch den IPv6-Stack, wenn er über sysctl blockiert wird; unlock_ipv6 – IPv6 wird aktiviert, wenn IPv6-Einstellungen (statisch oder DHCPv6) für die Netzwerkschnittstelle definiert sind, andernfalls ändert sich der bereits festgelegte sysctl-Wert nicht;
  • In .network-Dateien wurde die CriticalConnection-Einstellung durch die KeepConfiguration-Option ersetzt, die mehr Möglichkeiten zum Definieren von Situationen („yes“, „static“, „dhcp-on-stop“, „dhcp“) bietet, in denen systemd-networkd ausgeführt werden soll bestehende Verbindungen beim Start nicht berühren;
  • Sicherheitslücke behoben CVE-2019-15718, verursacht durch mangelnde Zugriffskontrolle auf die D-Bus-Schnittstelle, systembedingt behoben. Das Problem ermöglicht es einem nicht privilegierten Benutzer, Vorgänge auszuführen, die nur Administratoren zur Verfügung stehen, z. B. das Ändern von DNS-Einstellungen und das Weiterleiten von DNS-Anfragen an einen nicht autorisierten Server.
  • Sicherheitslücke behoben CVE-2019-9619hing damit zusammen, dass pam_systemd für nicht interaktive Sitzungen nicht aktiviert wurde, was ein Spoofing der aktiven Sitzung ermöglicht.

Source: opennet.ru

Kommentar hinzufügen