systemd system manager verze 243

Po pěti měsících vývoje prezentovány vydání správce systému systémové 243. Mezi inovacemi můžeme zaznamenat integraci do PID 1 handleru pro nedostatek paměti v systému, podporu pro připojení vlastních BPF programů pro filtrování provozu jednotek, řadu nových možností pro systemd-networkd, režim pro sledování šířky pásma sítě rozhraní, umožňující ve výchozím nastavení na 64bitových systémech 22bitová čísla PID namísto 16bitových, přechod na sjednocenou hierarchii cgroups, zahrnutí do systemd-network-generator.

Hlavní změny:

  • Do obslužné rutiny PID 1 bylo přidáno rozpoznávání signálů generovaných jádrem o nedostatku paměti (Out-Of-Memory, OOM), aby se jednotky, které dosáhly limitu spotřeby paměti, převedly do speciálního stavu s volitelnou možností vynutit jejich ukončení. nebo zastavit;
  • Pro soubory jednotek nové parametry IPIngressFilterPath a
    IPEgressFilterPath, který umožňuje propojit BPF programy s libovolnými handlery pro filtrování příchozích a odchozích IP paketů generovaných procesy spojenými s touto jednotkou. Navržené funkce umožňují vytvořit jakýsi firewall pro služby systemd. Psaní příkladu jednoduchý síťový filtr založený na BPF;

  • Do obslužného programu systemctl byl přidán příkaz „clean“ pro odstranění mezipaměti, souborů runtime, stavových informací a adresářů protokolů;
  • systemd-networkd přidává podporu pro síťová rozhraní MACsec, nlmon, IPVTAP a Xfrm;
  • systemd-networkd implementuje samostatnou konfiguraci zásobníků DHCPv4 a DHCPv6 prostřednictvím sekcí „[DHCPv4]“ a „[DHCPv6]“ v konfiguračním souboru. Přidána možnost RoutesToDNS pro přidání samostatné trasy na server DNS zadaný v parametrech přijatých ze serveru DHCP (takže provoz na DNS je odesílán přes stejnou linku jako hlavní trasa přijatá z DHCP). Pro DHCPv4 byly přidány nové možnosti: MaxAttempts - maximální počet požadavků na získání adresy, BlackList - černá listina DHCP serverů, SendRelease - povolení odesílání zpráv DHCP RELEASE při ukončení relace;
  • Do obslužného programu systemd-analyze byly přidány nové příkazy:
    • „systemd-analyze timestamp“ - časová analýza a konverze;
    • „systemd-analyze timespan“ - analýza a konverze časových období;
    • “systemd-analyze condition” - analýza a testování výrazů ConditionXYZ;
    • „systemd-analyze exit-status“ - analýza a převod výstupních kódů z čísel na jména a naopak;
    • "systemd-analyze unit-files" - Vypíše všechny cesty k souborům pro jednotky a aliasy jednotek.
  • Možnosti SuccessExitStatus, RestartPreventExitStatus a
    RestartForceExitStatus nyní podporuje nejen číselné návratové kódy, ale také jejich textové identifikátory (například „DATAERR“). Seznam kódů přiřazených k identifikátorům můžete zobrazit pomocí příkazu „sytemd-analyze exit-status“;

  • Do nástroje networkctl byl přidán příkaz „delete“ pro odstranění virtuálních síťových zařízení a také možnost „—stats“ pro zobrazení statistik zařízení;
  • Do networkd.conf byla přidána nastavení SpeedMeter a SpeedMeterIntervalSec pro pravidelné měření propustnosti síťových rozhraní. Statistiky získané z výsledků měření lze zobrazit na výstupu příkazu 'networkctl status';
  • Přidán nový nástroj systemd-network-generator pro generování souborů
    .network, .netdev a .link na základě nastavení IP předávaných při spuštění přes příkazový řádek linuxového jádra ve formátu nastavení Dracut;

  • Hodnota sysctl "kernel.pid_max" na 64bitových systémech je nyní standardně nastavena na 4194304 (22bitové PID místo 16bitových), což snižuje pravděpodobnost kolizí při přiřazování PID, zvyšuje limit počtu současně běžících procesů a má pozitivní dopad na bezpečnost. Změna by mohla potenciálně vést k problémům s kompatibilitou, ale takové problémy nebyly dosud v praxi hlášeny;
  • Ve výchozím nastavení se fáze sestavení přepne na sjednocenou hierarchii cgroups-v2 („-Ddefault-hierarchy=unified“). Dříve byl výchozí hybridní režim („-Ddefault-hierarchy=hybrid“);
  • Bylo změněno chování filtru systémových volání (SystemCallFilter), který v případě zakázaného systémového volání nyní ukončuje celý proces, nikoli jednotlivá vlákna, protože ukončení jednotlivých vláken by mohlo vést k nepředvídatelným problémům. Změny platí pouze v případě, že máte jádro Linuxu 4.14+ a libseccomp 2.4.0+;
  • Neprivilegovaným programům je dána možnost odesílat pakety ICMP Echo (ping) nastavením sysctl "net.ipv4.ping_group_range" pro celý rozsah skupin (pro všechny procesy);
  • Pro urychlení procesu sestavování bylo generování manuálů ve výchozím nastavení zastaveno (pro vytvoření úplné dokumentace musíte použít volbu „-Dman=true“ nebo „-Dhtml=true“ pro manuály ve formátu html). Pro snazší prohlížení dokumentace jsou zahrnuty dva skripty: build/man/man a build/man/html pro generování a prohlížení zajímavých manuálů;
  • Pro zpracování doménových jmen se znaky z národních abeced se standardně používá knihovna libidn2 (pro vrácení libidn použijte volbu „-Dlibidn=true“);
  • Podpora pro spustitelný soubor /usr/sbin/halt.local, který poskytoval funkce, které nebyly široce distribuovány v distribucích, byla ukončena. Pro organizaci spouštění příkazů při vypínání se doporučuje použít skripty v /usr/lib/systemd/system-shutdown/ nebo definovat novou jednotku, která závisí na final.target;
  • V poslední fázi vypnutí nyní systemd automaticky zvyšuje úroveň logu v sysctl „kernel.printk“, což řeší problém se zobrazováním událostí v logu, ke kterým došlo v pozdějších fázích vypnutí, kdy již běžní logovací démoni skončili. ;
  • V journalctl a dalších nástrojích zobrazujících protokoly jsou varování zvýrazněna žlutě a záznamy auditu jsou zvýrazněny modře, aby byly vizuálně zvýrazněny z davu;
  • V proměnné prostředí $PATH je cesta k bin/ nyní před cestou k sbin/, tzn. pokud jsou v obou adresářích shodná jména spustitelných souborů, spustí se soubor z bin/;
  • systemd-logind poskytuje volání SetBrightness() pro bezpečnou změnu jasu obrazovky pro každou relaci;
  • Do příkazu „udevadm info“ byl přidán příznak „--wait-for-initialization“, aby se čekalo na inicializaci zařízení;
  • Během spouštění systému nyní obsluha PID 1 zobrazuje názvy jednotek namísto řádku s jejich popisem. Chcete-li se vrátit k minulému chování, můžete použít volbu StatusUnitFormat v /etc/systemd/system.conf nebo volbu jádra systemd.status_unit_format;
  • Přidána možnost KExecWatchdogSec do /etc/systemd/system.conf pro watchdog PID 1, která určuje časový limit pro restartování pomocí kexec. Staré nastavení
    ShutdownWatchdogSec byl přejmenován na RebootWatchdogSec a definuje časový limit pro úlohy během vypnutí nebo normálního restartu;

  • U služeb byla přidána nová možnost ExecCondition, který umožňuje zadat příkazy, které budou provedeny před ExecStartPre. Na základě chybového kódu vráceného příkazem se rozhodne o dalším provádění jednotky - pokud je vrácen kód 0, spuštění jednotky pokračuje, pokud od 1 do 254 tiše skončí bez příznaku selhání, pokud 255 skončí s příznak selhání;
  • Přidána nová služba systemd-pstore.service pro extrahování dat ze sys/fs/pstore/ a z uložení do /var/lib/pstore pro další analýzu;
  • Do obslužného programu timedatectl byly přidány nové příkazy pro konfiguraci parametrů NTP pro systemd-timesyncd ve vztahu k síťovým rozhraním;
  • Příkaz "localectl list-locales" již nezobrazuje jiná národní prostředí než UTF-8;
  • Zajišťuje, že chyby přiřazení proměnných v souborech sysctl.d/ budou ignorovány, pokud název proměnné začíná znakem „-“;
  • Služba systemd-random-seed.service je nyní plně zodpovědný za inicializaci fondu entropie generátoru pseudonáhodných čísel jádra Linuxu. Služby, které vyžadují správně inicializovaný /dev/urandom, by měly být spuštěny po systemd-random-seed.service;
  • Zavaděč systemd-boot poskytuje volitelnou možnost podpory seed soubor s náhodnou sekvencí v systémovém oddílu EFI (ESP);
  • Do nástroje bootctl byly přidány nové příkazy: „bootctl random-seed“ pro generování počátečního souboru v ESP a „bootctl is-installed“ pro kontrolu instalace zavaděče systemd-boot. bootctl byl také upraven tak, aby zobrazoval varování o nesprávné konfiguraci zaváděcích položek (například když je obraz jádra smazán, ale položka pro jeho načtení je ponechána);
  • Poskytuje automatický výběr odkládacího oddílu, když systém přejde do režimu spánku. Oddíl se vybírá v závislosti na prioritě, která je pro něj nakonfigurována, a v případě stejných priorit na množství volného místa;
  • Do /etc/crypttab byla přidána volba keyfile-timeout pro nastavení, jak dlouho bude zařízení se šifrovacím klíčem čekat, než bude vyzváno k zadání hesla pro přístup k šifrovanému oddílu;
  • Přidána možnost IOWeight pro nastavení váhy I/O pro plánovač BFQ;
  • systemd-resolved přidal „přísný“ režim pro DNS-over-TLS a implementoval možnost ukládat do mezipaměti pouze pozitivní odpovědi DNS ("Cache no-negative" v resolved.conf);
  • Pro VXLAN přidal systemd-networkd možnost GenericProtocolExtension pro povolení rozšíření protokolu VXLAN. Pro VXLAN a GENEVE byla přidána možnost IPDoNotFragment pro nastavení příznaku zákazu fragmentace pro odchozí pakety;
  • V systemd-networkd se v sekci „[Route]“ objevila možnost FastOpenNoCookie umožňující mechanismus pro rychlé otevírání TCP spojení (TFO - TCP Fast Open, RFC 7413) ve vztahu k jednotlivým trasám a také možnost TTLPropagate. pro konfiguraci TTL LSP (Label Switched Path). Možnost „Typ“ poskytuje podporu pro režimy místního, broadcast, anycast, multicast, any a xresolve směrování;
  • Systemd-networkd nabízí možnost DefaultRouteOnDevice v sekci „[Network]“ pro automatickou konfiguraci výchozí trasy pro dané síťové zařízení;
  • Systemd-networkd přidal ProxyARP a
    ProxyARPWifi pro nastavení chování proxy ARP, MulticastRouter pro nastavení parametrů směrování v režimu multicast, MulticastIGMPVersion pro změnu verze IGMP (Internet Group Management Protocol) pro multicast;

  • Systemd-networkd přidal možnosti Local, Peer a PeerPort pro tunely FooOverUDP pro konfiguraci lokální a vzdálené IP adresy a také čísla síťového portu. Pro tunely TUN byla přidána možnost VnetHeader pro konfiguraci podpory GSO (Generic Segment Offload);
  • V systemd-networkd se v souborech .network a .link v sekci [Match] objevila možnost Property, která umožňuje identifikovat zařízení podle jejich specifických vlastností v udev;
  • V systemd-networkd byla pro tunely přidána možnost AssignToLoopback, která řídí, zda je konec tunelu přiřazen zařízení zpětné smyčky „lo“;
  • systemd-networkd automaticky aktivuje zásobník IPv6, pokud je blokován přes sysctl disable_ipv6 - IPv6 se aktivuje, pokud je pro síťové rozhraní definováno nastavení IPv6 (statické nebo DHCPv6), jinak se již nastavená hodnota sysctl nemění;
  • V souborech .network bylo nastavení CriticalConnection nahrazeno možností KeepConfiguration, která poskytuje více prostředků pro definování situací („ano“, „static“, „dhcp-on-stop“, „dhcp“), ve kterých by měl systemd-networkd nedotýkat se existujících připojení při spouštění;
  • Zranitelnost opravena CVE-2019-15718, způsobené nedostatečným řízením přístupu k rozhraní D-Bus s rozlišením systemd. Tento problém umožňuje neprivilegovanému uživateli provádět operace, které jsou dostupné pouze správcům, jako je změna nastavení DNS a směrování dotazů DNS na podvodný server;
  • Zranitelnost opravena CVE-2019-9619související s nepovolením pam_systemd pro neinteraktivní relace, což umožňuje falšování aktivní relace.

Zdroj: opennet.ru

Přidat komentář