Utgivelse av systemd system manager 252 med støtte for UKI (Unified Kernel Image).

Etter fem måneders utvikling ble utgivelsen av system manager systemd 252 presentert. Den viktigste endringen i den nye versjonen var integreringen av støtte for en modernisert oppstartsprosess, som lar deg verifisere ikke bare kjernen og oppstartsprogrammet, men også komponenter. av det grunnleggende systemmiljøet ved hjelp av digitale signaturer.

Den foreslåtte metoden innebærer bruk av et enhetlig kjernebilde UKI (Unified Kernel Image) ved lasting, som kombinerer en behandler for lasting av kjernen fra UEFI (UEFI boot stub), et Linux-kjernebilde og initrd-systemmiljøet lastet inn i minnet, brukt for initialisering på stadiet før montering av root FS . UKI-bildet er pakket som en enkelt kjørbar fil i PE-format, som kan lastes inn ved hjelp av tradisjonelle bootloadere eller kalles direkte fra UEFI-fastvaren. Når det kalles fra UEFI, er det mulig å verifisere integriteten og påliteligheten til den digitale signaturen til ikke bare kjernen, men også innholdet i initrd.

For å beregne parametrene til TPM PCR-registrene (Trusted Platform Module Platform Configuration Register) som brukes til å overvåke integriteten og generere en digital signatur til UKI-bildet, er en ny systemd-måling inkludert. Den offentlige nøkkelen og den tilhørende PCR-informasjonen som brukes i signaturen kan bygges inn direkte i UKI-oppstartsbildet (nøkkelen og signaturen lagres i en PE-fil i feltene '.pcrsig' og '.pcrkey') og trekkes ut fra den av eksternt. eller interne verktøy.

Spesielt er systemd-cryptsetup, systemd-cryptenroll og systemd-creds-verktøyene tilpasset for å bruke denne informasjonen, som du kan sikre at krypterte diskpartisjoner er bundet til en digitalt signert kjerne (i dette tilfellet tilgang til den krypterte partisjonen gis bare hvis UKI-bildet har bestått verifisering med digital signatur basert på parametere i TPM).

I tillegg er systemd-pcrphase-verktøyet inkludert, som lar deg kontrollere bindingen av forskjellige oppstartstrinn til parametere som ligger i minnet til kryptoprosessorer som støtter TPM 2.0-spesifikasjonen (du kan for eksempel gjøre LUKS2-partisjonsdekrypteringsnøkkelen tilgjengelig bare i initrd-bildet og blokker tilgang til det ved senere nedlastinger).

Noen andre endringer:

  • Sikrer at standardlokaliteten er C.UTF-8 med mindre en annen lokalitet er spesifisert i innstillingene.
  • Det er nå mulig å utføre en fullstendig tjenesteforhåndsinnstilling ("systemctl forhåndsinnstilling") under første oppstart. Aktivering av forhåndsinnstillinger ved oppstart krever bygging med "-Dfirst-boot-full-preset"-alternativet, men er planlagt aktivert som standard i fremtidige utgivelser.
  • Brukeradministrasjonsenhetene involverer en CPU-ressurskontroller, som gjorde det mulig å sikre at CPUWeight-innstillingene brukes på alle skiveenheter som brukes til å dele systemet i deler (app.slice, background.slice, session.slice) for å isolere ressurser mellom forskjellige brukertjenester, som konkurrerer om CPU-ressurser. CPUWeight støtter også "tomgangs"-verdien for å aktivere riktig ressursforsyningsmodus.
  • I midlertidige (“forbigående”) enheter og i systemd-repart-verktøyet er overstyrende innstillinger tillatt ved å lage drop-in-filer i katalogen /etc/systemd/system/name.d/.
  • For systembilder er det støtteende flagget satt, og bestemmer dette faktum basert på verdien av den nye parameteren "SUPPORT_END=" i /etc/os-release-filen.
  • Lagt til "ConditionCredential=" og "AssertCredential="-innstillinger, som kan brukes til å ignorere eller krasje enheter hvis visse legitimasjoner ikke er til stede i systemet.
  • Lagt til innstillingene “DefaultSmackProcessLabel=” og “DefaultDeviceTimeoutSec=” til system.conf og user.conf for å definere standard SMACK-sikkerhetsnivå og tidsavbrudd for enhetsaktivering.
  • I innstillingene “ConditionFirmware=” og “AssertFirmware=” er muligheten til å spesifisere individuelle SMBIOS-felt lagt til, for eksempel for å starte en enhet bare hvis /sys/class/dmi/id/board_name-feltet inneholder verdien “Custom Board", kan du spesifisere "ConditionFirmware=smbios" -field(board_name = "Custom Board")".
  • Under initialiseringsprosessen (PID 1) er muligheten til å importere legitimasjon fra SMBIOS-felt (Type 11, "OEM-leverandørstrenger") lagt til i tillegg til definisjonen deres via qemu_fwcfg, noe som forenkler leveringen av legitimasjon til virtuelle maskiner og eliminerer behov for tredjepartsverktøy som cloud -init og ignition.
  • Under avslutning er logikken for avmontering av virtuelle filsystemer (proc, sys) endret og informasjon om prosesser som blokkerer avmontering av filsystemer lagres i loggen.
  • Systemanropsfilteret (SystemCallFilter) gir tilgang til riscv_flush_icache-systemanropet som standard.
  • sd-boot bootloader legger til muligheten til å starte opp i blandet modus, der 64-biters Linux-kjernen kjører fra 32-biters UEFI-fastvare. Lagt til eksperimentell mulighet for automatisk å bruke SecureBoot-nøkler fra filer funnet i ESP (EFI-systempartisjon).
  • Nye alternativer er lagt til bootctl-verktøyet: «—all-architectures» for å installere binærfiler for alle støttede EFI-arkitekturer, «—root=» og «—image=» for å jobbe med en katalog eller diskbilde, «—install-source =” for å definere kilde for installasjon, "-efi-boot-option-description=" for å kontrollere navn på oppstartsoppføringer.
  • Kommandoen 'list-automounts' er lagt til systemctl-verktøyet for å vise en liste over automatisk monterte kataloger og alternativet "--image=" for å utføre kommandoer i forhold til det spesifiserte diskbildet. Lagt til "--state=" og "--type=" alternativer til "vis" og "status" kommandoene.
  • systemd-networkd la til alternativer “TCPCongestionControlAlgorithm=” for å velge TCP-overbelastningskontrollalgoritmen, “KeepFileDescriptor=” for å lagre filbeskrivelsen til TUN/TAP-grensesnitt, “NetLabel=” for å sette NetLabels, “RapidCommit=” for å øke hastigheten på konfigurasjonen via DHCPv6 (RFC 3315). Parameteren "RouteTable=" lar deg spesifisere navnene på rutingtabeller.
  • systemd-nspawn tillater bruk av relative filbaner i alternativene "--bind=" og "--overlay=". Lagt til støtte for 'rootidmap'-parameteren til alternativet "--bind=" for å binde root-bruker-IDen i beholderen til eieren av den monterte katalogen på vertssiden.
  • systemd-resolved bruker OpenSSL som sin krypteringsbackend som standard (gnutls-støtte beholdes som et alternativ). Ustøttede DNSSEC-algoritmer blir nå behandlet som usikre i stedet for å returnere en feil (SERVFAIL).
  • systemd-sysusers, systemd-tmpfiles og systemd-sysctl implementerer muligheten til å overføre innstillinger gjennom en legitimasjonslagringsmekanisme.
  • La til 'compare-versions'-kommando for å systemd-analyze for å sammenligne strenger med versjonsnumre (ligner på 'rpmdev-vercmp' og 'dpkg --compare-versions'). Lagt til muligheten til å filtrere enheter etter maske til kommandoen 'systemd-analyze dump'.
  • Når du velger en flertrinns hvilemodus (avbryt-og-dvale), velges nå tiden brukt i standby-modus basert på prognosen for gjenværende batterilevetid. Umiddelbar overgang til hvilemodus skjer når mindre enn 5 % batterilading gjenstår.
  • En ny utgangsmodus "-o short-delta" er lagt til 'journalctl', som viser tidsforskjellen mellom ulike meldinger i loggen.
  • systemd-repart legger til støtte for å lage partisjoner med Squashfs filsystem og partisjoner for dm-verity, inkludert med digitale signaturer.
  • Lagt til "StopIdleSessionSec="-innstilling til systemd-login for å avslutte en inaktiv økt etter et spesifisert tidsavbrudd.
  • Systemd-cryptenroll har lagt til et "--unlock-key-file="-alternativ for å trekke ut dekrypteringsnøkkelen fra en fil i stedet for å spørre brukeren.
  • Det er nå mulig å kjøre systemd-growfs-verktøyet i miljøer uten udev.
  • systemd-backlight har forbedret støtte for systemer med flere grafikkort.
  • Lisensen for kodeeksemplene gitt i dokumentasjonen er endret fra CC0 til MIT-0.

Endringer som bryter kompatibiliteten:

  • Når du sjekker kjerneversjonsnummeret ved å bruke ConditionKernelVersion-direktivet, brukes nå en enkel strengsammenligning i '='- og '!='-operatorene, og hvis sammenligningsoperatoren ikke er spesifisert i det hele tatt, kan glob-mask-matching brukes ved å bruke tegn '*', '?' Og '[', ']'. For å sammenligne stverscmp()-stilversjoner, bruk operatorene '<', '>', '<=' og '>='.
  • SELinux-taggen som brukes til å sjekke tilgang fra en enhetsfil, leses nå når filen lastes, i stedet for på tidspunktet for tilgangssjekk.
  • "ConditionFirstBoot"-tilstanden utløses nå ved første oppstart av systemet bare direkte på oppstartsstadiet og returnerer "false" når enheter kalles opp etter at oppstarten er fullført.
  • I 2024 planlegger systemd å slutte å støtte cgroup v1-ressursbegrensningsmekanismen, som ble avviklet i systemd release 248. Administratorer rådes til å passe på i forkant av migrering av cgroup v2-baserte tjenester til cgroup v1. Hovedforskjellen mellom cgroups v2 og v1 er bruken av et felles cgroups-hierarki for alle typer ressurser, i stedet for separate hierarkier for tildeling av CPU-ressurser, for regulering av minneforbruk og for I/O. Separate hierarkier fører til vanskeligheter med å organisere samhandling mellom behandlere og til ekstra kjerneressurskostnader ved bruk av regler for en prosess referert til i forskjellige hierarkier.
  • I andre halvdel av 2023 planlegger vi å avslutte støtten for delte kataloghierarkier, der /usr er montert separat fra roten, eller /bin og /usr/bin, /lib og /usr/lib er atskilt.

Kilde: opennet.ru

Legg til en kommentar