Frigivelse af systemd system manager 252 med understøttelse af UKI (Unified Kernel Image).

Efter fem måneders udvikling blev udgivelsen af ​​systemmanageren systemd 252 præsenteret. Den vigtigste ændring i den nye version var integrationen af ​​understøttelse af en moderniseret opstartsproces, som giver dig mulighed for at verificere ikke kun kernen og bootloaderen, men også komponenter af det grundlæggende systemmiljø ved hjælp af digitale signaturer.

Den foreslåede metode involverer brugen af ​​et unified kernel image UKI (Unified Kernel Image) ved indlæsning, som kombinerer en handler til indlæsning af kernen fra UEFI (UEFI boot stub), et Linux-kernebillede og initrd systemmiljøet indlæst i hukommelsen, brugt til initialisering på stadiet før montering af root FS . UKI-billedet er pakket som en enkelt eksekverbar fil i PE-format, som kan indlæses ved hjælp af traditionelle bootloadere eller kaldes direkte fra UEFI-firmwaren. Når det kaldes fra UEFI, er det muligt at verificere integriteten og pålideligheden af ​​den digitale signatur af ikke kun kernen, men også indholdet af initrd.

For at beregne parametrene for TPM PCR-registrene (Trusted Platform Module Platform Configuration Register), der bruges til at overvåge integriteten og generere en digital signatur af UKI-billedet, er der inkluderet en ny utility systemd-measure. Den offentlige nøgle og den medfølgende PCR-information, der bruges i signaturen, kan indlejres direkte i UKI-startbilledet (nøglen og signaturen gemmes i en PE-fil i felterne '.pcrsig' og '.pcrkey') og udtrækkes fra den af ​​eksternt eller interne forsyningsselskaber.

Især systemd-cryptsetup, systemd-cryptenroll og systemd-creds-værktøjerne er blevet tilpasset til at bruge denne information, hvormed du kan sikre, at krypterede diskpartitioner er bundet til en digitalt signeret kerne (i dette tilfælde adgang til den krypterede partition leveres kun, hvis UKI-billedet har bestået verifikation med digital signatur baseret på parametre placeret i TPM).

Derudover er systemd-pcrphase-værktøjet inkluderet, som giver dig mulighed for at kontrollere bindingen af ​​forskellige opstartstrin til parametre placeret i hukommelsen på kryptoprocessorer, der understøtter TPM 2.0-specifikationen (f.eks. kan du kun gøre LUKS2-partitionsdekrypteringsnøglen tilgængelig i initrd-billedet og bloker adgangen til det ved senere downloads).

Nogle andre ændringer:

  • Sikrer, at standardlokaliteten er C.UTF-8, medmindre en anden lokalitet er angivet i indstillingerne.
  • Det er nu muligt at udføre en komplet service-forudindstilling ("systemctl-forudindstilling") under den første opstart. Aktivering af forudindstillinger for opstartstid kræver bygning med "-Dfirst-boot-full-preset" muligheden, men det er planlagt at blive aktiveret som standard i fremtidige udgivelser.
  • Brugerstyringsenhederne involverer en CPU-ressourcecontroller, som gjorde det muligt at sikre, at CPUWeight-indstillingerne anvendes på alle udsnitsenheder, der bruges til at opdele systemet i dele (app.slice, background.slice, session.slice) for at isolere ressourcer mellem forskellige brugertjenester, der konkurrerer om CPU-ressourcer. CPUWeight understøtter også "tomgangsværdien" for at aktivere den passende ressourceforsyningstilstand.
  • I midlertidige (“forbigående”) enheder og i systemd-repart-værktøjet er tilsidesættelse af indstillinger tilladt ved at oprette drop-in-filer i mappen /etc/systemd/system/name.d/.
  • For systembilleder er flaget, der er afsluttet, indstillet, hvilket bestemmer dette faktum baseret på værdien af ​​den nye parameter "SUPPORT_END=" i filen /etc/os-release.
  • Tilføjet “ConditionCredential=” og “AssertCredential=” indstillinger, som kan bruges til at ignorere eller crashe enheder, hvis visse legitimationsoplysninger ikke er til stede i systemet.
  • Tilføjede indstillingerne “DefaultSmackProcessLabel=” og “DefaultDeviceTimeoutSec=” til system.conf og user.conf for at definere standard SMACK-sikkerhedsniveauet og timeout for enhedsaktivering.
  • I indstillingerne "ConditionFirmware=" og "AssertFirmware=" er muligheden for at angive individuelle SMBIOS-felter tilføjet, for eksempel for kun at starte en enhed, hvis feltet /sys/class/dmi/id/board_name indeholder værdien "Custom Board", kan du angive "ConditionFirmware=smbios" -field(board_name = "Custom Board").
  • Under initialiseringsprocessen (PID 1) er muligheden for at importere legitimationsoplysninger fra SMBIOS-felter (Type 11, "OEM-leverandørstrenge") blevet tilføjet ud over deres definition via qemu_fwcfg, hvilket forenkler leveringen af ​​legitimationsoplysninger til virtuelle maskiner og eliminerer behov for tredjepartsværktøjer såsom cloud -init og ignition.
  • Under nedlukning er logikken for afmontering af virtuelle filsystemer (proc, sys) blevet ændret, og information om processer, der blokerer afmontering af filsystemer, er gemt i loggen.
  • Systemopkaldsfilteret (SystemCallFilter) giver som standard adgang til riscv_flush_icache-systemkaldet.
  • sd-boot bootloaderen tilføjer muligheden for at starte i blandet tilstand, hvor 64-bit Linux-kernen kører fra 32-bit UEFI-firmware. Tilføjet eksperimentel mulighed for automatisk at anvende SecureBoot-nøgler fra filer fundet i ESP (EFI-systempartition).
  • Nye muligheder er blevet tilføjet til bootctl-værktøjet: "—all-architectures" til at installere binære filer for alle understøttede EFI-arkitekturer, "—root=" og "—image=" til at arbejde med en mappe eller diskimage, "—install-source =” for at definere kilden til installationen, "-efi-boot-option-description=" for at kontrollere navne på opstartsindgange.
  • Kommandoen 'list-automounts' er blevet tilføjet til systemctl-værktøjet for at vise en liste over automatisk monterede mapper og "--image=" muligheden for at udføre kommandoer i forhold til det angivne diskbillede. Tilføjet "--state=" og "--type=" muligheder til kommandoerne 'vis' og 'status'.
  • systemd-networkd tilføjede muligheder “TCPCongestionControlAlgorithm=” for at vælge TCP-overbelastningskontrolalgoritmen, “KeepFileDescriptor=” for at gemme filbeskrivelsen af ​​TUN/TAP-grænseflader, “NetLabel=” for at indstille NetLabels, “RapidCommit=” for at fremskynde konfigurationen via DHCPv6 (RFC 3315). Parameteren "RouteTable=" gør det muligt at angive navnene på routingtabeller.
  • systemd-nspawn tillader brug af relative filstier i "--bind=" og "--overlay=" mulighederne. Tilføjet understøttelse af 'rootidmap'-parameteren til "--bind="-indstillingen for at binde root-bruger-id'et i containeren til ejeren af ​​den monterede mappe på værtssiden.
  • systemd-resolved bruger OpenSSL som sin krypteringsbackend som standard (gnutls-understøttelse bevares som en mulighed). Ikke-understøttede DNSSEC-algoritmer behandles nu som usikre i stedet for at returnere en fejl (SERVFAIL).
  • systemd-sysusers, systemd-tmpfiles og systemd-sysctl implementerer evnen til at overføre indstillinger gennem en legitimationslagringsmekanisme.
  • Tilføjet kommandoen 'compare-versions' til systemd-analyze for at sammenligne strenge med versionsnumre (svarende til 'rpmdev-vercmp' og 'dpkg --compare-versions'). Tilføjet muligheden for at filtrere enheder efter maske til kommandoen 'systemd-analyze dump'.
  • Når du vælger en flertrins dvaletilstand (suspend-og-dvale), vælges tiden brugt i standby-tilstand nu baseret på prognosen for resterende batterilevetid. Øjeblikkelig overgang til dvaletilstand sker, når der er mindre end 5 % batteriladning tilbage.
  • En ny udgangstilstand "-o short-delta" er blevet tilføjet til 'journalctl', der viser tidsforskellen mellem forskellige meddelelser i loggen.
  • systemd-repart tilføjer understøttelse til oprettelse af partitioner med Squashfs-filsystemet og partitioner til dm-verity, herunder med digitale signaturer.
  • Tilføjet "StopIdleSessionSec=" indstilling til systemd-login for at afslutte en inaktiv session efter en specificeret timeout.
  • Systemd-cryptenroll har tilføjet en "--unlock-key-file=" mulighed for at udtrække dekrypteringsnøglen fra en fil i stedet for at spørge brugeren.
  • Det er nu muligt at køre systemd-growfs-værktøjet i miljøer uden udev.
  • systemd-backlight har forbedret understøttelse af systemer med flere grafikkort.
  • Licensen for kodeeksemplerne i dokumentationen er blevet ændret fra CC0 til MIT-0.

Ændringer, der bryder kompatibiliteten:

  • Når du kontrollerer kerneversionsnummeret ved hjælp af ConditionKernelVersion-direktivet, bruges nu en simpel strengsammenligning i '='- og '!='-operatorerne, og hvis sammenligningsoperatoren slet ikke er angivet, kan glob-mask-matchning bruges ved hjælp af tegn '*', '?' Og '[', ']'. For at sammenligne versioner af stverscmp()-stil, skal du bruge operatorerne '<', '>', '<=' og '>='.
  • SELinux-tagget, der bruges til at kontrollere adgang fra en enhedsfil, læses nu på det tidspunkt, hvor filen indlæses, i stedet for på tidspunktet for adgangskontrol.
  • "ConditionFirstBoot"-tilstanden udløses nu ved den første opstart af systemet kun direkte ved opstartsfasen og returnerer "falsk", når enheder kaldes, efter at opstarten er fuldført.
  • I 2024 planlægger systemd at stoppe med at understøtte cgroup v1-ressourcebegrænsningsmekanismen, som blev forældet i systemd release 248. Administratorer rådes til at passe på forud for migrering af cgroup v2-baserede tjenester til cgroup v1. Den vigtigste forskel mellem cgroups v2 og v1 er brugen af ​​et fælles cgroups-hierarki for alle typer ressourcer i stedet for separate hierarkier til tildeling af CPU-ressourcer, til regulering af hukommelsesforbrug og for I/O. Separate hierarkier fører til vanskeligheder med at organisere interaktion mellem behandlere og til yderligere omkostninger til kerneressourcer, når reglerne anvendes for en proces, der refereres til i forskellige hierarkier.
  • I anden halvdel af 2023 planlægger vi at afslutte understøttelsen af ​​opdelte mappehierarkier, hvor /usr er monteret separat fra roden, eller /bin og /usr/bin, /lib og /usr/lib er adskilt.

Kilde: opennet.ru

Tilføj en kommentar