Izdanje upravitelja sustava systemd 252 s podrškom za UKI (Unified Kernel Image).

Nakon pet mjeseci razvoja predstavljeno je izdanje upravitelja sustava systemd 252. Ključna promjena u novoj verziji bila je integracija podrške za modernizirani proces pokretanja, koji omogućuje provjeru ne samo kernela i bootloadera, već i komponenti osnovnog okruženja sustava korištenjem digitalnih potpisa.

Predložena metoda uključuje korištenje objedinjene slike jezgre UKI (Unified Kernel Image) prilikom učitavanja, koja kombinira rukovatelj za učitavanje jezgre iz UEFI-ja (UEFI boot stub), slike jezgre Linuxa i okruženja initrd sustava učitanog u memoriju, koji se koristi za početnu inicijalizaciju u fazi prije montiranja korijenskog FS-a. UKI slika pakirana je kao jedna izvršna datoteka u PE formatu, koja se može učitati korištenjem tradicionalnih pokretačkih programa ili pozvati izravno iz UEFI firmware-a. Kada se pozove iz UEFI-ja, moguće je provjeriti integritet i pouzdanost digitalnog potpisa ne samo kernela, već i sadržaja initrd-a.

Za izračun parametara TPM PCR (Trusted Platform Module Platform Configuration Register) registara koji se koriste za nadzor cjelovitosti i generiranje digitalnog potpisa UKI slike, uključen je novi pomoćni program systemd-measure. Javni ključ koji se koristi u potpisu i popratne informacije o PCR-u mogu se ugraditi izravno u UKI sliku za pokretanje (ključ i potpis su spremljeni u PE datoteci u poljima '.pcrsig' i '.pcrkey') i ekstrahirati iz nje vanjskim ili interne komunalije.

Konkretno, pomoćni programi systemd-cryptsetup, systemd-cryptenroll i systemd-creds prilagođeni su za korištenje ovih informacija, s kojima možete osigurati da su šifrirane particije diska vezane na digitalno potpisanu jezgru (u ovom slučaju, pristup šifriranoj particiji pruža se samo ako je UKI slika prošla provjeru digitalnog potpisa na temelju parametara koji se nalaze u TPM-u).

Dodatno, uključen je uslužni program systemd-pcrphase koji vam omogućuje kontrolu vezanja različitih faza pokretanja na parametre koji se nalaze u memoriji kriptoprocesora koji podržavaju specifikaciju TPM 2.0 (na primjer, ključ za dešifriranje LUKS2 particije možete učiniti dostupnim samo u initrd sliku i blokirajte joj pristup u kasnijim fazama preuzimanja).

