Vydanie systemd system manager 252 s podporou UKI (Unified Kernel Image).

Po piatich mesiacoch vývoja bolo predstavené vydanie správcu systému systemd 252. Kľúčovou zmenou v novej verzii bola integrácia podpory modernizovaného bootovacieho procesu, ktorý umožňuje overiť nielen jadro a bootloader, ale aj komponenty základného systémového prostredia pomocou digitálnych podpisov.

Navrhovaná metóda zahŕňa použitie jednotného obrazu jadra UKI (Unified Kernel Image) pri načítavaní, ktorý kombinuje handler na načítanie jadra z UEFI (UEFI boot stub), obraz linuxového jadra a systémové prostredie initrd načítané do pamäte, použité pre počiatočnú inicializáciu vo fáze pred namontovaním koreňového FS . Obrázok UKI je zabalený ako jeden spustiteľný súbor vo formáte PE, ktorý je možné načítať pomocou tradičných zavádzačov alebo volať priamo z firmvéru UEFI. Pri volaní z UEFI je možné overiť integritu a spoľahlivosť digitálneho podpisu nielen jadra, ale aj obsahu initrd.

Na výpočet parametrov registrov TPM PCR (Trusted Platform Module Platform Configuration Register), ktoré sa používajú na monitorovanie integrity a generovanie digitálneho podpisu obrazu UKI, je zahrnuté nové opatrenie systemd-measure. Verejný kľúč a sprievodné informácie PCR použité v podpise možno vložiť priamo do zavádzacieho obrazu UKI (kľúč a podpis sú uložené v súbore PE v poliach „.pcrsig“ a „.pcrkey“) a extrahovať z neho externým alebo interné inžinierske siete.

Na používanie týchto informácií boli prispôsobené najmä obslužné programy systemd-cryptsetup, systemd-cryptenroll a systemd-creds, pomocou ktorých môžete zabezpečiť, aby boli šifrované diskové oddiely viazané na digitálne podpísané jadro (v tomto prípade prístup k zašifrovanému oddielu sa poskytuje iba vtedy, ak obrázok UKI prešiel overením digitálnym podpisom na základe parametrov umiestnených v TPM).

Okrem toho je zahrnutá pomôcka systemd-pcrphase, ktorá vám umožňuje riadiť väzbu rôznych fáz zavádzania na parametre umiestnené v pamäti kryptoprocesorov, ktoré podporujú špecifikáciu TPM 2.0 (napríklad dešifrovací kľúč oddielu LUKS2 môžete sprístupniť iba v initrd a zablokovať prístup k nemu v neskorších fázach sťahovania).

Niektoré ďalšie zmeny:

  • Zabezpečuje, že predvolené miestne nastavenie je C.UTF-8, pokiaľ nie je v nastaveniach špecifikované iné miestne nastavenie.
  • Teraz je možné vykonať kompletnú servisnú prednastavenú operáciu („systemctl preset“) počas prvého zavádzania. Povolenie predvolieb v čase zavádzania vyžaduje vytvorenie s voľbou "-Dfirst-boot-full-preset", ale plánuje sa, že v budúcich vydaniach bude štandardne povolené.
  • Jednotky správy používateľov zahŕňajú radič prostriedkov CPU, ktorý umožnil zabezpečiť, aby sa nastavenia CPUWeight aplikovali na všetky jednotky segmentov, ktoré sa používajú na rozdelenie systému na časti (app.slice, background.slice, session.slice) na izoláciu zdrojov medzi rôzne užívateľské služby, ktoré súťažia o zdroje CPU. CPUWeight tiež podporuje hodnotu „idle“ na aktiváciu vhodného režimu poskytovania prostriedkov.
  • V dočasných („prechodných“) jednotkách a v pomocnom programe systemd-repart je možné prepísať nastavenia vytvorením súborov typu drop-in v adresári /etc/systemd/system/name.d/.
  • Pre systémové obrazy je nastavený príznak support-ended, ktorý túto skutočnosť určuje na základe hodnoty nového parametra “SUPPORT_END=” v súbore /etc/os-release.
  • Pridané nastavenia „ConditionCredential=“ a „AssertCredential=“, ktoré možno použiť na ignorovanie alebo zlyhanie jednotiek, ak v systéme nie sú prítomné určité poverenia.
  • Pridané nastavenia „DefaultSmackProcessLabel=“ a „DefaultDeviceTimeoutSec=“ do system.conf a user.conf na definovanie predvolenej úrovne zabezpečenia SMACK a časového limitu aktivácie jednotky.
  • V nastaveniach „ConditionFirmware=“ a „AssertFirmware=“ bola pridaná možnosť špecifikovať jednotlivé polia SMBIOS, napríklad na spustenie jednotky iba v prípade, že pole /sys/class/dmi/id/board_name obsahuje hodnotu „Custom Board“, môžete zadať pole „ConditionFirmware=smbios“ (názov_dosky = „Vlastná tabuľa“)“.
  • Počas procesu inicializácie (PID 1) bola okrem ich definície cez qemu_fwcfg pridaná možnosť importovať poverenia z polí SMBIOS (Typ 11, „reťazce dodávateľa OEM“), čo zjednodušuje poskytovanie poverení virtuálnym počítačom a odstraňuje potreba nástrojov tretích strán, ako je cloud -init a zapaľovanie.
  • Počas vypínania sa zmenila logika odpájania virtuálnych súborových systémov (proc, sys) a informácie o procesoch blokujúcich odpojenie súborových systémov sa ukladajú do protokolu.
  • Filter systémových volaní (SystemCallFilter) štandardne umožňuje prístup k systémovému volaniu riscv_flush_icache.
  • Bootloader sd-boot pridáva možnosť spustenia v zmiešanom režime, v ktorom 64-bitové jadro Linuxu beží z 32-bitového firmvéru UEFI. Pridaná experimentálna schopnosť automaticky použiť kľúče SecureBoot zo súborov nájdených v ESP (systémový oddiel EFI).
  • Do pomôcky bootctl boli pridané nové možnosti: „—all-architectures“ na inštaláciu binárnych súborov pre všetky podporované architektúry EFI, „—root=“ a „—image=“ na prácu s obrazom adresára alebo disku, „—install-source =” pre definovanie zdroja pre inštaláciu, "-efi-boot-option-description==" na ovládanie názvov zavádzacích položiek.
  • Do obslužného programu systemctl bol pridaný príkaz 'list-automounts' na zobrazenie zoznamu automaticky pripojených adresárov a možnosť "--image=" na vykonávanie príkazov vo vzťahu k zadanému obrazu disku. Pridané možnosti "--state=" a "--type=" do príkazov "show" a "status".
  • systemd-networkd pridal možnosti „TCPCongestionControlAlgorithm=“ na výber algoritmu riadenia preťaženia TCP, „KeepFileDescriptor=“ na uloženie deskriptora súborov rozhraní TUN/TAP, „NetLabel=“ na nastavenie NetLabels, „RapidCommit=“ na urýchlenie konfigurácie cez DHCPv6 (RFC 3315). Parameter “RouteTable=” umožňuje špecifikovať názvy smerovacích tabuliek.
  • systemd-nspawn umožňuje použitie relatívnych ciest k súborom v možnostiach "--bind=" a "--overlay=". Pridaná podpora pre parameter 'rootidmap' k voľbe "--bind=" na naviazanie ID užívateľa root v kontajneri na vlastníka pripojeného adresára na strane hostiteľa.
  • systemd-resolved štandardne používa OpenSSL ako svoj šifrovací backend (podpora gnutls je zachovaná ako možnosť). Nepodporované algoritmy DNSSEC sa teraz považujú za nebezpečné namiesto toho, aby vracali chybu (SERVFAIL).
  • systemd-sysusers, systemd-tmpfiles a systemd-sysctl implementujú schopnosť prenášať nastavenia prostredníctvom mechanizmu ukladania poverení.
  • Do nástroja systemd-analyze bol pridaný príkaz 'compare-versions' na porovnanie reťazcov s číslami verzií (podobne ako 'rpmdev-vercmp' a 'dpkg --compare-versions'). Do príkazu 'systemd-analyze dump' bola pridaná možnosť filtrovania jednotiek podľa masky.
  • Pri výbere viacstupňového režimu spánku (suspend-pot-hibernate) sa teraz čas strávený v pohotovostnom režime vyberá na základe prognózy zostávajúcej výdrže batérie. Okamžitý prechod do režimu spánku nastane, keď je batéria nabitá na menej ako 5 %.
  • Do 'journalctl' bol pridaný nový výstupný režim "-o short-delta", ktorý zobrazuje časový rozdiel medzi rôznymi správami v protokole.
  • systemd-repart pridáva podporu pre vytváranie oddielov so súborovým systémom Squashfs a oddielov pre dm-verity, vrátane digitálnych podpisov.
  • Pridané nastavenie "StopIdleSessionSec=" do systemd-logind na ukončenie neaktívnej relácie po určenom časovom limite.
  • Systemd-cryptenroll pridal možnosť "--unlock-key-file=" na extrahovanie dešifrovacieho kľúča zo súboru namiesto výzvy používateľa.
  • Teraz je možné spustiť nástroj systemd-growfs v prostrediach bez udev.
  • systemd-backlight má vylepšenú podporu pre systémy s viacerými grafickými kartami.
  • Licencia pre príklady kódu uvedené v dokumentácii bola zmenená z CC0 na MIT-0.

Zmeny, ktoré narúšajú kompatibilitu:

  • Pri kontrole čísla verzie jadra pomocou direktívy ConditionKernelVersion sa teraz používa jednoduché porovnanie reťazcov v operátoroch '=' a '!=', a ak operátor porovnávania nie je vôbec špecifikovaný, možno použiť porovnávanie glob-mask pomocou znaky '*', '?' A '[', ']'. Na porovnanie verzií štýlu stverscmp() použite operátory '<', '>', '<=' a '>='.
  • Značka SELinux používaná na kontrolu prístupu zo súboru jednotky sa teraz číta v čase načítania súboru, a nie v čase kontroly prístupu.
  • Podmienka "ConditionFirstBoot" sa teraz spúšťa pri prvom spustení systému iba priamo vo fáze zavádzania a vráti "false" pri volaní jednotiek po dokončení zavádzania.
  • V roku 2024 systemd plánuje prestať podporovať mechanizmus na obmedzenie prostriedkov cgroup v1, ktorý bol zastaraný vo vydaní systemd 248. Správcom sa odporúča, aby sa vopred postarali o migráciu služieb založených na cgroup v2 na cgroup v1. Kľúčovým rozdielom medzi cgroups v2 a v1 je použitie spoločnej hierarchie cgroups pre všetky typy zdrojov namiesto samostatných hierarchií na prideľovanie zdrojov CPU, na reguláciu spotreby pamäte a na I/O. Oddelené hierarchie vedú k ťažkostiam pri organizovaní interakcie medzi obslužnými programami a k ​​dodatočným nákladom na zdroje jadra pri uplatňovaní pravidiel pre proces, na ktorý sa odkazuje v rôznych hierarchiách.
  • V druhej polovici roku 2023 plánujeme ukončiť podporu pre rozdelené hierarchie adresárov, kde /usr je pripojený oddelene od rootu, alebo /bin a /usr/bin, /lib a /usr/lib sú oddelené.

Zdroj: opennet.ru

Pridať komentár