Izdanje systemd system managera 252 sa podrškom za UKI (Unified Kernel Image).

Nakon pet mjeseci razvoja, predstavljeno je izdanje sistem menadžera systemd 252. Ključna promjena u novoj verziji bila je integracija podrške za modernizovani proces pokretanja, koji vam omogućava da provjerite ne samo kernel i bootloader, već i komponente osnovnog sistemskog okruženja koristeći digitalne potpise.

Predložena metoda uključuje korištenje objedinjene slike kernela UKI (Unified Kernel Image) pri učitavanju, koja kombinuje rukovatelj za učitavanje kernela iz UEFI (UEFI boot stub), sliku jezgre Linuxa i initrd sistemsko okruženje učitano u memoriju, korišteno za početnu inicijalizaciju u fazi prije montiranja root FS-a. UKI slika je upakovana kao jedna izvršna datoteka u PE formatu, koja se može učitati pomoću tradicionalnih pokretača ili pozvati direktno iz UEFI firmvera. 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čunavanje parametara TPM PCR (Registar konfiguracije platforme modula pouzdane platforme) registra koji se koriste za praćenje integriteta i generisanje digitalnog potpisa UKI slike, uključena je nova pomoćna systemd-mera. Javni ključ i prateće PCR informacije koje se koriste u potpisu mogu se ugraditi direktno u UKI boot image (ključ i potpis se čuvaju u PE datoteci u poljima '.pcrsig' i '.pcrkey') i ekstrahovati iz nje eksterno ili interne komunalije.

Konkretno, uslužni programi systemd-cryptsetup, systemd-cryptenroll i systemd-crds prilagođeni su da koriste ove informacije, pomoću kojih možete osigurati da su šifrirane particije diska vezane za digitalno potpisano jezgro (u ovom slučaju, pristup šifrovanoj particiji se pruža samo ako je UKI slika prošla verifikaciju digitalnim potpisom na osnovu parametara koji se nalaze u TPM-u).

Dodatno, uključen je uslužni program systemd-pcrphase, koji vam omogućava da kontrolirate vezivanje različitih faza pokretanja za parametre koji se nalaze u memoriji kriptoprocesora koji podržavaju TPM 2.0 specifikaciju (na primjer, možete učiniti da ključ za dešifriranje LUKS2 particije bude dostupan samo u initrd sliku i blokirati pristup njoj u kasnijim fazama preuzimanja).

Još neke promjene:

  • Osigurava da je zadana lokalizacija C.UTF-8 osim ako u postavkama nije navedena drugačija lokacija.
  • Sada je moguće izvesti kompletnu operaciju unapred podešene usluge (“systemctl preset”) tokom prvog pokretanja. Omogućavanje unaprijed postavljenih postavki u vrijeme pokretanja zahtijeva izgradnju s opcijom "-Dfirst-boot-full-preset", ali je planirano da bude omogućeno po defaultu u budućim izdanjima.
  • Jedinice za upravljanje korisnicima uključuju kontroler resursa CPU-a, što je omogućilo da se osigura da se postavke CPUWeight primjenjuju na sve jedinice isječaka koje se koriste za podjelu sistema na dijelove (app.slice, background.slice, session.slice) kako bi se izolirali resursi između različite korisničke usluge, koje se takmiče za CPU resurse. CPUWeight također podržava vrijednost “idle” za aktiviranje odgovarajućeg načina obezbjeđivanja resursa.
  • U privremenim (“prolaznim”) jedinicama i u uslužnom programu systemd-repart, nadjačavanje postavki je dozvoljeno kreiranjem padajućih datoteka u /etc/systemd/system/name.d/ direktoriju.
  • Za sistemske slike, postavljena je zastavica sa završenom podrškom, koja određuje ovu činjenicu na osnovu vrijednosti novog parametra “SUPPORT_END=” u datoteci /etc/os-release.
  • Dodane postavke “ConditionCredential=” i “AssertCredential=”, koje se mogu koristiti za ignorisanje ili rušenje jedinica ako određeni vjerodajnici nisu prisutni u sistemu.
  • Dodane su postavke “DefaultSmackProcessLabel=” i “DefaultDeviceTimeoutSec=” u system.conf i user.conf da se definira zadani SMACK sigurnosni nivo i vremensko ograničenje za aktivaciju jedinice.
  • U postavkama “ConditionFirmware=” i “AssertFirmware=” dodata 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 Board”, možete odrediti “ConditionFirmware=smbios” -field(board_name = "Custom Board")".
  • Tokom procesa inicijalizacije (PID 1), mogućnost uvoza akreditiva iz SMBIOS polja (Tip 11, “OEM vendor strings”) dodata je uz njihovu definiciju putem qemu_fwcfg, što pojednostavljuje davanje akreditiva virtuelnim mašinama i eliminiše potreba za alatima treće strane kao što su cloud -init i ignition.
  • Tokom gašenja, logika za demontažu virtuelnih sistema datoteka (proc, sys) je promenjena i informacije o procesima koji blokiraju demontažu sistema datoteka se čuvaju u dnevniku.
  • Filter sistemskog poziva (SystemCallFilter) dozvoljava pristup sistemskom pozivu riscv_flush_icache prema zadanim postavkama.
  • Sd-boot bootloader dodaje mogućnost pokretanja u mješovitom načinu, u kojem 64-bitni Linux kernel pokreće 32-bitni UEFI firmver. Dodata eksperimentalna mogućnost automatske primjene ključeva SecureBoot iz datoteka pronađenih u ESP-u (EFI sistemska particija).
  • Nove opcije dodane su u pomoćni program bootctl: “—sve arhitekture” za instaliranje binarnih datoteka za sve podržane EFI arhitekture, “—root=” i “—image=” za rad sa direktorijumom ili slikom diska, “—install-source =” za definiranje izvora za instalaciju, "-efi-boot-option-description=" za kontrolu imena unosa za pokretanje.
  • Komanda 'list-automounts' dodana je uslužnom programu systemctl za prikaz liste automatski montiranih direktorija i opcija "--image=" za izvršavanje naredbi u odnosu na navedenu sliku diska. Dodane opcije "--state=" i "--type=" u komande 'show' i 'status'.
  • systemd-networkd je dodao opcije “TCPCongestionControlAlgorithm=” za odabir TCP algoritma za kontrolu zagušenja, “KeepFileDescriptor=” za spremanje fajl deskriptora TUN/TAP sučelja, “NetLabel=” za postavljanje NetLabels, “RapidCommit=” za ubrzanje konfiguracije putem DHCPv6 (RFC 3315). Parametar “RouteTable=” dozvoljava specificiranje imena tabela usmjeravanja.
  • systemd-nspawn dozvoljava korištenje relativnih putanja datoteka u opcijama "--bind=" i "--overlay=". Dodata podrška za parametar 'rootidmap' opciji "--bind=" za vezanje root korisničkog ID-a u kontejneru za vlasnika montiranog direktorija na strani hosta.
  • systemd-resolved podrazumevano koristi OpenSSL kao pozadinu šifrovanja (podrška za gnutls je zadržana kao opcija). Nepodržani DNSSEC algoritmi se sada tretiraju kao nesigurni umjesto da vraćaju grešku (SERVFAIL).
  • systemd-sysusers, systemd-tmpfiles i systemd-sysctl implementiraju mogućnost prijenosa postavki kroz mehanizam za pohranu vjerodajnica.
  • Dodata naredba 'compare-versions' za systemd-analyze za poređenje stringova sa brojevima verzija (slično 'rpmdev-vercmp' i 'dpkg --compare-versions'). Dodata mogućnost filtriranja jedinica po maski naredbi 'systemd-analyze dump'.
  • Prilikom odabira višestepenog režima mirovanja (suspend-pa-hibernate), vrijeme provedeno u stanju pripravnosti se sada bira na osnovu predviđanja preostalog vijeka trajanja baterije. Trenutni prijelaz u stanje mirovanja događa se kada je baterija napunjena manje od 5%.
  • Novi način izlaza "-o short-delta" je dodat u 'journalctl', koji prikazuje vremensku razliku između različitih poruka u dnevniku.
  • systemd-repart dodaje podršku za kreiranje particija sa Squashfs sistemom datoteka i particija za dm-verity, uključujući i digitalne potpise.
  • Dodata "StopIdleSessionSec=" postavka na systemd-logind za završetak 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 od korisnika.
  • Sada je moguće pokrenuti uslužni program systemd-growfs u okruženjima bez udev-a.
  • systemd-backlight ima poboljšanu podršku za sisteme sa više grafičkih kartica.
  • Licenca za primjere koda date u dokumentaciji je promijenjena iz CC0 u MIT-0.

Promjene koje narušavaju kompatibilnost:

  • Kada se provjerava broj verzije kernela pomoću direktive ConditionKernelVersion, sada se koristi jednostavno poređenje nizova u operatorima '=' i '!=', a ako operator poređenja uopće nije naveden, glob-mask podudaranje se može koristiti pomoću znakova '*', '?' I '[', ']'. Da biste uporedili verzije stila stverscmp(), koristite operatore '<', '>', '<=' i '>='.
  • SELinux oznaka koja se koristi za provjeru pristupa iz jedinične datoteke sada se čita u vrijeme učitavanja datoteke, a ne u vrijeme provjere pristupa.
  • Uvjet "ConditionFirstBoot" sada se pokreće pri prvom pokretanju sistema samo direktno u fazi pokretanja i vraća "false" kada se pozivaju jedinice nakon što je pokretanje završeno.
  • U 2024. godini, systemd planira prestati podržavati mehanizam za ograničavanje resursa cgroup v1, koji je zastario u systemd izdanju 248. Administratorima se savjetuje da unaprijed vode računa o migraciji usluga zasnovanih na cgroup v2 na cgroup v1. Ključna razlika između cgroups v2 i v1 je upotreba zajedničke hijerarhije cgroups za sve vrste resursa, umjesto zasebnih hijerarhija za dodjelu CPU resursa, za regulaciju potrošnje memorije i za I/O. Odvojene hijerarhije dovode do poteškoća u organizaciji interakcije između rukovalaca i do dodatnih troškova resursa kernela kada se primjenjuju pravila za proces koji se referencira u različitim hijerarhijama.
  • U drugoj polovini 2023. planiramo da prekinemo podršku za podijeljene hijerarhije direktorija, gdje se /usr montira odvojeno od korijena, odnosno /bin i /usr/bin, /lib i /usr/lib su odvojeni.

izvor: opennet.ru

Dodajte komentar