Na vijf maanden ontwikkeling is de release van systemd 252 gepresenteerd. De belangrijkste wijziging in deze nieuwe versie is de integratie van ondersteuning voor het geavanceerde opstartproces, waarmee niet alleen de kernel en de bootloader, maar ook de componenten van de basis systeemomgeving op digitale handtekeningen geverifieerd kunnen worden.
De voorgestelde methode houdt in dat bij het opstarten een uniform kernelafbeelding UKI (Unified Kernel Image) wordt gebruikt, die de kernelbootverwerker uit UEFI (UEFI boot stub), de Linux-kernelafbeelding en de in het geheugen geladen systeemomgeving initrd combineert, die wordt gebruikt voor de initiële initialisatie vóór het monteren van het rootbestandssysteem. De UKI-afbeelding wordt gepresenteerd in de vorm van één uitvoerbaar bestand in PE-indeling, dat kan worden geladen via traditionele bootloaders of rechtstreeks vanuit de UEFI-firmware kan worden aangeroepen. Bij oproep vanuit UEFI is verificatie van de integriteit en betrouwbaarheid via digitale handtekeningen, niet alleen van de kernel, maar ook van de inhoud van initrd, mogelijk.
Voor de berekening van de parameters van de TPM PCR (Trusted Platform Module Platform Configuration Register), die worden gebruikt voor integriteitscontrole en het vormen van een digitale handtekening voor de UKI-afbeelding, is een nieuwe hulpprogramma systemd-measure toegevoegd. De openbare sleutel die in de handtekening wordt gebruikt en de bijbehorende informatie over PCR kan rechtstreeks in de opstartafbeelding UKI worden ingebed (sleutel en handtekening worden opgeslagen in een bestand in PE-indeling in de velden '.pcrsig' en '.pcrkey') en kan worden geëxtraheerd door externe of interne hulpprogramma's.
Daarnaast zijn de hulpprogramma's systemd-cryptsetup, systemd-cryptenroll en systemd-creds aangepast voor het gebruik van deze informatie, waarmee de koppeling van versleutelde schijfpartities aan de met digitale handtekeningen geverifieerde kernel kan worden verzekerd (in dit geval wordt toegang tot de versleutelde partitie alleen verleend als de UKI-afbeelding is geverifieerd op basis van de parameters die in de TPM zijn opgeslagen).
Bovendien is de hulpprogramma systemd-pcrphase toegevoegd, waarmee verschillende opstartfasen aan parameters kunnen worden gekoppeld die in de geheugens van cryptoprocessoren die de TPM 2.0-specificatie ondersteunen zijn opgeslagen (bijvoorbeeld, de decryptiesleutel voor de LUKS2-partitie kan alleen beschikbaar worden gesteld in de initrd-afbeelding en de toegang tot deze sleutel kan op latere opstartfasen worden geblokkeerd).
Enkele andere wijzigingen:
- Bij gebrek aan andere lokale instellingen is de C.UTF-8-locale standaard ingesteld.
- De functie voor het uitvoeren van een volledige preset-operatie van services (âsystemctl presetâ) is geĂŻmplementeerd tijdens de eerste opstart. Voor het inschakelen van de preset tijdens de opstart is een build met de optie â-Dfirst-boot-full-presetâ vereist, maar in toekomstige versies zullen ze deze standaard activeren.
- In de user management units is een CPU resource controller ingeschakeld, waardoor de CPUWeight-instellingen kunnen worden toegepast op alle slice units die worden gebruikt om het systeem op te splitsen (app.slice, background.slice, session.slice) voor resource-isolatie tussen verschillende gebruikersservices die concurreren om CPU-resources. De CPUWeight ondersteunt ook de waarde âidleâ om de overeenkomstige resource-toewijzingsmodus te activeren.
- In transient units en de utility systemd-repart is het mogelijk om instellingen te overschrijven door drop-in bestanden aan te maken in de map /etc/systemd/system/naam.d/.
- Voor systeemafbeeldingen is de vlag voor de beĂ«indiging van ondersteuning (âsupport-endedâ) ingesteld, waarbij dit feit wordt bepaald op basis van de waarde van de nieuwe parameter âSUPPORT_END=â in het bestand /etc/os-release.
- Nieuwe instellingen âConditionCredential=â en âAssertCredential=â zijn toegevoegd, die kunnen worden gebruikt om units te negeren of geforceerd af te sluiten wanneer bepaalde referenties ontbreken in het systeem.
- In system.conf en user.conf zijn de instellingen âDefaultSmackProcessLabel=â en âDefaultDeviceTimeoutSec=â toegevoegd om het SMACK-beveiligingsniveau en de standaard time-out voor het activeren van een unit in te stellen.
- In de instellingen âConditionFirmware=â en âAssertFirmware=â is de mogelijkheid toegevoegd om specifieke SMBIOS-velden op te geven, bijvoorbeeld om een unit alleen te starten wanneer het veld /sys/class/dmi/id/board_name de waarde âCustom Boardâ bevat; hiervoor kan âConditionFirmware=smbios-field(board_name = âCustom Boardâ)â worden opgegeven.
- Tijdens de initialisatie (PID 1) is het mogelijk gemaakt om referenties uit SMBIOS-velden (Type 11, âOEM vendor stringsâ) te importeren, naast de definitie ervan via qemu_fwcfg, wat het verstrekken van referenties vergemakkelijkt virtuele machines en waardoor externe tools zoals cloud-init en ignition overbodig worden.
- Bij het afsluiten is de logica voor het ontkoppelen van virtuele bestandssystemen (proc, sys) gewijzigd en is ervoor gezorgd dat informatie over processen die deontkoppeling van bestandssystemen blokkeren, in de log wordt opgeslagen.
- In de systeemoproepfilter (SystemCallFilter) is standaard toegang tot de systeemoproep riscv_flush_icache toegestaan.
- In de bootloader sd-boot is een functie toegevoegd voor opstarten in gemengde modus, waarin een 64-bits Linux-kernel wordt opgestart vanuit 32-bits UEFI-firmware. Een experimentele functie voor het automatisch toepassen van SecureBoot-sleutels uit bestanden gevonden in de ESP (EFI-systeempartitie) is toegevoegd.
- De tool bootctl heeft nieuwe opties toegevoegd: ââall-architecturesâ voor de installatie van binaire bestanden voor alle ondersteunde EFI-architecturen, ââroot=â en ââimage=â voor het werken met een directory of schijfimago, ââinstall-source=â voor het bepalen van de installatielocatie, ââefi-boot-option-description=â voor het beheren van namen van opstart-items.
- De tool systemctl heeft het commando âlist-automountsâ toegevoegd om een lijst van automatisch aangekoppelde directories weer te geven, en de optie ââimage=â voor het uitvoeren van commando's in aansluiting op het opgegeven schijfimago. Aan de commando's âshowâ en âstatusâ zijn de opties ââstate=â en ââtype=â toegevoegd.
- In systemd-networkd zijn de opties âTCPCongestionControlAlgorithm=â voor het kiezen van een TCP-overload algoritme, âKeepFileDescriptor=â voor het behouden van het bestandshandle van TUN/TAP interfaces, âNetLabel=â voor het instellen van NetLabel labels, en âRapidCommit=â voor het versnellen van de configuratie via DHCPv6 (RFC 3315) toegevoegd. Bij de parameter âRouteTable=â is het toegestaan om de namen van routeringstabellen op te geven.
- In systemd-nspawn is het gebruik van relatieve bestands paden in de opties ââbind=â en ââoverlay=â toegestaan. De optie ââbind=â ondersteunt nu de parameter ârootidmapâ voor het binden van de root-gebruikers identificatie in de container aan de eigenaar van de aangekoppelde directory aan de kant van het host-systeem.
- In systemd-resolved is de standaard backend voor encryptie het OpenSSL-pakket (ondersteuning voor gnutls blijft beschikbaar als optie). Niet-ondersteunde DNSSEC-algoritmen worden nu behandeld als onveilig, in plaats van een foutmelding (SERVFAIL) te retourneren.
- In systemd-sysusers, systemd-tmpfiles en systemd-sysctl is de mogelijkheid geĂŻmplementeerd om configuraties door te geven via het credentials store mechanisme.
- De tool systemd-analyze heeft het commando âcompare-versionsâ toegevoegd voor het vergelijken van versienummers (vergelijkbaar met ârpmdev-vercmpâ en âdpkg âcompare-versionsâ). Aan het commando âsystemd-analyze dumpâ is de mogelijkheid toegevoegd om units te filteren op masker.
- Bij het kiezen van de meertrapsslaapmodus (suspend-then-hibernate, overschakeling naar slaapstand na de wachtstand), wordt de tijd in de wachtstand nu gekozen op basis van de voorspelling van de resterende batterijduur. Onmiddellijke overschakeling naar de slaapstand vindt plaats wanneer er minder dan 5% acculading over is.
- In âjournalctlâ is een nieuwe uitvoermodus â-o short-deltaâ toegevoegd, die het tijdsverschil tussen verschillende berichten in de log weergeeft.
- In systemd-repart is ondersteuning toegevoegd voor het maken van partities met Squashfs-bestandssystemen en partities voor dm-verity, inclusief digitale handtekeningen.
- In systemd-logind is de instelling âStopIdleSessionSec=â toegevoegd om een inactieve sessie te beĂ«indigen na het verstrijken van de opgegeven time-out.
- In systemd-cryptenroll is een optie â--unlock-key-file=â toegevoegd om de ontsleutelingssleutel uit een bestand te halen in plaats van via gebruikersprompt.
- De mogelijkheid om de systemd-growfs-hulpprogramma uit te voeren in omgevingen zonder udev is gewaarborgd.
- In systemd-backlight is de ondersteuning voor systemen met meerdere grafische kaarten verbeterd.
- De licentie voor de in de documentatie gegeven voorbeeldcodes is gewijzigd van CC0 naar MIT-0.
Wijzigingen die de compatibiliteit verstoren:
- Bij het controleren van het versienummer van de kernel met behulp van de voorwaarde ConditionKernelVersion, wordt nu eenvoudige stringvergelijking toegepast in de operatoren â=â en â!=â. Als de vergelijkingsoperator helemaal niet is opgegeven, kan er een glob-masker matching worden gebruikt met de karakters â*â, â?â en â[â, â]â. Voor versievergelijkingen in de stijl van de functie stverscmp() moeten de operatoren ââ, â=â worden gebruikt.
- Het SELinux-label dat wordt gebruikt om toegang vanuit het eenheidsbestand te controleren, wordt nu gelezen tijdens het laadtijd van het bestand en niet op het moment van de toegang.
- De voorwaarde âConditionFirstBootâ wordt nu alleen bij de eerste opstart van het systeem in de opstartfase geactiveerd en geeft âfalseâ terug bij het oproepen van eenheden na de opstartfase.
- In 2024, systemd plans to discontinue support for the cgroup v1 resource limitation mechanism, which was designated as deprecated in systemd release 248. Administrators are advised to prepare in advance for migrating services reliant on cgroup v1 to cgroup v2. The key difference between cgroups v2 and v1 is the use of a unified hierarchy of cgroups for all types of resources, instead of separate hierarchies for distributing CPU resources, regulating memory consumption, and handling input/output. Separate hierarchies make it difficult to organize interactions between handlers and lead to additional kernel resource costs when applying rules for processes mentioned in different hierarchies.
- In the second half of 2023, support for separate directory hierarchies is expected to be discontinued, when /usr is mounted separately from the root or the directories /bin and /usr/bin, /lib and /usr/lib are separated.
Bron: opennet.ru