Neke druge promjene:

  • Osigurava da je zadana lokalizacija C.UTF-8 osim ako drugačija lokalizacija nije navedena u postavkama.
  • Sada je moguće izvršiti potpunu operaciju unaprijed postavljenih usluga (“systemctl unaprijed postavljenih”) tijekom prvog pokretanja. Omogućavanje unaprijed postavljenih postavki tijekom pokretanja zahtijeva izgradnju s opcijom "-Dfirst-boot-full-preset", ali planira se omogućiti prema zadanim postavkama u budućim izdanjima.
  • Jedinice za upravljanje korisnicima uključuju kontroler CPU resursa, što je omogućilo da se postavke CPUWeight primjenjuju na sve jedinice odsječka koje se koriste za podjelu sustava na dijelove (app.slice, background.slice, session.slice) kako bi se izolirali resursi između različite korisničke usluge koje se natječu za CPU resurse. CPUWeight također podržava vrijednost "idle" za aktiviranje odgovarajućeg načina pružanja resursa.
  • U privremenim ("prolaznim") jedinicama iu uslužnom programu systemd-repart dopušteno je nadjačavanje postavki stvaranjem ulaznih datoteka u direktoriju /etc/systemd/system/name.d/.
  • Za slike sustava, postavljena je zastavica završene podrške, utvrđujući tu činjenicu na temelju vrijednosti novog parametra “SUPPORT_END=” u datoteci /etc/os-release.
  • Dodane postavke “ConditionCredential=” i “AssertCredential=” koje se mogu koristiti za ignoriranje ili rušenje jedinica ako određene vjerodajnice nisu prisutne u sustavu.
  • Dodane postavke “DefaultSmackProcessLabel=” i “DefaultDeviceTimeoutSec=” u system.conf i user.conf za definiranje zadane sigurnosne razine SMACK-a i vremenskog ograničenja aktivacije jedinice.
  • U postavkama “ConditionFirmware=” i “AssertFirmware=” dodana je mogućnost specificiranja pojedinačnih SMBIOS polja, na primjer, za pokretanje jedinice samo ako polje /sys/class/dmi/id/board_name sadrži vrijednost “Custom Ploča”, možete odrediti “ConditionFirmware=smbios” -field(board_name = "Custom Board")".
  • Tijekom procesa inicijalizacije (PID 1), mogućnost uvoza vjerodajnica iz SMBIOS polja (Tip 11, "OEM vendor strings") dodana je uz njihovu definiciju putem qemu_fwcfg, što pojednostavljuje pružanje vjerodajnica virtualnim strojevima i eliminira potreba za alatima trećih strana kao što su cloud -init i ignition.
  • Tijekom isključivanja, logika za demontažu virtualnih datotečnih sustava (proc, sys) je promijenjena i informacije o procesima koji blokiraju demontažu datotečnih sustava spremaju se u dnevnik.
  • Filter sistemskog poziva (SystemCallFilter) prema zadanim postavkama dopušta pristup sistemskom pozivu riscv_flush_icache.
  • Sd-boot bootloader dodaje mogućnost pokretanja u mješovitom načinu rada, u kojem 64-bitni Linux kernel radi iz 32-bitnog UEFI firmware-a. Dodana je eksperimentalna mogućnost automatske primjene ključeva SecureBoot iz datoteka pronađenih u ESP-u (particija EFI sustava).
  • Dodane su nove opcije uslužnom programu bootctl: “—all-architectures” za instaliranje binarnih datoteka za sve podržane EFI arhitekture, “—root=” i “—image=” za rad sa slikom direktorija ili diska, “—install-source =” za definiranje izvora za instalaciju, "-efi-boot-option-description=" za kontrolu naziva unosa za pokretanje.
  • Naredba 'list-automounts' dodana je uslužnom programu systemctl za prikaz popisa automatski montiranih direktorija i opcija '--image=' za izvršavanje naredbi u odnosu na navedenu sliku diska. Dodane su opcije "--state=" i "--type=" naredbama "show" i "status".
  • systemd-networkd je dodao opcije “TCPCongestionControlAlgorithm=” za odabir TCP algoritma kontrole zagušenja, “KeepFileDescriptor=” za spremanje deskriptora datoteke TUN/TAP sučelja, “NetLabel=” za postavljanje NetLabels, “RapidCommit=” za ubrzavanje konfiguracije putem DHCPv6 (RFC 3315). Parametar “RouteTable=” omogućuje određivanje naziva tablica usmjeravanja.
  • systemd-nspawn dopušta korištenje relativnih staza datoteka u opcijama "--bind=" i "--overlay=". Dodana je podrška za parametar 'rootidmap' opciji "--bind=" za vezanje ID-a root korisnika u spremniku za vlasnika montiranog direktorija na strani glavnog računala.
  • systemd-resolved prema zadanim postavkama koristi OpenSSL kao svoju pozadinu šifriranja (podrška za gnutls zadržana je kao opcija). Nepodržani DNSSEC algoritmi sada se tretiraju kao nesigurni umjesto vraćanja pogreške (SERVFAIL).
  • systemd-sysusers, systemd-tmpfiles i systemd-sysctl implementiraju mogućnost prijenosa postavki putem mehanizma za pohranu vjerodajnica.
  • Dodana je naredba 'compare-versions' uslužnom programu systemd-analyze za usporedbu nizova s ​​brojevima verzija (slično 'rpmdev-vercmp' i 'dpkg --compare-versions'). Mogućnost filtriranja jedinica prema maski dodana je naredbi 'systemd-analyze dump'.
  • Prilikom odabira višestupanjskog načina mirovanja (suspend-then-hibernate), vrijeme provedeno u stanju pripravnosti sada se odabire na temelju predviđanja preostalog vijeka trajanja baterije. Trenutačni prijelaz u stanje mirovanja događa se kada ostane manje od 5% napunjenosti baterije.
  • Novi izlazni način "-o short-delta" dodan je u 'journalctl', prikazujući vremensku razliku između različitih poruka u zapisniku.
  • systemd-repart dodaje podršku za stvaranje particija s datotečnim sustavom Squashfs i particija za dm-verity, uključujući s digitalnim potpisima.
  • Dodana je postavka "StopIdleSessionSec=" u systemd-logind za prekid neaktivne sesije nakon određenog vremenskog ograničenja.
  • Systemd-cryptenroll je dodao opciju "--unlock-key-file=" za izdvajanje ključa za dešifriranje iz datoteke umjesto da traži korisniku.
  • Sada je moguće pokrenuti uslužni program systemd-growfs u okruženjima bez udeva.
  • systemd-backlight ima poboljšanu podršku za sustave s više grafičkih kartica.
  • Licenca za primjere koda navedene u dokumentaciji promijenjena je iz CC0 u MIT-0.

Promjene koje narušavaju kompatibilnost:

  • Prilikom provjere broja verzije kernela pomoću direktive ConditionKernelVersion, jednostavna usporedba nizova sada se koristi u '=' i '!=' operatorima, a ako operator usporedbe uopće nije naveden, podudaranje glob-maske može se koristiti korištenjem znakova '*', '?' i '[', ']'. Za usporedbu verzija u stilu funkcije stverscmp(), trebali biste koristiti operatore '', '='.
  • SELinux oznaka koja se koristi za provjeru pristupa iz jedinične datoteke sada se čita u trenutku učitavanja datoteke, a ne u trenutku provjere pristupa.
  • Uvjet "ConditionFirstBoot" sada se pokreće pri prvom pokretanju sustava samo izravno u fazi pokretanja i vraća "false" kada poziva jedinice nakon završetka pokretanja.
  • U 2024. systemd planira prestati podržavati mehanizam ograničavanja resursa cgroup v1, koji je zastario u systemd izdanju 248. Administratorima se savjetuje da unaprijed vode računa o migraciji usluga temeljenih na cgroup v2 na cgroup v1. Ključna razlika između cgroups v2 i v1 je korištenje zajedničke hijerarhije cgroups za sve vrste resursa, umjesto odvojenih hijerarhija za dodjelu CPU resursa, za regulaciju potrošnje memorije i za I/O. Odvojene hijerarhije dovode do poteškoća u organiziranju interakcije između rukovatelja i do dodatnih troškova resursa jezgre prilikom primjene pravila za proces na koji se pozivaju različite hijerarhije.
  • U drugoj polovici 2023. planiramo ukinuti podršku za podijeljene hijerarhije direktorija, gdje je /usr montiran odvojeno od korijena ili su /bin i /usr/bin, /lib i /usr/lib odvojeni.

Izvor: opennet.ru

Dodajte komentar