Vydání systémového managera systemd 243

Po pěti měsících vývoje byl představen vydání systémového správce systemd 243. Mezi novinkami lze zmínit integraci zpracovatele nedostatku paměti v systému do PID 1, podporu připojení vlastních programech BPF pro filtrování provozu jednotek, řadu nových možností pro systemd-networkd, režim sledování propustnosti síťových rozhraní, zavedení 22bitových čísel PID místo 16bitových ve 64bitových systémech jako výchozí, přechod na jednotnou hierarchii cgroups a zahrnutí do systemd-network-generator.

Hlavní změny:

  • Do zpracovatele PID 1 byla přidána detekce signálů generovaných jádrem o nedostatku paměti (Out-Of-Memory, OOM) pro převedení jednotek, které dosáhly limitu ve využití paměti, do speciálního stavu s volitelnou možností jejich vynuceného ukončení nebo zastavení;
  • Pro unit-soubory byly implementovány nové parametry IPIngressFilterPath a
    IPEgressFilterPath, které umožňují připojit BPF programy s libovolnými zpracovatelskými funkcemi pro filtrování příchozích a odchozích IP paketů generovaných procesy souvisejícími s danou jednotkou. Navrhované možnosti umožňují vytvářet jakési firewall pro služby systemd. Příklad napsání jednoduchého síťového filtr na bázi BPF;
  • Do utility systemctl byla přidána příkaz „clean“ pro odstranění cache, runtime-souborů, informací o stavu a adresářů z logy;
  • Do systemd-networkd byla přidána podpora síťových rozhraní MACsec, nlmon, IPVTAP a Xfrm;
  • V systemd-networkd byla implementována oddělená konfigurace 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 k DNS serveru uvedenému v parametrech získaných od DHCP serveru (aby provoz na DNS byl odesílán stejným linkem jako hlavní trasa, získaná od 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í odeslání zpráv DHCP RELEASE při ukončení relace;
  • Do utility systemd-analyze byly přidány nové příkazy:
    • „systemd-analyze timestamp“ — analýza a převod času;
    • „systemd-analyze timespan“ — analýza a převod časových intervalů;
    • „systemd-analyze condition“ — analýza a testování výrazů ConditionXYZ;
    • „systemd-analyze exit-status“ — analýza a převod kódů ukončení ze čísel na názvy a naopak;
    • Příkaz «systemd-analyze unit-files» vypíše seznam všech cest k jednotkovým souborům a aliasům jednotek.
  • Možnosti SuccessExitStatus, RestartPreventExitStatus a
    RestartForceExitStatus nyní podporují nejen číselné kódy návratu, ale i jejich textové identifikátory (například „DATAERR“). Seznam vazby kódů na identifikátory lze zobrazit pomocí příkazu „systemd-analyze exit-status“;
  • Do nástroje networkctl byla přidána příkaz „delete“ pro odstranění virtuálních síťových zařízení a také volba „—stats“ pro zobrazení statistik zařízení;
  • Do souboru networkd.conf byly přidány možnosti SpeedMeter a SpeedMeterIntervalSec pro pravidelné měření propustnosti síťových rozhraní. Statistika získaná z měření je k dispozici ve výstupu příkazu ‘networkctl status’;
  • Byl 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í prostřednictvím příkazového řádku jádra Linux ve formátu nastavení Dracut;
  • Hodnota sysctl „kernel.pid_max“ na 64bitových systémech je nyní ve výchozím nastavení nastavena na 4194304 (22bitové PID namísto 16bitových), což snižuje pravděpodobnost kolizí při přiřazování PID, zvyšuje limit pro počet současně spuštěných procesů a pozitivně se odráží na bezpečnosti. Změna může potenciálně vést k problémům s kompatibilitou, ale v praxi o takových problémech zatím nebyly hlášeny;
  • Ve výchozím nastavení došlo během sestavení k přechodu na jednotnou hierarchii cgroups-v2 („-Ddefault-hierarchy=unified“). Dříve byla ve výchozím nastavení nastavena hybridní varianta („-Ddefault-hierarchy=hybrid“);
  • Bylo změněno chování filtru systémových volání (SystemCallFilter), který v případě pokusu o zakázané systémové volání nyní ukončuje celý proces, nikoli jednotlivé vláknové, protože ukončení jednotlivých vláken mohlo vést k nepředvídatelným problémům. Změna platí pouze při přítomnosti jádra Linux 4.14+ a libseccomp 2.4.0+;
  • Nepřiděleným programům byla umožněna možnost odesílat pakety ICMP Echo (ping) prostřednictvím nastavení sysctl „net.ipv4.ping_group_range“ pro celý rozsah skupin (pro všechny procesy);
  • Pro urychlení procesu sestavení je ve výchozím nastavení zastavena generace man-stránek (pro sestavení úplné dokumentace je nutné použít možnost „-Dman=true“ nebo „-Dhtml=true“ pro stránky ve formátu html). Pro usnadnění prohlížení dokumentace jsou součástí dva skripty build/man/man a build/man/html pro generování a náhled požadovaných příruček;
  • Pro zpracování doménových jmen se znaky národních alfabetů je ve výchozím nastavení použita knihovna libidn2 (pro navrácení libidn je třeba použít možnost „-Dlibidn=true“);
  • Byla zastavena podpora spustitelného souboru /usr/sbin/halt.local, který poskytoval funkčnost, která se v distribucích nedostatečně rozšířila. Pro organizaci spuštění příkazů při vypnutí se doporučuje použít skripty v /usr/lib/systemd/system-shutdown/ nebo definovat novou jednotku závislou na final.target;
  • V poslední fázi vypínání systemd nyní automaticky zvyšuje úroveň logování v sysctl „kernel.printk“, což řeší problém s zobrazováním v logu událostí, které nastaly v pozdních fázích vypínání, kdy již byly standardní démony logování ukončeny;
  • V journalctl a dalších nástrojích pro zobrazování logů byla zajištěna zvýraznění varování žlutou barvou a záznamů auditu modrou barvou pro jejich vizuální odlišení od ostatních;
  • V proměnné prostředí $PATH je cesta k bin/ nyní dříve než cesta k sbin/, tj. v případě shodných názvů spustitelných souborů v obou adresářích bude proveden soubor z bin/;
  • V systemd-logind byl zajištěn volání SetBrightness() pro bezpečné změny jasu obrazovky pro každou relaci;
  • Do příkazu „udevadm info“ byla přidána přepínač „—wait-for-initialization“ pro čekání na dokončení inicializace zařízení;
  • V průběhu zavádění systému nyní zpracovatel PID 1 zobrazuje na obrazovce názvy jednotek, místo řetězce s jejich popisem. Pro vrácení předchozího chování lze použít možnost StatusUnitFormat v /etc/systemd/system.conf nebo parametr jádra systemd.status_unit_format;
  • V /etc/systemd/system.conf pro watchdog v PID 1 byla přidána možnost KExecWatchdogSec, která určuje časový limit pro restart pomocí kexec. Staré nastavení
    ShutdownWatchdogSec byla přejmenována na RebootWatchdogSec a určuje časový limit pro realizaci během vypínání nebo běžného restartu;
  • Byla přidána nová možnost pro služby ExecCondition, která umožňuje zadat příkazy, které budou provedeny před ExecStartPre. Na základě návratového kódu chyby příkazu se rozhoduje o dalším vykonávání jednotky — pokud je návratový kód 0, pokračuje se ve spuštění jednotky, pokud je od 1 do 254 končí tiše bez označení chyby, pokud je 255 — končí s označením chyby;
  • Byla přidána nová služba systemd-pstore.service pro extrakci dat ze sys/fs/pstore/ a jejich ukládání do /var/lib/pstore pro další analýzu;
  • Do nástroje timedatectl byly přidány nové příkazy pro nastavení parametrů NTP pro systemd-timesyncd vázané na síťové rozhraní;
  • V příkazu „localectl list-locales“ byl ukončen výpis lokalizací, které nejsou v UTF-8;
  • Bylo zajištěno ignorování chyb při přiřazení proměnných ve souborech sysctl.d/, pokud název proměnné začíná znakem „-“;
  • SA-Frontend systemd-random-seed.service nyní plně zodpovídá za inicializaci zásobníku entropie generátoru pseudonáhodných čísel jádra Linuxu. Služby, které vyžadují správně inicializovaný /dev/urandom, musí být spuštěny po systemd-random-seed.service;
  • V zaváděči systemd-boot byla zajištěna volitelná možnost podpory seed-filu s náhodnou sekvencí v oddílu EFI System Partition (ESP);
  • Do nástroje bootctl byly přidány nové příkazy „bootctl random-seed“ pro generování seed-filu v ESP a „bootctl is-installed“ pro kontrolu instalace zaváděče systemd-boot. V bootctl byla také zajištěna výstup varování o nesprávné konfiguraci zaváděcích záznamů (například když je obraz jádra smazán, ale záznam pro jeho zavedení je zachován);
  • Byl zajištěn automatický výběr swap oddílu při přechodu systému do spánkového režimu. Oddíl je vybírán na základě nastavené priority, a v případě shody priorit — podle velikosti volného prostoru;
  • Do /etc/crypttab byla přidána volba keyfile-timeout pro stanovení doby čekání na zařízení s klíčem pro šifrování před výzvou k zadání hesla pro přístup k zašifrovanému oddílu;
  • Byla přidána volba IOWeight pro nastavení váhy vstupu/výstupu pro plánovač BFQ;
  • V systemd-resolved byl přidán přísný (‘strict’) režim provozu pro DNS-over-TLS a implementována možnost ukládání do mezipaměti pouze pozitivních odpovědí DNS („Cache no-negative“ v resolved.conf);
  • Pro VXLAN byla do systemd-networkd přidána volba GenericProtocolExtension pro aktivaci rozšíření protokolu VXLAN. Pro VXLAN a GENEVE byla přidána volba IPDoNotFragment pro nastavení příznaku zákazu fragmentace pro odchozí pakety;
  • V systemd-networkd byla v sekci „[Route]“ přidána volba FastOpenNoCookie pro povolení mechanismu rychlého otevření TCP spojení (TFO — TCP Fast Open, RFC 7413) vázaného na jednotlivé trasy, a také volba TTLPropagate pro nastavení TTL LSP (Label Switched Path). V volbě „Type“ byla zajištěna podpora režimů směrování local, broadcast, anycast, multicast, any a xresolve;
  • V systemd-networkd byla v sekci „[Network]“ navržena volba DefaultRouteOnDevice pro automatické nastavení výchozí trasy pro dané síťové zařízení;
  • V systemd-networkd byly pro síťové mosty přidány volby ProxyARP a
    ProxyARPWifi pro nastavení chování proxy ARP, MulticastRouter pro zadávání parametrů směrování v režimu multicast, MulticastIGMPVersion pro změnu verze IGMP (Internet Group Management Protocol) pro multicast;
  • V systemd-networkd byly pro tunely FooOverUDP přidány volby Local, Peer a PeerPort pro nastavení IP adres lokální a vzdálené strany, jakož i čísla síťového portu. Pro tunely TUN byla přidána volba VnetHeader pro podporu GSO (Generic Segment Offload);
  • V systemd-networkd ve souborech .network a .link v sekci [Match] byla přidána volba Property, která umožňuje identifikaci zařízení podle specifických vlastností v udev;
  • V systemd-networkd byla pro tunely přidána volba AssignToLoopback, která řídí vazbu konce tunelu na zařízení loopback „lo“;
  • V systemd-networkd byla automatizována aktivace IPv6 zásobníku v případě, že je zablokováno přes sysctl disable_ipv6 — IPv6 se aktivuje, pokud jsou pro síťové rozhraní nastaveny parametry IPv6 (statické nebo DHCPv6), v opačném případě již nastavená hodnota sysctl není změněna;
  • Ve souborech .network byla nastavení CriticalConnection nahrazena volbou KeepConfiguration, která poskytuje více nástrojů pro definování situací („yes“, „static“, „dhcp-on-stop“, „dhcp“), ve kterých by systemd-networkd neměl zasahovat do již existujících připojení při spuštění;
  • Byla odstraněna zranitelnost CVE-2019-15718, způsobená absencí kontroly přístupu k rozhraní D-Bus systemd-resolved. Problém umožňuje neoprávněnému uživateli vykonávat operace, které jsou dostupné pouze administrátorům, například změnit nastavení DNS a směrovat DNS dotazy na podvržený server;
  • Byla odstraněna zranitelnost CVE-2019-9619, spojená s nezapnutím pam_systemd pro neinteraktivní relace, což umožňuje zorganizovat spoofing aktivní relace.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster