Vydanie systémového správcu systemd 261 a forku liberated-systemd 261

Po troch mesiacoch vývoja je k dispozícii vydanie systémového správcu systemd 261. Kľúčové zmeny: príprava na podporu API na overenie veku, podpora subsystémov Kexec Handover a Live Update Orchestration pre reštartovanie bez straty stavu, subsystém IMDS (Instance Metadata Service), funkcia na ochranu zavádzania na systémoch bez fyzického TPM (Trusted Platform Module), komponent systemd-sysinstall s implementáciou inštalátora.

Medzi zmenami v novom vydaní:

  • Bol pridaný nový komponent systemd-sysinstall s implementáciou jednoduchého inštalátora operačného systému, ktorý je možné ovládať z príkazového riadka alebo prostredníctvom interaktívneho textového rozhrania. Funkcionalita systemd-sysinstall je vytvorená z už existujúcich možností systemd: na nastavenie diskových oddielov je zapojený systemd-repart, na inštaláciu jadra a generovanie zavádzacieho menu — príkaz „bootctl link“, na inštaláciu zavádzača systemd-boot — príkaz „bootctl install“, na počiatočné konfigurácie inštalovaného systému (napríklad výber lokality a rozloženia klávesnice) — systemd-creds.
  • V rámci prípravy na realizáciu požiadaviek zákonov o integrácii do OS API na overenie veku bolo do databázy userdb pridané pole birthDate s dátumom narodenia používateľa. Pridané pole sa môže používať vo vyvíjanom portáli xdg-desktop-portal pre distribúcie a v službe AccountsService na poskytovanie aplikáciám informácií o vekovej kategórii používateľa prostredníctvom D-Bus rozhrania „org.freedesktop.AgeVerification1“ alebo „org.freedesktop.ParentalControls“. Na nastavenie veku bola do utilitky homectl pridaná možnosť „—birth-date“.
  • Do spracovateľa PID1 bola pridaná podpora subsystémov Linuxového jadra LUO (Live Update Orchestration) a KHO (Kexec Handover), ktoré umožňujú plnohodnotné reštartovanie a aktualizáciu jadra bez zastavenia práce a bez straty stavu systému, zariadení a procesov. KHO poskytuje možnosti na spustenie nového jadra zo starého bez straty stavu systému, zatiaľ čo LUO realizuje uchovávanie stavu zariadení a operačnej pamäte, ako aj zabezpečuje kontinuitu operácií spojených s DMA a spracovaním prerušenia.

    V systemd je pre systémové a používateľské jednotky implementovaná možnosť uchovávania súborových deskriptorov pred volaním kexec a ich obnovenia po reštarte jadra cez kexec. V jednotkách je tiež možné vytvárať vlastné session LUO, ktoré sa ukladajú a obnovujú pri vykonávaní kexec. Pre povolenie uchovania stavu skladu súborových deskriptorov by sa mala použiť nastavenie ‘FileDescriptorStorePreserve=yes’.

  • Implementovaný je subsystém systemd-imdsd, ktorý poskytuje API na báze Varlink IPC na prístup lokálnych programov k službám IMDS (Instance Metadata Service), poskytovaným rôznymi dodávateľmi cloudových systémov. IMDS poskytuje možnosť virtuálnym strojom získať informácie o cloudovom prostredí, napríklad je možné získať údaje o sieťovej konfigurácii, geografickej polohe uzla, type CPU a veľkosti úložiska. V systemd-imdsd je poskytnutý ako nízkoúrovňový API na prístup k jednotlivým poliam, tak aj vysokoúrovňové rozhranie pre požiadavky na štandardné kľúče, ktoré sú zodpovedajúce kľúčom špecifickým pre jednotlivé cloudové platformy. Na interakciu so systemd-imdsd bola pridaná utilita systemd-imds, ktorá umožňuje importovať polia z IMDS do lokálneho systému účtov.

    Na rozpoznávanie cloudových platforiem na základe informácií zo SMBIOS a určenie dostupnej funkčnosti IMDS na aktuálnom uzle bola pridaná nová DB hwdb.d/40-imds.hwdb. Implementované je rozpoznávanie cloudových platforiem Amazon EC2, Microsoft Azure, Google Compute Engine, Hetzner, Oracle Cloud, Scaleway, Tencent Cloud, Alibaba ECS a Vultr. Dostupný je spracovateľ systemd-imds-generator pre automatické vloženie služby na získanie údajov cez IMDS v prípade zistenia fungovania pod správou podporovanej cloudovej platformy. Je možné vytvárať univerzálne obrazy, ktoré podporujú používanie IMDS pri spustení v cloudových prostrediach, ale sú schopné pracovať aj bez IMDS.

  • V systemd-stub je implementovaná funkčnosť „boot secret“, ktorá umožňuje vytvoriť kľúč na základe EFI-premennej, uchovávanej v pre operačný systém nedostupnej oblasti a inicializovanej náhodnou hodnotou. V initrd je kľúč prenášaný cez súbor /.extra/boot-secret. Predstavená možnosť môže byť potrebná na získanie systémovo špecifického náhodného kľúča pre overenie procesu bootovania alebo šifrovania na systémoch bez hardvérového TPM (Trusted Platform Module).
  • Pridaný servis systemd-tpm2-swtpm.service na spustenie emulátora TPM čipov swtpm (Software TPM Emulator), ktorý je možné využiť na automatické vrátenie na softvérovú implementáciu TPM pre zabezpečené spúšťanie v systémach bez hardvérového TPM. Softvérový TPM pracuje v užívateľskom priestore a nedosahuje úroveň ochrany ako hardvérový TPM, avšak v niektorých situáciách je jeho použitie opodstatnené v porovnaní s prácou bez TPM. Napríklad, softvérový TPM môže získať kľúč šifrovania oddielov pomocou novej funkčnosti „boot secret“ a využiť na uchovávanie svojho stavu oddiel ESP (EFI System Partition) na disku. Pre automatické zapnutie softvérového TPM bol navrhnutý parameter príkazového riadku jadra systemd.tpm2_software_fallback.
  • Vyhlásený ako stabilný a umiestnený v /usr/bin/ komponent systemd-sysupdate, určený na automatické určenie, načítanie a inštaláciu aktualizácií s využitím atomárneho mechanizmu výmeny oddielov, súborov alebo adresárov (využívajú sa dva nezávislé oddiely/súbory/adresáre, z ktorých jeden obsahuje aktuálne fungujúci zdroj a na druhom sa inštaluje ďalšia aktualizácia, po čom sa oddiely/súbory/adresáre vymieňajú).
  • V systemd-resolved bola implementovaná možnosť prepisovania alebo určovania nových DNS záznamov prostredníctvom umiestnenia súborov vo formáte JSON v adresároch systemd/resolve/static.d/. Na rozdiel od /etc/hosts môžu nové súbory nielen viazať IP adresy na názvy hostiteľov, ale aj určovať zdrojové DNS RR záznamy, ktoré sú odlišné od „A“ a „AAAA“. Okrem toho boli do systemd-resolved pridané nastavenia veľkosti DNS cache: ‘DNSCacheSize’, ‘MulticastDNSCacheSize’ a ‘LLMNRCacheSize’.
  • Pridaná utilita ‘storagectl’ na inšpekciu úložných zariadení a správu pripojenia blokových zariadení a súborových systémov.
  • V rámci iniciatívy na zníženie závislostí bola v libsystemd implementovaná dynamická carga knižníc libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk a libcryptsetup
    prostredníctvom volania dlopen() v situáciách, keď sú ich funkcie naozaj potrebné.
  • V systemd-tmpfiles bol pridaný flag „—inline“, ktorý umožňuje nastaviť direktívy priamo v príkazovom riadku bez vytvárania konfiguračných súborov v tmpfiles.d/ a bez posielania nastavení cez STDIN. Bol pridaný nový typ direktívy ‘k/K’ na nastavenie capabilities. Bol pridaný konfiguračný súbor tmpfiles.d/root.conf, ktorý nastavuje prístupové práva 0555 (-r-xr-xr-x) na koreňový adresár (/) na ochranu pred neplatnými právami pri dynamickom generovaní koreňového FS.
  • V utilite bootctl bola implementovaná možnosť uloženia zálohy bootloadera systemd-boot a zápisu predchádzajúcej verzie do UEFI ako záložného spúšťacieho variantu.
  • V systemd-vmspawn bola pridaná podpora priameho spúšťania jadra bez použitia firmvéru UEFI. Realizovaná bola voľba „—firmware-features“ na selektívne zapínanie alebo vypínanie individuálnych funkcií firmvérov. Bol pridaný režim „—console=headless“ pre spustenie virtuálneho stroja bez konzoly a obrazovky. Bola pridaná voľba „—image-disk-type“ pre výber typu blokového úložiska (virtio-blk, virtio-scsi, nvme, scsi-cd) používanej vo VM. Bola pridaná voľba „—coco“ (Confidential Computing) na zapnutie režimu šifrovania pamäte virtuálních strojů s využitím technológie AMD SEV-SNP.
  • V systemd-hostnamed a /etc/machine-info bola pridaná podpora pripojenia ľubovoľných tagov k aktuálnemu systému pomocou parametra „Tags“. Nastavené tagy môžu byť následne použité na selektívne aplikovanie nastavení s kontrolou cez výraz ConditionMachineTag.
  • Pridané nastavenia EventLoopRateLimitIntervalSec a EventLoopRateLimitBurst, ktoré obmedzujú intenzitu cyklu spracovania udalostí v PID1 na uvoľnenie CPU zdrojov v prípade zacyklenia.
  • V správcovi služieb bola implementovaná konfigurácia MinimumUptimeSec na určenie minimálneho času prevádzky systému (predvolene 15 sekúnd). Ak je pred uplynutím tohto času iniciované vypnutie alebo reštart, na záverečnej fáze sa pridáva príslušná oneskorenie.
  • Pre jednotky boli implementované nové nastavenia CPUSetPartition na nastavenie typu partition cpuset v cgroup („root“, „isolated“, „member“), RestrictFileSystemAccess na povolenie spúšťania iba spustiteľných súborov, ktoré boli overené digitálnym podpisom pomocou dm-verity, a CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec na získavanie upozornení o vysokej záťaži CPU a I/O.
  • Bol rozšírený zoznam metrík, ktoré poskytuje nástroj systemd-report. Napríklad boli pridané informácie o veľkosti fyzickej pamäte a aktívnych jadrach CPU, údaje o obsahu polí SMBIOS a /etc/machine-info, informácie o podpore režimu Confidential Computing a informácie o výrobcovi čipov TPM2.
  • V systemd-oomd bola implementovaná možnosť definovať pravidlá na filtrovanie procesov pri nedostatku pamäte v systéme. Pravidlá je možné nastaviť v adresári /etc/systemd/oomd/rules.d/ alebo v servisných unit-och prostredníctvom direktívy OOMRule.
  • V systemd-socket-proxy bola pridaná podpora protokolu "PROXY", ktorý zodpovedá prvej verzii protokolu "haproxy".
  • V systemd-networkd bol implementovaný nový backend sd-dhcp-relay pre DHCP relay. Nastavenia v sekcii "[DHCPServer]" — BindToInterface, RelayTarget, RelayAgentCircuitId a RelayAgentRemoteId, boli vyhlásené za zastarané, namiesto ktorých je potrebné použiť parameter DHCPRelay v sekcii "[Network]" a sériu nových nastavení v sekcii [DHCPRelay] a v súbore networkd.conf. Bolo pridane príkaz 'networkctl dhcp-lease INTERFACE' na uloženie výpisu s informáciami o viazaní IP adries (DHCP lease).
  • Do nástroja systemd-nspawn bola pridaná možnosť "—restrict-address-families", a do súborov .nspawn nastavenie RestrictAddressFamilies na obmedzenie používaných v kontajneri rodín adries soketov. V budúcich vydaniach budú predvolene povolené iba rodiny AF_INET, AF_INET6 a AF_UNIX.
  • Podpora starého formátu DB udev (verzia 0.x) bola ukončená. Aktualizácia na živo z verzií systemd na vydanie 247 už nie je podporovaná.
  • Pri zostavovaní s C-knižnicou musl je teraz vyžadovaná aspoň verzia musl 1.2.6.

Okrem toho je možné spomenúť vydanie projektu liberated-systemd 261, ktorý vyvíja fork systemd, zbavený kódu, ktorý môže byť použitý na sledovanie používateľov. V navrhovanom vydaní sa zmeny týkajú odstránenia kódu, ktorý pridáva do userdb pole birthDate s dátumom narodenia používateľa, a do nástroja homectl možnosť "—birth-date" na nastavenie veku.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster