Udgivelsen af systemadministrator systemd 252 med støtte til UKI (Unified Kernel Image)

Efter fem müneders udvikling er version 252 af systemadministrator systemd blevet frigivet. Den vigtigste Ìndring i den nye version er integreringen af støtte til den opgraderede opstartsproces, som muliggør verifikation af digitale signaturer ikke kun for kernen og bootloaderen, men ogsü for komponenter i det grundlÌggende systemmiljø.

Den foreslüede metode indebÌrer brugen af et standardiseret kernobillede UKI (Unified Kernel Image) under opstarten, som kombinerer hündteringen af kernens opstart fra UEFI (UEFI boot stub), Linux-kernen og det systemmiljø initrd, der bruges til den indledende initialisering før montering af rodfilsystemet. UKI-billedet prÌsenteres som en enkelt eksekverbar fil i PE-format, som kan indlÌses af traditionelle bootloadere eller kaldet direkte fra UEFI-firmware. Nür det kaldes fra UEFI, gives der mulighed for at kontrollere integriteten og pülideligheden gennem en digital signatur, ikke kun af kernen, men ogsü af indholdet i initrd.

For at beregne parametrene af TPM PCR (Trusted Platform Module Platform Configuration Register), der bruges til at kontrollere integriteten og danne en digital signatur af UKI-billedet, er der inkluderet et nyt værktøj, systemd-measure. Den offentlig nøgle, der bruges i signaturen, sammen med relevante oplysninger om PCR, kan indbygges direkte i bootbilledet UKI (nøgle og signatur gemmes i en fil i PE-format i felterne ‘.pcrsig’ og ‘.pcrkey’) og udtrækkes af eksterne eller interne værktøjer.

Derudover er vÌrktøjerne systemd-cryptsetup, systemd-cryptenroll og systemd-creds tilpasset til at bruge disse oplysninger, hvilket gør det muligt at binde krypterede diskpartitioner til en digitalt signeret kerne (i dette tilfÌlde gives der kun adgang til den krypterede partition, hvis UKI-billedet har bestüet verifikationen af den digitale signatur baseret pü de parametre, der er placeret i TPM).

Desuden er der inkluderet vÌrktøjet systemd-pcrphase, som muliggør styring af bindingen mellem forskellige opstartfaser og de parametre, der er placeret i hukommelsen af kryptoprocessorer, der understøtter TPM 2.0-specifikationen (for eksempel kan nøgle til dekryptering af LUKS2-partitionen kun gøres tilgÌngelig i initrd-billedet og tilgüs ikke pü senere opstartsfaser).

Nogle andre ĂŚndringer:

  • Standard lokalitet C.UTF-8 er sikret, medmindre en anden lokalitet er specificeret i indstillingerne.
  • Muligheden for at udføre en fuld forudindstillingsoperation af tjenesterne (‘systemctl preset’) under første opstart er implementeret. For at aktivere forudindstillingen under opstart krĂŚves en build med indstillingen ‘-Dfirst-boot-full-preset’, men det planlĂŚgges at blive aktiveret som standard i fremtidige udgivelser.
  • I enhederne til brugerstyring er CPU-resourcekontrolleren blevet aktiveret, hvilket muliggør anvendelse af CPUWeight-indstillinger pĂĽ alle slice-enheder, der anvendes til at opdele systemet i dele (app.slice, background.slice, session.slice) for at isolere ressourcer mellem forskellige brugertjenester, der konkurrerer om CPU-ressourcer. Der er ogsĂĽ tilføjet support for vĂŚrdien ‘idle’ i CPUWeight for at aktivere den tilsvarende ressourceleveringsmetode.
  • Det er nu tilladt at overskrive indstillingerne i midlertidige (‘transient’) enheder og i systemd-repart-vĂŚrktøjet ved at oprette drop-in filer i katalogen /etc/systemd/system/ navn.d/.
  • For systembilleder er det sikret, at flaget for ophør af support (‘support-ended’) etableres, idet dette bestemmes ud fra vĂŚrdien af den nye parameter ‘SUPPORT_END=’ i filen /etc/os-release.
  • Indstillingerne ‘ConditionCredential=’ og ‘AssertCredential=’ er tilføjet, og de kan bruges til at ignorere eller tvinge enheden til at afslutte, hvis bestemte legitimationsoplysninger ikke findes i systemet.
  • Indstillingerne ‘DefaultSmackProcessLabel=’ og ‘DefaultDeviceTimeoutSec=’ er tilføjet i system.conf og user.conf for at definere SMACK sikkerhedsniveauet og timeout for aktivering af enheden, der anvendes som standard.
  • I indstillingerne ‘ConditionFirmware=’ og ‘AssertFirmware=’ er der tilføjet mulighed for at angive specifikke SMBIOS-felter, f.eks. for at starte enheden kun, nĂĽr feltet /sys/class/dmi/id/board_name indeholder vĂŚrdien ‘Custom Board’; man kan angive ‘ConditionFirmware=smbios-field(board_name = ‘Custom Board’)' stand.
  • I initialiseringsprocessen (PID 1) er muligheden for at importere legitimationsoplysninger fra SMBIOS-felter (Type 11, ‘OEM vendor strings’) tilføjet som et supplement til at definere dem via qemu_fwcfg, hvilket gør det lettere at levere legitimationsoplysninger virtuelle maskiner og gør det muligt at undgĂĽ at bruge tredjepartsvĂŚrktøjer som cloud-init og ignition.
  • Logikken for at afmontere virtuelle filsystemer (proc, sys) er ĂŚndret under nedlukningen, og der er sikret registrering af oplysninger om processer, der blokerer for afmontering af filsystemer i loggen.
  • I filteret for systemopkald (SystemCallFilter) er adgangen til systemopkaldet riscv_flush_icache som standard tilladt.
  • I bootloaderen sd-boot er der tilføjet mulighed for opstart i en blandet tilstand, hvor 64-bit Linux-kernen startes fra 32-bit UEFI firmware. Der er tilføjet en eksperimentel mulighed for automatisk anvendelse af SecureBoot-nøgler fra filer fundet i ESP (EFI systempartition).
  • I vĂŚrktøjet bootctl er der tilføjet nye muligheder ‘—all-architectures’ til installation af binĂŚre filer for alle understøttede EFI-arkitekturer, ‘—root=’ og ‘—image=’ til arbejde med kataloget eller diskbilledet, ‘—install-source=’ til at angive kilde til installation, ‘—efi-boot-option-description=’ til at styre navne pĂĽ opstartsposter.
  • I vĂŚrktøjet systemctl er der tilføjet en kommando ‘list-automounts’ til at vise en liste over automatisk monterede kataloger og en mulighed ‘—image=’ til at udføre kommandoer i forbindelse med det angivne diskbillede. Kommandoerne ‘show’ og ‘status’ har fĂĽet tilføjet mulighederne ‘—state=’ og ‘—type=’.
  • I systemd-networkd er der tilføjet mulighederne ‘TCPCongestionControlAlgorithm=’ til at vĂŚlge TCP-kontrolalgoritmen, ‘KeepFileDescriptor=’ til at gemme filbeskriverne til TUN/TAP-grĂŚnseflader, ‘NetLabel=’ til at angive NetLabel-mĂŚrker, ‘RapidCommit=’ til at fremskynde konfigurationen via DHCPv6 (RFC 3315). I parameteren ‘RouteTable=’ er det nu muligt at angive navne pĂĽ routingtabeller.
  • I systemd-nspawn er det muligt at bruge relative filstier i indstillingerne ‘—bind=’ og ‘—overlay=’. Indstillingen ‘—bind=’ har fĂĽet tilføjet understøttelse af parametret ‘rootidmap’ til at knytte root-brugerens identifikator i containeren til ejeren af det monterede katalog pĂĽ vĂŚrtsystemet.
  • I systemd-resolved er pakken OpenSSL blevet aktiveret som standard backend til kryptering (understøttelse af gnutls er bevaret som et valg). Uunderstøttede DNSSEC-algoritmer behandles nu som usikre i stedet for at returnere en fejl (SERVFAIL).
  • I systemd-sysusers, systemd-tmpfiles og systemd-sysctl er det blevet muligt at overføre indstillinger gennem mekanismen til opbevaring af legitimationsoplysninger.
  • I vĂŚrktøjet systemd-analyze er der tilføjet en kommando ‘compare-versions’ til at sammenligne strenge med versionsnumre (analogt med ‘rpmdev-vercmp’ og ‘dpkg —compare-versions’). I kommandoen ‘systemd-analyze dump’ er der tilføjet mulighed for at filtrere enheder efter maske.
  • NĂĽr du vĂŚlger den multitrins søvntilstand (suspend-then-hibernate, overgang til søvn efter hviletilstand), bestemmes tiden i hviletilstand nu baseret pĂĽ det resterende batterilevetidforudsigelse. Øjeblikkelig overgang til søvn sker, nĂĽr der er mindre end 5% batteri tilbage.
  • Der er tilføjet en ny outputtilstand ÂŤ-o short-deltaÂť i ‘journalctl’, der viser tidsforskellen mellem forskellige meddelelser i loggen.
  • I systemd-repart er der tilføjet support til oprettelse af partitioner med Squashfs-filsystem og partitioner til dm-verity, herunder med digitale signaturer.
  • I systemd-logind er der tilføjet en indstilling ÂŤStopIdleSessionSec=Âť, som afslutter inaktive sessioner efter udløbet af en bestemt timeout.
  • I systemd-cryptenroll er der tilføjet muligheden «—unlock-key-file=Âť, som udtrĂŚkker dekrypteringsnøglen fra en fil i stedet for gennem brugerens indput.
  • Det er nu muligt at køre systemd-growfs i miljøer uden udev.
  • I systemd-backlight er supporten til systemer med flere grafikkort forbedret.
  • Licensen for koden, der gives som eksempler i dokumentationen, er ĂŚndret fra CC0 til MIT-0.

Ændringer, der bryder kompatibiliteten:

  • Ved kontrol af versionen af kernen ved hjĂŚlp af direktivet ConditionKernelVersion anvendes der nu simpel tekstmĂŚssig sammenligning i operatorerne ‘=’ og ‘!=’. Hvis der ikke angives nogen sammenligningsoperator, kan der anvendes glob-mønster match med tegnene ‘*’, ‘?’ og ‘[‘, ‘]’. For sammenligning af versioner i stilen af funktionen stverscmp() skal operatorerne ‘’, ‘=’ anvendes.
  • SELinux-mĂŚrket, der anvendes til adgangskontrol fra unit-filen, lĂŚses nu under indlĂŚsning af filen, ikke ved adgangskontrollen.
  • Betingelsen ÂŤConditionFirstBootÂť aktiveres nu ved første systemstart kun under opstartsfasen og returnerer ÂŤfalseÂť ved kald af enheder efter afslutningen af opstarten.
  • I 2024 planlĂŚgges det, at supporten for ressourcebegrĂŚnsningsmekanismen cgroup v1 vil blive afsluttet i systemd, som blev klassificeret som forĂŚldet i systemd 248-udgivelsen. Administratorer anbefales at sikre overgangen til cgroup v2 for tjenester knyttet til cgroup v1 i god tid. Den vĂŚsentligste forskel mellem cgroups v2 og v1 er anvendelsen af en fĂŚlles hierarki for cgroups for alle typer ressourcer i stedet for separate hierarkier til fordeling af CPU-ressourcer, til regulering af hukommelsesforbrug og til ind- og uddata. Separate hierarkier medfører vanskeligheder med at organisere interaktionen mellem hĂĽndteringsprogrammer og øger kerneressourcerne, nĂĽr regler anvendes for processer nĂŚvnt i forskellige hierarkier.
  • I anden halvdel af 2023 planlĂŚgges det at afslutte supporten for separate hierarkier af kataloger, nĂĽr /usr er monteret separat fra roden eller hvis katalogerne /bin og /usr/bin, /lib og /usr/lib er adskilt.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster