Uitgave van systemd system manager 252 met UKI-ondersteuning (Unified Kernel Image).

Na vijf maanden ontwikkeling werd de release gepresenteerd van de systeembeheerder systemd 252. De belangrijkste verandering in de nieuwe versie was de integratie van ondersteuning voor een gemoderniseerd opstartproces, waarmee je niet alleen de kernel en de bootloader, maar ook componenten kunt verifiëren van de basissysteemomgeving met behulp van digitale handtekeningen.

De voorgestelde methode omvat het gebruik van een verenigde kernelimage UKI (Unified Kernel Image) bij het laden, die een handler combineert voor het laden van de kernel vanuit UEFI (UEFI boot stub), een Linux-kernelimage en de initrd-systeemomgeving die in het geheugen is geladen, gebruikt voor initiële initialisatie in de fase vóór het mounten van de root FS. De UKI-image is verpakt als één uitvoerbaar bestand in PE-formaat, dat kan worden geladen met traditionele bootloaders of rechtstreeks kan worden aangeroepen vanuit de UEFI-firmware. Wanneer u vanuit UEFI wordt aangeroepen, is het mogelijk om de integriteit en betrouwbaarheid van de digitale handtekening van niet alleen de kernel, maar ook de inhoud van de initrd te verifiëren.

Om de parameters te berekenen van de TPM PCR-registers (Trusted Platform Module Platform Configuration Register) die worden gebruikt om de integriteit te bewaken en een digitale handtekening van het UKI-beeld te genereren, is een nieuwe systeemmeting opgenomen. De publieke sleutel en bijbehorende PCR-informatie die in de handtekening wordt gebruikt, kunnen rechtstreeks in de UKI-opstartimage worden ingebed (de sleutel en handtekening worden opgeslagen in een PE-bestand in de velden '.pcrsig' en '.pcrkey') en daaruit door externe gebruikers kunnen worden geëxtraheerd. of interne nutsvoorzieningen.

In het bijzonder zijn de hulpprogramma's systemd-cryptsetup, systemd-cryptenroll en systemd-creds aangepast om deze informatie te gebruiken, waarmee u ervoor kunt zorgen dat gecodeerde schijfpartities gebonden zijn aan een digitaal ondertekende kernel (in dit geval toegang tot de gecodeerde partitie wordt alleen verstrekt als de UKI-afbeelding is geverifieerd door middel van een digitale handtekening op basis van parameters in TPM).

Bovendien is het hulpprogramma systemd-pcrphase meegeleverd, waarmee u de koppeling van verschillende opstartfasen aan parameters in het geheugen van cryptoprocessors die de TPM 2.0-specificatie ondersteunen kunt regelen (u kunt de decoderingssleutel van de LUKS2-partitie bijvoorbeeld alleen beschikbaar maken in de initrd-afbeelding en blokkeer de toegang daartoe in latere stadia van downloaden).

Enkele andere wijzigingen:

  • Zorgt ervoor dat de standaardlandinstelling C.UTF-8 is, tenzij een andere landinstelling is opgegeven in de instellingen.
  • Het is nu mogelijk om tijdens de eerste keer opstarten een volledige servicevoorinstelling (“systemctl preset”) uit te voeren. Het inschakelen van voorinstellingen tijdens het opstarten vereist bouwen met de optie "-Dfirst-boot-full-preset", maar het is de bedoeling dat dit in toekomstige releases standaard wordt ingeschakeld.
  • Bij de gebruikersbeheereenheden is een CPU-broncontroller betrokken, die het mogelijk maakte om ervoor te zorgen dat de CPUWeight-instellingen worden toegepast op alle segmenteenheden die worden gebruikt om het systeem in delen te splitsen (app.slice, background.slice, session.slice) om bronnen tussen verschillende gebruikersdiensten, die strijden om CPU-bronnen. CPUWeight ondersteunt ook de “inactieve” waarde om de juiste resource-inrichtingsmodus te activeren.
  • In tijdelijke (“tijdelijke”) eenheden en in het hulpprogramma systemd-repart zijn het overschrijven van instellingen toegestaan ​​door drop-in-bestanden te maken in de map /etc/systemd/system/name.d/.
  • Voor systeemimages wordt de vlag voor het einde van de ondersteuning ingesteld, waarbij dit feit wordt bepaald op basis van de waarde van de nieuwe parameter “SUPPORT_END=” in het bestand /etc/os-release.
  • “ConditionCredential=” en “AssertCredential=” instellingen toegevoegd, die kunnen worden gebruikt om eenheden te negeren of te laten crashen als bepaalde inloggegevens niet aanwezig zijn in het systeem.
  • “DefaultSmackProcessLabel=” en “DefaultDeviceTimeoutSec=” instellingen toegevoegd aan system.conf en user.conf om het standaard SMACK-beveiligingsniveau en de time-out voor activering van de eenheid te definiëren.
  • In de instellingen “ConditionFirmware=” en “AssertFirmware=” is de mogelijkheid toegevoegd om individuele SMBIOS-velden te specificeren, om bijvoorbeeld een eenheid alleen te starten als het veld /sys/class/dmi/id/board_name de waarde “Custom Board”, kunt u “ConditionFirmware=smbios” -field(board_name = "Custom Board") specificeren.
  • Tijdens het initialisatieproces (PID 1) is de mogelijkheid toegevoegd om inloggegevens uit SMBIOS-velden (Type 11, “OEM-leveranciersreeksen”) te importeren naast hun definitie via qemu_fwcfg, wat het verstrekken van inloggegevens aan virtuele machines vereenvoudigt en de behoefte aan tools van derden zoals cloud -init en ignition.
  • Tijdens het afsluiten is de logica voor het ontkoppelen van virtuele bestandssystemen (proc, sys) gewijzigd en wordt informatie over processen die het ontkoppelen van bestandssystemen blokkeren, in het logboek opgeslagen.
  • Het systeemaanroepfilter (SystemCallFilter) geeft standaard toegang tot de systeemaanroep riscv_flush_icache.
  • De sd-boot bootloader voegt de mogelijkheid toe om in gemengde modus op te starten, waarbij de 64-bits Linux-kernel draait op 32-bits UEFI-firmware. Experimentele mogelijkheid toegevoegd om SecureBoot-sleutels automatisch toe te passen op bestanden gevonden in ESP (EFI-systeempartitie).
  • Er zijn nieuwe opties toegevoegd aan het bootctl-hulpprogramma: “—all-architectures” voor het installeren van binaire bestanden voor alle ondersteunde EFI-architecturen, “—root=” en “—image=” voor het werken met een map- of schijfkopie, “—install-source =" voor het definiëren van de bron voor installatie, "-efi-boot-option-description=" om de namen van opstartitems te beheren.
  • De opdracht 'list-automounts' is toegevoegd aan het systemctl-hulpprogramma om een ​​lijst met automatisch aangekoppelde mappen weer te geven en de optie "--image=" om opdrachten uit te voeren met betrekking tot de opgegeven schijfkopie. Opties "--state=" en "--type=" toegevoegd aan de opdrachten 'show' en 'status'.
  • systemd-networkd heeft opties toegevoegd “TCPCongestionControlAlgorithm=” om het TCP-congestiecontrole-algoritme te selecteren, “KeepFileDescriptor=” om de bestandsdescriptor van TUN/TAP-interfaces op te slaan, “NetLabel=” om NetLabels in te stellen, “RapidCommit=” om de configuratie via DHCPv6 te versnellen (RFC3315). Met de parameter “RouteTable=” kunt u de namen van routeringstabellen opgeven.
  • systemd-nspawn staat het gebruik van relatieve bestandspaden toe in de "--bind=" en "--overlay=" opties. Ondersteuning toegevoegd voor de parameter 'rootidmap' aan de optie "--bind=" om het rootgebruikers-ID in de container te binden aan de eigenaar van de aangekoppelde map aan de hostzijde.
  • systemd-resolved gebruikt standaard OpenSSL als coderingsbackend (gnutls-ondersteuning blijft als optie behouden). Niet-ondersteunde DNSSEC-algoritmen worden nu als onveilig behandeld in plaats van als foutmelding (SERVFAIL).
  • systemd-sysusers, systemd-tmpfiles en systemd-sysctl implementeren de mogelijkheid om instellingen over te dragen via een opslagmechanisme voor inloggegevens.
  • Het commando 'compare-versions' toegevoegd aan het hulpprogramma systemd-analyze om tekenreeksen te vergelijken met versienummers (vergelijkbaar met 'rpmdev-vercmp' en 'dpkg --compare-versions'). De mogelijkheid toegevoegd om eenheden op masker te filteren aan de opdracht 'systemd-analyze dump'.
  • Wanneer u een slaapmodus met meerdere fasen selecteert (uitstellen en vervolgens in slaapstand zetten), wordt de tijd die in de stand-bymodus wordt doorgebracht nu geselecteerd op basis van de voorspelling van de resterende levensduur van de batterij. Er vindt een onmiddellijke overgang naar de slaapmodus plaats wanneer de batterij minder dan 5% is opgeladen.
  • Er is een nieuwe uitvoermodus "-o short-delta" toegevoegd aan 'journalctl', die het tijdsverschil tussen verschillende berichten in het log weergeeft.
  • systemd-repart voegt ondersteuning toe voor het maken van partities met het Squashfs-bestandssysteem en partities voor dm-verity, inclusief met digitale handtekeningen.
  • "StopIdleSessionSec=" instelling toegevoegd aan systemd-logind om een ​​inactieve sessie te beëindigen na een opgegeven time-out.
  • Systemd-cryptenroll heeft een "--unlock-key-file=" optie toegevoegd om de decoderingssleutel uit een bestand te extraheren in plaats van de gebruiker hierom te vragen.
  • Het is nu mogelijk om het hulpprogramma systemd-growfs uit te voeren in omgevingen zonder udev.
  • systemd-backlight heeft verbeterde ondersteuning voor systemen met meerdere grafische kaarten.
  • De licentie voor de codevoorbeelden in de documentatie is gewijzigd van CC0 naar MIT-0.

Wijzigingen die de compatibiliteit verbreken:

  • Bij het controleren van het kernelversienummer met behulp van de ConditionKernelVersion-instructie, wordt nu een eenvoudige tekenreeksvergelijking gebruikt in de operatoren '=' en '!=', en als de vergelijkingsoperator helemaal niet is gespecificeerd, kan glob-mask-matching worden gebruikt met behulp van de tekens '*', '?' En '[', ']'. Om stverscmp()-stijlversies te vergelijken, gebruikt u de operatoren '<', '>', '<=' en '>='.
  • De SELinux-tag die wordt gebruikt om de toegang van een eenheidsbestand te controleren, wordt nu gelezen op het moment dat het bestand wordt geladen, in plaats van op het moment van toegangscontrole.
  • De voorwaarde "ConditionFirstBoot" wordt nu alleen geactiveerd bij de eerste keer opstarten van het systeem tijdens de opstartfase en retourneert "false" bij het aanroepen van eenheden nadat het opstarten is voltooid.
  • Systemd is van plan om in 2024 te stoppen met de ondersteuning van het cgroup v1 resource limiting-mechanisme, dat verouderd was in systemd release 248. Beheerders wordt geadviseerd om vooraf voorzichtig te zijn met het migreren van op cgroup v2 gebaseerde services naar cgroup v1. Het belangrijkste verschil tussen cgroups v2 en v1 is het gebruik van een gemeenschappelijke cgroups-hiërarchie voor alle soorten bronnen, in plaats van afzonderlijke hiërarchieën voor het toewijzen van CPU-bronnen, voor het reguleren van geheugengebruik en voor I/O. Afzonderlijke hiërarchieën leiden tot problemen bij het organiseren van de interactie tussen handlers en tot extra kosten voor de kernelbronnen bij het toepassen van regels voor een proces waarnaar in verschillende hiërarchieën wordt verwezen.
  • In de tweede helft van 2023 zijn we van plan de ondersteuning voor gesplitste maphiërarchieën te beëindigen, waarbij /usr afzonderlijk van de root wordt aangekoppeld, of /bin en /usr/bin, /lib en /usr/lib gescheiden zijn.

Bron: opennet.ru

Voeg een reactie