A systemd 252 kiadása UKI (Unified Kernel Image) támogatással

Öt hónapos fejlesztés után megjelent a systemd 252 rendszermanager verziója. Az új verzió kulcsfontosságú változása az integrált támogatás a modernizált betöltési folyamat számára, amely lehetővé teszi, hogy digitális aláírásokkal ne csak a kernelt és a bootoloadert, hanem az alapvető rendszerkörnyezet komponenseit is ellenőrizni lehessen.

A javasolt módszer egy egységesített kernelkép (UKI - Unified Kernel Image) használatát javasolja a betöltés során, amely összekapcsolja a kernelfeladó UEFI (UEFI boot stub) kezelését, a Linux kernel képét és a memóriába betöltött initrd rendszert, amely a gyökér fájlrendszer melletti kezdeti inicializációhoz szükséges. Az UKI-kép egy végrehajtható fájl formájában készül el PE formátumban, amelyet hagyományos bootloaderekkel vagy közvetlen UEFI firmware-ból hívhatunk meg. UEFI-ből történő hívás esetén lehetőség van a digitalizációs aláírás szerinti integritás és hitelesítési ellenőrzésre, nemcsak a kernel, hanem az initrd tartalma esetében is.

A TPM PCR (Trusted Platform Module Platform Configuration Register) regiszterműködési paramétereinek számításához, amelyeket a integritás ellenőrzésére és az UKI kép digitális aláírásának megszerkesztésére használnak, egy új systemd-measure eszköz került bevezetésre. A digitális aláírás használatához szükséges nyilvános kulcs és a PCR-ra vonatkozó kísérő információ közvetlenül beépíthető az UKI bootképbe (a kulcs és az aláírás a PE formátumú fájl '.pcrsig' és '.pcrkey' mezőiben kerül tárolásra), és külső vagy belső eszközök által kinyerhető.

Ezen információk felhasználására a systemd-cryptsetup, systemd-cryptenroll és systemd-creds eszközök is adaptálva lettek, amelyek révén lehetővé válik az aláírt digitális aláírásra történő jelszavak kötődése (ebben az esetben az encrypted elválasztáshoz való hozzáférés csak akkor biztosított, ha az UKI kép digitális aláírásán alapuló hitelesítést végrehajtották a TPM-ben elhelyezett paraméterek alapján).

Továbbá, bevezetésre került a systemd-pcrphase eszköz, amely lehetővé teszi a különböző betöltési szakaszok paraméterekre való kötésének kezelését, amelyeket a TPM 2.0 specifikációt támogató kriptoprocesszorok memóriájában helyeznek el (például a LUKS2 elválasztás titkosítási kulcsa csak az initrd képben érhető el, és a későbbi betöltési szakaszokban hozzáférési blokkra kerülhet).

Néhány egyéb változás:

  • Alapértelmezés szerint C.UTF-8 nyelvi beállítás használata biztosított, ha más nyelvi beállítást nem határoztak meg a beállításokban.
  • Lehetőség nyílt a szolgáltatások teljes előbeállításának végrehajtására („systemctl preset”) az első indításkor. Az előbeállítás indítás közbeni aktiválásához a „-Dfirst-boot-full-preset” opcióval kell összeállítani, de a jövőbeli kiadásokban ezt alapértelmezés szerint tervezik aktiválni.
  • A felhasználói menedzsment egységeiben CPU erőforrás-vezérlőt alkalmaztak, ami lehetővé tette a CPUWeight beállítások alkalmazását minden slice-unitra, amelyet a rendszer széttagolására használnak (app.slice, background.slice, session.slice), így izolálva az erőforrásokat a különböző felhasználói szolgáltatások között, amelyek versenyeznek a CPU erőforrásokért. A CPUWeight-ben támogatást nyújtanak az „idle” értékhez is, amely az erőforrások biztosításának megfelelő módjának aktiválására szolgál.
  • Átmeneti („transient”) egységekben és a systemd-repart segédprogramban most már át lehet határozni a beállításokat drop-in fájlok létrehozásával a következő helyen: /etc/systemd/system/név.d/.
  • A rendszersképekhez beállították a támogatás megszűnésének jelzését (‘support-ended’), ezt a tényt az új „SUPPORT_END=” paraméter értéke alapján határozzák meg az /etc/os-release fájlban.
  • Hozzáadták a „ConditionCredential=” és „AssertCredential=” beállításokat, amelyeket használni lehet az egységek figyelmen kívül hagyására vagy vészhelyzeti leállítására, ha a rendszerben bizonyos hitelesítő adatok hiányoznak.
  • A system.conf és user.conf fájlokhoz hozzáadták a „DefaultSmackProcessLabel=” és a „DefaultDeviceTimeoutSec=” beállításokat a SMACK biztonsági szint és az egység aktiválásának időtúllépése alapértelmezett meghatározásához.
  • A „ConditionFirmware=” és „AssertFirmware=” beállításokhoz lehetőséget adtak, hogy egyedi SMBIOS mezőket adjanak meg, például az egység csak akkor induljon, ha a /sys/class/dmi/id/board_name mező tartalmazza a „Custom Board” értéket, itt megadható a „ConditionFirmware=smbios-field(board_name = „Custom Board”)”.
  • A kezdeményezési folyamatban (PID 1) lehetőséget adtak a hitelesítő adatok importálására az SMBIOS mezőkből (11-es típus, „OEM vendor strings”), a qemu_fwcfg-en keresztüli megadásuk mellett, ez leegyszerűsíti a hitelesítő adatok biztosítását. a virtuális gépekhez és lehetővé teszi harmadik féltől származó eszközök, mint például a cloud-init és az ignition mellőzését.
  • A leállítás során megváltozott a virtuális fájlrendszerek (proc, sys) leválasztási logikája, és rögzítették a naplóban azokat a folyamatokat, amelyek blokkolják a fájlrendszerek leválasztását.
  • A SystemCallFilter alapértelmezés szerint engedélyezi a riscv_flush_icache szisztémahívás elérését.
  • Az sd-boot betöltőhöz hozzáadódott a vegyes módú indítás lehetősége, amelyben a 64-bites Linux mag a 32-bites UEFI firmware-ből indítható. Bevezetésre került egy kísérleti lehetőség a SecureBoot kulcsok automatikus alkalmazására az ESP-ben (EFI rendszerpartíció) található fájlokból.
  • A bootctl segédprogramhoz új opciók kerültek bevezetésre: „—all-architectures” a binary fájlok telepítésére minden támogatott EFI architektúrára, „—root=” és „—image=” a könyvtár vagy lemezkép kezeléséhez, „—install-source=” a telepítési forrás meghatározásához, valamint „—efi-boot-option-description=” a bootbejegyzések elnevezésének kezeléséhez.
  • A systemctl segédprogramhoz hozzáadódott a ‘list-automounts’ parancs a automatikusan csatolt könyvtárak listájának megjelenítésére, valamint az „—image=” opció, amely lehetővé teszi parancsok végrehajtását a megadott lemezképhez kötve. A ‘show’ és ‘status’ parancsokhoz hozzáadták a „—state=” és „—type=” opciókat.
  • A systemd-networkd-hez új opciók kerültek bevezetésre: „TCPCongestionControlAlgorithm=” a TCP túlterheléskezelési algoritmusának kiválasztásához, „KeepFileDescriptor=” a TUN/TAP interfészek fájlobjektumának megőrzésére, „NetLabel=” a NetLabel címkék beállításához, „RapidCommit=” a DHCPv6 (RFC 3315) általi gyors beállításhoz. A „RouteTable=” paraméterhez megengedett a routing táblák neveinek megadása.
  • A systemd-nspawn engedélyezte a relatív fájlútvonalak használatát az „—bind=” és a „—overlay=” opciókban. Az „—bind=” opcióhoz hozzáadták a ‘rootidmap’ paraméter támogatását, amely a konténer root felhasználói azonosítóját a host rendszerben lévő csatolt könyvtár tulajdonosával köti össze.
  • A systemd-resolved esetében alapértelmezett titkosítási háttérként az OpenSSL csomag lett aktiválva (a gnutls támogatása opcionális maradt). A nem támogatott DNSSEC algoritmusok most már veszélyesnek számítanak, ahelyett, hogy hibát (SERVFAIL) adtak volna vissza.
  • A systemd-sysusers, systemd-tmpfiles és systemd-sysctl lehetőséget biztosít a beállítások átkonfigurálására a hitelesítési adatokat tároló mechanizmuson keresztül.
  • A systemd-analyze segédprogramhoz hozzáadódott a ‘compare-versions’ parancs a verziószámok összehasonlítására (hasonlóan az ‘rpmdev-vercmp’-hez és a ‘dpkg —compare-versions’-hez). A ‘systemd-analyze dump’ parancshoz hozzátették az egységek szűrésének lehetőségét maszk alapján.
  • Többlépcsős alvó mód (suspend-then-hibernate, átmenet alvó állapotba a várakozó állapot után) kiválasztásakor az alvó állapotban eltöltött idő most már a hátralévő akkumulátoridő alapján kerül meghatározásra. Azonnali átmenet alvó állapotba történik, ha az akkumulátor töltöttsége 5% alá csökkent.
  • A 'journalctl' új kimeneti módot kapott: '-o short-delta', amely megjeleníti az időbeli különbséget a napló különböző bejegyzései között.
  • A systemd-repart hozzáadta a Squashfs fájlrendszerrel és a dm-verity számára történő partíciók létrehozásának támogatását, beleértve a digitális aláírásokat is.
  • A systemd-logind hozzáadott egy 'StopIdleSessionSec=' beállítást a nemaktív ülések időtúllépés utáni lezárásához.
  • A systemd-cryptenroll hozzáadott egy '—unlock-key-file=' opciót a dekódoló kulcs fájlból való kinyeréséhez, nem pedig a felhasználói kérdés kimenetén keresztül.
  • Lehetővé tette a systemd-growfs segédprogram futtatását udev nélküli környezetekben.
  • A systemd-backlight jobb támogatást kapott több grafikus kártyával rendelkező rendszerekhez.
  • A dokumentációban szereplő példa kódokra vonatkozó licencek CC0-ról MIT-0-ra változtak.

Összeférhetőséget sértő változások:

  • A kernel verzió számának ellenőrzésekor a 'ConditionKernelVersion' direktívák '=' és '!=' operátorainál mostantól egyszerű sztring összehasonlítást alkalmazunk, és ha az összehasonlító operátor egyáltalán nem kerül megadásra, akkor glob mintaillesztést használunk a '*' és '?' valamint '[' és ']' karakterek alkalmazásával. A verziók stverscmp() stílusú összehasonlításához az '', '=' operátorokat kell használni.
  • A SELinux címke, amelyet az unit-fájl hozzáférés ellenőrzésére alkalmaznak, mostantól a fájl betöltési szakaszában kerül olvasásra, nem pedig a hozzáférés ellenőrzésének időpontjában.
  • A 'ConditionFirstBoot' feltétel mostantól csak közvetlenül a rendszer első betöltésekor aktiválódik, és 'false'-t ad vissza a betöltési folyamat befejezése utáni unit-hívások során.
  • 2024-ben a systemd-ben tervezik a cgroup v1 erőforrás-korlátozó mechanizmus támogatásának leállítását, amely az 248-as verzió kiadásával elavultnak minősült. Az adminisztrátoroknak ajánlott előre gondoskodniuk a cgroup v2-re való átállásról, amely a cgroup v1-re épülő szolgáltatások esetében szükséges. A cgroups v2 fő különbsége a v1-től, hogy közös hierarchiát alkalmaz a cgroups számára mindenféle erőforrás esetében, ahelyett, hogy külön hierarchiákat használnának a CPU erőforrás elosztásához, a memóriafogyasztás szabályozásához és a bemeneti/kimeneti feladatokhoz. A különálló hierarchiák megnehezítik a kezelők közötti együttműködést, és további erőforrást igényelnek a kernel szempontjából a folyamat szabályainak alkalmazásakor, amelyet különféle hierarchiákban említenek.
  • 2023 második felében tervezzük a különálló könyvtárhierarchiák támogatásának megszüntetését, amikor a /usr külön van csatlakoztatva a gyökértől, vagy a /bin és /usr/bin, valamint a /lib és /usr/lib könyvtárak külön vannak.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster