UKI (Unified Kernel Image) toega süsteemse süsteemihalduri 252 väljalase

Pärast viit kuud kestnud arendustööd esitleti süsteemihalduri väljalaset systemd 252. Uue versiooni peamiseks muudatuseks oli moderniseeritud alglaadimisprotsessi toe integreerimine, mis võimaldab kontrollida mitte ainult kerneli ja alglaadurit, vaid ka komponente. süsteemi põhikeskkonnast digitaalallkirjade abil.

Pakutud meetod hõlmab laadimisel ühtse kerneli kujutise UKI (Unified Kernel Image) kasutamist, mis ühendab endas UEFI-st kerneli laadimise käitleja (UEFI boot stub), Linuxi kerneli kujutise ja mällu laaditud initrd süsteemikeskkonna. esialgseks lähtestamiseks etapis enne juur-FS-i paigaldamist. UKI-pilt on pakitud ühe käivitatava failina PE-vormingus, mida saab laadida traditsiooniliste alglaadurite abil või kutsuda otse UEFI püsivarast. UEFI-st kutsudes on võimalik kontrollida mitte ainult tuuma, vaid ka initrd-i sisu digitaalallkirja terviklikkust ja usaldusväärsust.

UKI kujutise terviklikkuse jälgimiseks ja digitaalallkirja genereerimiseks kasutatavate TPM PCR (Trusted Platform Module Platform Configuration Register) registrite parameetrite arvutamiseks on kaasatud uus utiliidi systemd-mease. Allkirjas kasutatud avaliku võtme ja sellega kaasneva PCR-teabe saab manustada otse UKI alglaadimiskujutisse (võti ja allkiri salvestatakse PE-faili väljadele „.pcrsig” ja „.pcrkey”) ning sealt välise abil välja võtta. või sisemised kommunaalteenused.

Eelkõige on selle teabe kasutamiseks kohandatud utiliidid systemd-cryptsetup, systemd-cryptenroll ja systemd-creds, mille abil saate tagada, et krüptitud kettapartitsioonid on seotud digitaalselt allkirjastatud tuumaga (antud juhul juurdepääs krüptitud partitsioonile esitatakse ainult siis, kui UKI-pilt on läbinud digitaalallkirjaga kontrolli TPM-is asuvate parameetrite alusel).

Lisaks on kaasas utiliit systemd-pcrphase, mis võimaldab kontrollida erinevate alglaadimisetappide sidumist parameetritega, mis asuvad TPM 2.0 spetsifikatsiooni toetavate krüptoprotsessorite mälus (näiteks saate LUKS2 partitsiooni dekrüpteerimisvõtme teha kättesaadavaks ainult initrd-pilt ja blokeerige sellele juurdepääs allalaadimise hilisemates etappides).

Mõned muud muudatused:

  • Tagab, et vaikelokaadiks on C.UTF-8, välja arvatud juhul, kui seadetes on määratud teistsugune lokaat.
  • Nüüd on esimese alglaadimise ajal võimalik sooritada täielik teenuse eelseadete toiming (“systemctl preset”). Eelseadete lubamine alglaadimise ajal nõuab loomist suvandiga "-Dfirst-boot-full-preset", kuid plaanitakse tulevastes versioonides vaikimisi lubada.
  • Kasutajahaldusüksused hõlmavad protsessori ressursikontrollerit, mis võimaldas tagada, et CPUWeighti sätteid rakendatakse kõikidele lõiguüksustele, mida kasutatakse süsteemi osadeks jagamiseks (app.slice, background.slice, session.slice), et eraldada ressursse erinevad kasutajateenused, konkureerivad protsessori ressursside pärast. CPUWeight toetab ka "idle" väärtust, et aktiveerida sobiv ressursside varustamise režiim.
  • Ajutistes ("mööduvates") üksustes ja utiliidis systemd-repart on sätete alistamine lubatud, luues kataloogis /etc/systemd/system/name.d/ rippfailid.
  • Süsteemipiltide jaoks on seatud toega lõpuga lipp, mis määrab selle fakti uue parameetri "SUPPORT_END=" väärtuse põhjal failis /etc/os-release.
  • Lisatud on sätted „ConditionCredential=” ja „AssertCredential=”, mida saab kasutada üksuste ignoreerimiseks või kokkujooksmiseks, kui teatud mandaadid süsteemis puuduvad.
  • Faultidele system.conf ja user.conf on lisatud sätted „DefaultSmackProcessLabel=” ja „DefaultDeviceTimeoutSec=”, et määratleda SMACK-i vaiketurvatase ja üksuse aktiveerimise ajalõpp.
  • Seadetesse “ConditionFirmware=” ja “AssertFirmware=” on lisatud võimalus määrata üksikuid SMBIOS-i välju, näiteks käivitada üksus ainult siis, kui väli /sys/class/dmi/id/board_name sisaldab väärtust “Custom Board”, saate määrata "ConditionFirmware=smbios" -field(board_name = "Custom Board")".
  • Lähtestamisprotsessi (PID 1) käigus on lisaks nende definitsioonile qemu_fwcfg kaudu lisatud võimalus importida mandaate SMBIOS-väljadelt (tüüp 11, "OEM-i hankija stringid"), mis lihtsustab virtuaalmasinatele mandaatide andmist ja välistab vajadus kolmanda osapoole tööriistade, nagu cloud -init ja ignition, järele.
  • Väljalülitamise ajal on muudetud virtuaalsete failisüsteemide (proc, sys) lahtiühendamise loogikat ja logisse salvestatakse info failisüsteemide lahtiühendamist blokeerivate protsesside kohta.
  • Süsteemikõne filter (SystemCallFilter) võimaldab vaikimisi juurdepääsu süsteemikutsele riscv_flush_icache.
  • Sd-boot bootloader lisab võimaluse käivitada segarežiimis, kus 64-bitine Linuxi tuum töötab 32-bitisest UEFI püsivarast. Lisatud eksperimentaalne võimalus ESP-s (EFI süsteemisektsioonis) leitud failidest SecureBoot võtmete automaatseks rakendamiseks.
  • Bootctl utiliidile on lisatud uued valikud: "—all-architectures" binaarfailide installimiseks kõigi toetatud EFI arhitektuuride jaoks, "—root=" ja "—image=" kataloogi või ketta kujutisega töötamiseks, "-install-source =” installiallika määramiseks, "-efi-boot-option-description=" alglaadimiskirjete nimede kontrollimiseks.
  • Käsk 'list-automounts' on lisatud systemctl utiliidile, et kuvada automaatselt ühendatud kataloogide loend ja suvand "--image=", et käivitada käske seoses määratud kettapildiga. Käskudele "show" ja "status" on lisatud valikud "--state=" ja "--type=".
  • systemd-networkd lisas valikud “TCPCongestionControlAlgorithm=”, et valida TCP ummikute kontrolli algoritm, “KeepFileDescriptor=” TUN/TAP-liideste failideskriptori salvestamiseks, “NetLabel=” NetLabelite määramiseks, “RapidCommit=” konfigureerimise kiirendamiseks DHCPv6 kaudu. (RFC 3315). Parameeter “RouteTable=” võimaldab määrata marsruutimistabelite nimesid.
  • systemd-nspawn lubab suvandites "--bind=" ja "--overlay="" kasutada suhtelisi failiteid. Suvandile "--bind=" on lisatud parameetri "rootidmap" tugi, et siduda konteineris olev juurkasutaja ID hosti poolel ühendatud kataloogi omanikuga.
  • systemd-resolved kasutab vaikimisi krüptimise taustaprogrammina OpenSSL-i (gnutlsi tugi säilib valikuna). Toetamata DNSSEC-algoritme käsitletakse nüüd vea (SERVFAIL) tagastamise asemel ebaturvalistena.
  • systemd-sysusers, systemd-tmpfiles ja systemd-sysctl rakendavad seadete edastamise võimalust mandaatide salvestusmehhanismi kaudu.
  • Systemd-analyze'i jaoks on lisatud käsk 'compare-versions', et võrrelda stringe versiooninumbritega (sarnaselt käskudele 'rpmdev-vercmp' ja 'dpkg --compare-versions'). Lisati käsule 'systemd-analyze dump' võimalus maski järgi ühikuid filtreerida.
  • Mitmeastmelise puhkerežiimi valimisel (peata, siis talveunerežiim) valitakse ooterežiimis olev aeg nüüd aku järelejäänud tööea prognoosi põhjal. Vahetu üleminek puhkerežiimile toimub siis, kui akut on laetud vähem kui 5%.
  • Sõnale 'journalctl' on lisatud uus väljundrežiim "-o short-delta", mis kuvab logis erinevate teadete ajavahe.
  • systemd-repart lisab toe partitsioonide loomiseks Squashfsi failisüsteemiga ja dm-verity partitsioonide loomiseks, sealhulgas digitaalallkirjadega.
  • Süsteemi systemd-logind lisati säte "StopIdleSessionSec=", et lõpetada mitteaktiivne seanss pärast määratud ajalõppu.
  • Systemd-cryptenroll on lisanud suvandi "--unlock-key-file=", et eraldada failist dekrüpteerimisvõti selle asemel, et kasutajalt seda küsida.
  • Nüüd on võimalik käivitada utiliit systemd-growfs keskkondades, kus puudub udev.
  • systemd-backlight on täiustanud mitme graafikakaardiga süsteemide tuge.
  • Dokumentatsioonis toodud koodinäidete litsents on muudetud CC0-st MIT-0-ks.

Ühilduvust rikkuvad muudatused:

  • Kerneli versiooninumbri kontrollimisel direktiivi ConditionKernelVersion abil kasutatakse nüüd lihtsat stringide võrdlust operaatorites '=' ja '!=' ning kui võrdlusoperaatorit pole üldse määratud, saab kasutada glob-maski sobitamist, kasutades tähemärgid '*', '?' Ja '[', ']'. Stverscmp() stiiliversioonide võrdlemiseks kasutage operaatoreid '<', '>', '<=' ja '>='.
  • SELinuxi silti, mida kasutatakse üksuse failist juurdepääsu kontrollimiseks, loetakse nüüd faili laadimise ajal, mitte juurdepääsu kontrollimise ajal.
  • Tingimus "ConditionFirstBoot" käivitatakse nüüd süsteemi esimesel alglaadimisel ainult vahetult alglaadimise etapis ja tagastab "false" üksuste kutsumisel pärast alglaadimise lõpetamist.
  • 2024. aastal kavatseb systemd lõpetada cgroup v1 ressursside piiramise mehhanismi toetamise, mis süsteemi versioonis 248 aegunud. Administraatoritel soovitatakse enne cgroup v2-põhiste teenuste üleviimist versioonile cgroup v1. Peamine erinevus cgroups v2 ja v1 vahel on ühise cgroups hierarhia kasutamine igat tüüpi ressursside jaoks, selle asemel, et eraldada CPU ressursse, reguleerida mälutarbimist ja sisend-väljundit. Eraldi hierarhiad põhjustavad raskusi töötlejatevahelise suhtluse korraldamisel ja täiendavaid kerneli ressursikulusid, kui rakendatakse reegleid erinevates hierarhiates viidatud protsessile.
  • 2023. aasta teisel poolel plaanime lõpetada poolitatud kataloogihierarhiate toetamise, kus /usr on juurtest eraldi ühendatud või /bin ja /usr/bin, /lib ja /usr/lib eraldatakse.

Allikas: opennet.ru

Lisa kommentaar