systemd 261 a liberated-systemd 261

Po třech měsících vývoje je dostupná vydání systémového správce systemd 261. Hlavní změny: příprava na podporu API pro ověřování věku, podpora subsystémů Kexec Handover a Live Update Orchestration pro restart bez ztráty stavu, subsystém IMDS (Instance Metadata Service), funkčnost pro ochranu zavádění na systémech bez fyzického TPM (Trusted Platform Module), komponenta systemd-sysinstall s realizací instalátoru.

Mezi změny v novém vydání:

  • Byl přidán nový komponent systemd-sysinstall , s realizací jednoduchého instalátoru operačního systému, který lze spravovat z příkazového řádku nebo prostřednictvím interaktivního textového rozhraní. Funkčnost systemd-sysinstall je utvořena z již existujících možností systemd: pro nastavení diskových oddílů je využit systemd-repart, pro instalaci jádra a generování zaváděcího menu — příkaz „bootctl link“, pro instalaci zaváděče systemd-boot — příkaz „bootctl install“, pro počáteční konfiguraci instalovaného systému (např. výběr místního jazyka a rozložení klávesnice) — systemd-creds.
  • V rámci přípravy na realizaci požadavků zákonů o integraci do OS API pro ověřování věku v DB userdb bylo přidáno pole birthDate s datem narození uživatele. Přidané pole bude moci být využíváno v rozvíjeném portálu pro distribuce xdg-desktop-portal a službě AccountsService pro poskytování aplikacím informací o věkové kategorii uživatele prostřednictvím D-Bus rozhraní org.freedesktop.AgeVerification1 nebo org.freedesktop.ParentalControls. Pro nastavení věku byla do utility homectl přidána možnost —birth-date.
  • Do zpracovatele PID1 byla přidána podpora subsystémů Linuxového jádra LUO (Live Update Orchestration) a KHO (Kexec Handover), umožňující plnohodnotně restartovat a aktualizovat jádro bez zastavení práce a bez ztráty stavu systému, zařízení a procesů. KHO umožňuje spouštění nového jádra ze starého bez ztráty stavu systému, a LUO realizuje udržení stavu zařízení a operační paměti, a také zajišťuje kontinuitu operací spojených s DMA a zpracováním přerušení.
    V systemd byla pro systémové a uživatelské unit implementována možnost uchování souborových descriptorů před voláním kexec a jejich obnovení po restartu jádra prostřednictvím kexec. V unitech je rovněž možné vytvářet vlastní sezení. LUO, uchovává a obnovuje se při provádění kexec. Pro povolení uchovávání stavu úložiště souborových descriptorů je třeba použít nastavení FileDescriptorStorePreserve=yes.
  • Implementován subsystém systemd-imdsd, který poskytuje API založené na Varlink IPC pro přístup místních programů ke službám IMDS (Instance Metadata Service) nabízeným různými poskytovateli cloudových systémů. IMDS umožňuje virtuálním strojům získávat informace o cloudovém prostředí, například lze získat údaje o síťové konfiguraci, geografické poloze uzlu, typu CPU a velikosti úložiště. V systemd-imdsd je poskytováno jak nízkoúrovňové API pro přístup k jednotlivým polím, tak vysoceúrovňové rozhraní pro dotazování podle typových klíčů, přiřazených ke klíčům specifickým pro jednotlivé cloudové platformy. Pro interakci s systemd-imdsd byla přidána utilita systemd-imds, která umožňuje importovat pole z IMDS do místního systému účtů.
    Pro rozpoznávání cloudových platforem na základě informací ze SMBIOS a určení dostupné funkčnosti IMDS na aktuálním uzlu byla přidána nová databáze hwdb.d/40-imds.hwdb. Implementováno rozpoznávání cloudových platforem Amazon EC2, Microsoft Azure, Google Compute Engine, Hetzner, Oracle Cloud, Scaleway, Tencent Cloud, Alibaba ECS a Vultr. K dispozici je zpracovatel systemd-imds-generator pro automatickou substituci služby pro získávání dat přes IMDS v případě zjištění, že běží na podporované cloudové platformě. Je možné vytvářet univerzální obrazy, které podporují používání IMDS při spuštění v cloudových prostředích, ale které mohou fungovat i bez IMDS.
  • V systemd-stub byla implementována funkčnost boot secret, která umožňuje vytvořit klíč na základě EFI proměnné uchovávané ve vyhrazené oblasti nedostupné pro operační systém a inicializované náhodnou hodnotou. V initrd je klíč předáván prostřednictvím souboru /.extra/boot-secret. Tato možnost může být potřebná pro získání systémově specifického náhodného klíče pro ověření procesu bootování nebo šifrování na systémech bez hardwarového TPM (Trusted Platform Module).
  • Přidána služba systemd-tpm2-swtpm.service pro spuštění emulátoru TPM čipů swtpm (Software TPM Emulator), který lze použít pro automatické přepnutí na softwarovou implementaci TPM pro zabezpečené spouštění na systémech bez hardwarového TPM. Softwarový TPM funguje v uživatelském prostoru a nedosahuje úrovně ochrany jako hardwarový TPM, ale v některých situacích může být jeho použití opodstatněné ve srovnání s provozem bez TPM. Například, softwarový TPM může získat klíč pro šifrování oddílů prostřednictvím nové funkce „boot secret“ a využít pro uložení svého stavu oddíl ESP (EFI System Partition) na disku. Pro automatické zapnutí softwarového TPM byl navržen parametr příkazové řádky jádra systemd.tpm2_software_fallback.
  • Byl oznámen stabilní a umístěn do /usr/bin komponent systemd-sysupdate, který je určen pro automatické vyhledávání, stahování a instalaci aktualizací pomocí atomárního mechanismu nahrazování oddílů, souborů nebo adresářů (používají se dva nezávislé oddíly/soubory/adresáře, z nichž jeden obsahuje aktuálně běžný zdroj a druhý se používá pro instalaci další aktualizace, po čemž se oddíly/soubory/adresáře vymění).
  • V systemd-resolved byla implementována možnost přepsání nebo určení nových DNS záznamů prostřednictvím umístění souborů ve formátu JSON do adresářů systemd/resolve/static.d/. Na rozdíl od /etc/hosts lze v nových souborech nejen přiřazovat IP adresy k názvům hostitelů, ale také definovat zdrojové DNS RR záznamy odlišné od „A“ a „AAAA“. Kromě toho byly do systemd-resolved přidány nastavení velikosti DNS cache: DNSCacheSize, MulticastDNSCacheSize a LLMNRCacheSize.
  • Byla přidána utilita ‘storagectl’ pro inspekci úložných zařízení a správu připojení blokových zařízení a souborových systémů.
  • V rámci iniciativy pro zkrácení závislostí implementoval libsystemd dynamické načítání knihoven libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk a libcryptsetup prostřednictvím volání dlopen() v situacích, kdy jsou jejich funkce opravdu potřebné.
  • V systemd-tmpfiles byl přidán přepínač —inline, který umožňuje uvádět direktivy v příkazovém řádku bez vytváření konfiguračních souborů v tmpfiles.d/ a bez posílání nastavení přes STDIN. Přidán nový typ direktiv k/K pro zavedení capabilities. Byl přidán konfigurační soubor tmpfiles.d/root.conf, který nastavuje přístupová práva 0555 (-r-xr-xr-x) pro kořenový adresář (/) k ochraně proti nesprávnému nastavení práv při dynamickém vytváření kořenového FS.
  • V nástroji bootctl je zajištěno uchování zálohy zaváděcího programu systemd-boot a zápis staré verze do UEFI jako záložní varianty pro bootování.
  • V systemd-vmspawn byla přidána podpora pro přímé zavedení jádra bez použití UEFI firmwaru. Byla implementována volba —firmware-features pro selektivní zapínání nebo vypínání jednotlivých funkcí firmwaru. Přidán režim —console=headless pro spuštění virtuálního stroje bez konzole a obrazovky. Přidána volba —image-disk-type pro výběr používaného typu blokového úložiště (virtio-blk, virtio-scsi, nvme, scsi-cd). Přidána volba —coco (Confidential Computing) pro aktivaci režimu šifrování paměti virtuálních strojů pomocí technologie AMD SEV-SNP.
  • V systemd-hostnamed a /etc/machine-info byla přidána podpora pro připojení libovolných štítků k aktuálnímu systému pomocí parametru Tags. Nastavené štítky pak mohou být použity pro selektivní aplikaci nastavení s ověřením přes výraz ConditionMachineTag.
  • Byly přidány nastavení EventLoopRateLimitIntervalSec a EventLoopRateLimitBurst, která omezují intenzitu zpracování událostí v PID1 pro uvolnění CPU prostředků v případě cyklování.
  • Ve správě služby byla implementována konfigurace MinimumUptimeSec pro stanovení minimální doby provozu systému (výchozí 15 sekund). Pokud je před uplynutím této doby zahájena výzva na vypnutí nebo restart, je na konci procesu přidána odpovídající prodleva.
  • Pro jednotky byly implementovány nové nastavení CPUSetPartition pro stanovení typu partice cpuset v cgroup (root, isolated, member), RestrictFileSystemAccess pro povolení spuštění pouze těch spustitelných souborů, které byly ověřeny digitálním podpisem pomocí dm-verity, a CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec pro získávání notifikací o vysokém zatížení CPU a I/O.
  • Byl rozšířen seznam metrik vydávaných nástrojem systemd-report. Například byly přidány informace o velikosti fyzické paměti a aktivních jádrech CPU, data o obsahu polí SMBIOS a /etc/machine-info, informace o podpoře režimu Confidential Computing a údaje o výrobci čipů TPM2.
  • V systemd-oomd Byla realizována možnost stanovení pravidel pro odstraňování procesů při nedostatku paměti v systému. Pravidla lze nastavovat v adresáři /etc/systemd/oomd/rules.d/ nebo v unit službách pomocí direktivy OOMRule.
  • V systemd-socket-proxy Byla přidána podpora protokolu PROXY, odpovídající první verzi protokolu haproxy.
  • V systemd-networkd Byl realizován nový backend sd-dhcp-relay pro DHCP relay. Byla vyřazena nastavení v sekci [DHCPServer] – BindToInterface, RelayTarget, RelayAgentCircuitId a RelayAgentRemoteId, místo nich by se mělo používat parametru DHCPRelay v sekci [Network] a řadu nových nastavení v sekci [DHCPRelay] a v souboru networkd.conf. Byla přidána příkaz networkctl dhcp-lease INTERFACE pro uložení dumpu s informacemi o přidělení IP adres (DHCP lease).
  • Do nástroje systemd-nspawn byla přidána možnost —restrict-address-families, a v souborech .nspawn nastavení RestrictAddressFamilies pro omezení používaných rodin adres socketů v kontejneru. V budoucnosti budou standardně povoleny pouze rodiny AF_INET, AF_INET6 a AF_UNIX.
  • Podpora starého formátu databáze udev (verze 0.x) byla ukončena. Dochází k aktualizaci za běhu z verzí systemd na verzi 247 (opennet.ru) už se nepodporuje.
  • Při sestavení s C knihovnou musl je nyní vyžadována minimálně verze musl 1.2.6.

Dále lze poznamenat vydání projektem liberated-systemd 261, rozvíjející fork systemd, zbavený kódu, který by mohl být využit pro sledování uživatelů. V navrhované verzi se změny týkají odstranění kódu, který přidává do userdb pole birthDate s datem narození uživatele, a v nástroji homectl byla přidána volba —birth-date pro nastavení věku.

Zdroj: linux.org.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