Na vijf maanden ontwikkeling is de uitgave van systeembeheerder systemd 250 gepresenteerd. In deze nieuwe versie is de mogelijkheid om inloggegevens versleuteld op te slaan toegevoegd, is verificatie van automatisch gedetecteerde GPT-partities op digitale handtekening gerealiseerd, is de informatie over de oorzaken van vertragingen bij het starten van services verbeterd, zijn er opties toegevoegd om de toegang van de service tot bepaalde bestandssystemen en netwerkintefaces te beperken, is ondersteuning voor integriteitscontrole van partities met de dm-integrity module geïmplementeerd, en is ondersteuning voor automatische updates van sd-boot toegevoegd.
Belangrijkste wijzigingen:
- Ondersteuning voor versleutelde en geauthenticeerde inloggegevens is toegevoegd, wat nuttig kan zijn voor de veilige opslag van gevoelige materialen, zoals SSL-toegangs Sleutels en wachtwoorden. Decryptie van inloggegevens vindt alleen plaats wanneer dat nodig is en is gebonden aan de lokale installatie of hardware. Gegevens worden automatisch versleuteld met behulp van symmetrische versleuteling, waarvan de sleutel kan worden opgeslagen in het bestandssysteem, in de TPM2-chip of met een combinatie schema. Bij het starten van de service worden de inloggegevens automatisch gedecodeerd en zijn ze voor de service in hun normale vorm toegankelijk. Voor het werken met versleutelde inloggegevens is de tool 'systemd-creds' toegevoegd, en voor de services zijn de instellingen LoadCredentialEncrypted en SetCredentialEncrypted aangeboden.
- In sd-stub, het uitvoerbare bestand voor EFI waarmee de EFI-firmware de Linux-kernel laad, is ondersteuning voor het laden van de kernel met behulp van het LINUX_EFI_INITRD_MEDIA_GUID EFI-protocol toegevoegd. Ook in sd-stub is de mogelijkheid toegevoegd om inloggegevens en sysext-bestanden in een cpio-archief te verpakken en dit archief samen met initrd aan de kernel te leveren (extra bestanden worden in de map /.extra/ geplaatst). Deze mogelijkheid maakt het mogelijk om een verifieerbare onveranderlijke initrd-omgeving te gebruiken, die kan worden aangevuld met sysexts en versleutelde gegevens voor authenticatie.
- De specificatie voor Discoverable Partitions is aanzienlijk uitgebreid en biedt middelen voor het identificeren, koppelen en activeren van systeempartities die GPT (GUID Partition Tables) gebruiken. In vergelijking met eerdere versies is er ondersteuning voor de root-partitie en de /usr-partitie in de specificatie geïmplementeerd voor de meeste architecturen, inclusief platforms die geen UEFI gebruiken.
In Discoverable Partitions is ook ondersteuning toegevoegd voor partities waarvan de integriteit wordt geverifieerd door de dm-verity-module met behulp van digitale handtekeningen PKCS#7, wat het creëren van volledig geauthenticeerde schijfafbeeldingen vergemakkelijkt. De verificatieondersteuning is geïntegreerd in verschillende hulpprogramma's die schijfafbeeldingen manipuleren, waaronder systemd-nspawn, systemd-sysext, systemd-dissect, services met RootImage, systemd-tmpfiles en systemd-sysusers.
- Voor langdurig draaiende of stopgezette units is naast het tonen van een geanimeerde voortgangsindicator ook de mogelijkheid toegevoegd om statusinformatie weer te geven, zodat duidelijk wordt wat er op dat moment met de service gebeurt en welke service de systeembeheerder momenteel wacht om te voltooien.
- In /etc/systemd/system.conf en /etc/systemd/user.conf is de parameter DefaultOOMScoreAdjust toegevoegd, waarmee de drempel voor de werking van de OOM-killer bij geheugentekort kan worden aangepast, toepasbaar op processen die door systemd voor het systeem en gebruikers worden gestart. Standaard heeft het gewicht van systeemservices een hogere prioriteit dan dat van gebruikersservices, wat betekent dat bij geheugentekort de kans groter is dat gebruikersservices worden beëindigd dan systeemservices.
- De instelling RestrictFileSystems is toegevoegd, waarmee de toegang van services tot bepaalde typen bestandssystemen kan worden beperkt. Voor het bekijken van de beschikbare bestandssysteemtypes kan de opdracht "systemd-analyze filesystems" worden gebruikt. Evenzo is de optie RestrictNetworkInterfaces geïmplementeerd, die toegang tot bepaalde netwerkinterfaces beperkt. De implementatie is gebaseerd op de BPF-module LSM, die de toegang van een groep processen tot kernelobjecten beperkt.
- Een nieuw configuratiebestand /etc/integritytab en de systemd-integritysetup-hulpmiddel zijn toegevoegd, die de dm-integrity-module instellen voor gegevensintegriteitscontrole op het niveau van individuele sectoren, bijvoorbeeld om de onveranderlijkheid van versleutelde gegevens te waarborgen (Authenticated Encryption, die garandeert dat een gegeven blok niet omzeild is gemodificeerd). Het formaat van het bestand /etc/integritytab is vergelijkbaar met die van de bestanden /etc/crypttab en /etc/veritytab, met uitzondering van het feit dat in plaats van dm-crypt en dm-verity, dm-integrity wordt gebruikt.
- Een nieuw unit-bestand systemd-boot-update.service is toegevoegd, dat bij activatie en aanwezigheid van de geïnstalleerde bootloader sd-boot, systemd automatisch de versie van de sd-boot bootloader bijwerkt, waardoor de bootloader-code altijd up-to-date blijft. De sd-boot wordt nu standaard gebouwd met ondersteuning voor het SBAT-mechanisme (UEFI Secure Boot Advanced Targeting), dat problemen oplost met het intrekken van certificaten voor UEFI Secure Boot. Daarnaast biedt sd-boot de mogelijkheid om bootinstellingen van Microsoft Windows te parseren voor correcte vormgeving van de namen van de Windows-bootpartities en het weergeven van de Windows-versie.
In sd-boot is ook de mogelijkheid toegevoegd om het kleurenschema tijdens de assemblage te definiëren. Tijdens het opstartproces is ondersteuning voor het wijzigen van de schermresolutie met de toets 'r' toegevoegd. Er is een sneltoets 'f' toegevoegd voor toegang tot het firmware-instellingenmenu. Een automatische opstartfunctie is toegevoegd die overeenkomt met het menu-item dat tijdens de vorige opstart werd geselecteerd. Er is de mogelijkheid toegevoegd om EFI-stuurprogramma's automatisch op te starten vanaf de map /EFI/systemd/drivers/ in de ESP (EFI System Partition).
- Een nieuw unit-bestand factory-reset.target is opgenomen, dat wordt verwerkt in systemd-logind, vergelijkbaar met de reboot-, poweroff-, suspend- en hibernate-operaties, en wordt gebruikt om handlers te maken voor het resetten naar fabrieksinstellingen.
- Het systemd-resolved proces maakt nu een extra luistersocket aan op het adres 127.0.0.54 naast 127.0.0.53. Binnenkomende verzoeken op adres 127.0.0.54 worden altijd doorgestuurd naar de bovenliggende DNS-server en niet lokaal verwerkt.
- Er is ondersteuning toegevoegd voor het bouwen van systemd-importd en systemd-resolved met de OpenSSL-bibliotheek in plaats van libgcrypt.
- Initiële ondersteuning voor de LoongArch-architectuur, die wordt gebruikt in Loongson-processors, is toegevoegd.
- In systemd-gpt-auto-generator is de mogelijkheid geïmplementeerd voor automatische configuratie van systeem-gedefinieerde swappartities, die zijn versleuteld door het LUKS2-systeem.
- In de code voor het parseren van GPT-images, gebruikt in systemd-nspawn, systemd-dissect en vergelijkbare utilities, is de mogelijkheid toegevoegd om images voor andere architecturen te decoderen, waardoor systemd-nspawn kan worden gebruikt om images in emulators van andere architecturen te starten.
- Bij het inspecteren van schijf images in systemd-dissect worden nu details over het doel van de partitie weergegeven, zoals de geschiktheid voor opstarten via UEFI of het draaien in een container.
- In de bestanden system-extension.d/ is het veld "SYSEXT_SCOPE" toegevoegd, waarmee het toepassingsgebied van de systeeme image kan worden aangeduid — "initrd", "system" of "portable".
- In het bestand os-release is het veld "PORTABLE_PREFIXES" toegevoegd, dat kan worden gebruikt in draagbare images om de ondersteunde prefixes van unit-bestanden te bepalen.
- In systemd-logind zijn nieuwe instellingen HandlePowerKeyLongPress, HandleRebootKeyLongPress, HandleSuspendKeyLongPress en HandleHibernateKeyLongPress geïmplementeerd, die kunnen worden gebruikt om acties te definiëren bij het ingedrukt houden van bepaalde toetsen langer dan 5 seconden (bijvoorbeeld kan een snelle druk op de toets Suspend worden ingesteld om over te gaan in sluimerstand, terwijl bij het ingedrukt houden — in slaapstand).
- Voor units zijn de instellingen StartupAllowedCPUs en StartupAllowedMemoryNodes geïmplementeerd, die zich onderscheiden van vergelijkbare instellingen zonder het prefix Startup door alleen van toepassing te zijn tijdens het opstarten en afschakelen, waardoor andere resourcebeperkingen tijdens opstarten kunnen worden ingesteld.
- Controlemechanismen [Condition|Assert][Memory|CPU|IO]Pressure zijn toegevoegd, waarmee de activatie van de unit kan worden overgeslagen of wordt onderbroken met een foutmelding in het geval van een hoge belasting op geheugen, CPU en I/O in het systeem, zoals bepaald door het PSI-mechanisme.
- De standaard ingestelde limiet op het maximale aantal inode is verhoogd voor de partitie /dev van 64k naar 1M, en voor /tmp van 400k naar 1M.
- Voor services is een nieuwe instelling ExecSearchPath geïntroduceerd, waarmee het pad voor het zoeken naar uitvoerbare bestanden, die worden gestart via instellingen zoals ExecStart, kan worden gewijzigd.
- De instelling RuntimeRandomizedExtraSec is toegevoegd, waarmee willekeurige afwijkingen in de timeout RuntimeMaxSec kunnen worden aangebracht, die de uitvoeringstijd van de unit beperkt.
- De syntaxis voor de instellingen RuntimeDirectory, StateDirectory, CacheDirectory en LogsDirectory is uitgebreid, waarbij nu door het opgeven van een extra waarde, gescheiden door een dubbele punt, een symbolische link naar de opgegeven map kan worden gemaakt om toegang via meerdere paden te organiseren.
- Voor de diensten zijn de instellingen TTYRows en TTYColumns aangeboden om het aantal rijen en kolommen in het TTY-apparaat in te stellen.
- Er is een instelling ExitType toegevoegd waarmee de logica voor het bepalen van de beëindiging van de dienst kan worden gewijzigd. Standaard houdt systemd alleen de beëindiging van het hoofdproces in de gaten, maar door ExitType=cgroup in te stellen, wacht de systeembeheerder op het beëindigen van het laatste proces in de cgroup.
- De ondersteuning voor TPM2/FIDO2/PKCS11 in systemd-cryptsetup kan nu ook als een plug-in voor cryptsetup worden opgebouwd, waarmee de gebruikelijke cryptsetup-opdracht kan worden gebruikt om een versleuteld partitie te ontgrendelen.
- In de TPM2-handler van systemd-cryptsetup/systemd-cryptsetup is ondersteuning voor primaire RSA-sleutels toegevoegd, naast ECC-sleutels, om de compatibiliteit met chips die geen ECC ondersteunen te verbeteren.
- In /etc/crypttab is de optie token-timeout toegevoegd, waarmee de maximale wachttijd voor het aansluiten van de PKCS#11/FIDO2-token kan worden gedefinieerd, waarna een verzoek om het wachtwoord of herstelcode wordt weergegeven.
- In systemd-timesyncd is de instelling SaveIntervalSec geïmplementeerd, die het mogelijk maakt om de huidige systeemtijd periodiek op de schijf op te slaan, bijvoorbeeld om monotone klokken op systemen zonder RTC te realiseren.
- De tool systemd-analyze is uitgebreid met de opties: ‘—image’ en ‘—root’ voor het controleren van unit-bestanden binnen een opgegeven afbeelding of rootdirectory, ‘—recursive-errors’ voor het meenemen van afhankelijke units bij het opsporen van fouten, ‘—offline’ voor het controleren van afzonderlijk op de schijf opgeslagen unit-bestanden, ‘—json’ voor uitvoer in JSON-formaat, ‘—quiet’ voor het uitschakelen van onbelangrijke berichten, ‘—profile’ voor koppeling aan een draagbaar profiel. Ook is het commando inspect-elf toegevoegd voor het analyseren van core-bestanden in ELF-formaat en de mogelijkheid om unit-bestanden met een specifiek unit-naam te controleren, ongeacht of deze naam overeenkomt met de bestandsnaam.
- In systemd-networkd is de ondersteuning voor de CAN-bus (Controller Area Network) uitgebreid. Instellingen zijn toegevoegd voor het beheren van de CAN-modi: Loopback, OneShot, PresumeAck en ClassicDataLengthCode. In de [CAN] sectie van .network-bestanden zijn de opties TimeQuantaNSec, PropagationSegment, PhaseBufferSegment1, PhaseBufferSegment2, SyncJumpWidth, DataTimeQuantaNSec, DataPropagationSegment, DataPhaseBufferSegment1, DataPhaseBufferSegment2 en DataSyncJumpWidth toegevoegd voor het beheren van de bitsynchronisatie van de CAN-interface.
- In systemd-networkd is voor de DHCPv4-client de optie Label toegevoegd, waarmee een adreslabel kan worden ingesteld dat wordt gebruikt bij de configuratie van IPv4-adressen.
- In systemd-udevd is ondersteuning voor speciale waarden "max" in "ethtool" geïmplementeerd, waarmee de buffer grootte naar de maximale waarde kan worden ingesteld die door de hardware wordt ondersteund.
- In .link-bestanden voor systemd-udevd kunnen nu verschillende parameters voor het combineren van netwerkadapters en het aansluiten van hardware-processors (offload) worden geconfigureerd.
- In systemd-networkd zijn er standaard nieuwe .network-bestanden aangeboden: 80-container-vb.network voor het definiëren van netwerkbruggen die zijn gemaakt bij het starten van systemd-nspawn met de opties "--network-bridge" of "--network-zone"; 80-6rd-tunnel.network voor het definiëren van tunnels die automatisch worden gemaakt bij het ontvangen van een DHCP-antwoord met de 6RD-optie.
- In systemd-networkd en systemd-udevd is ondersteuning voor het tunnelen van IP over InfiniBand interfaces toegevoegd, waarvoor een sectie "[IPoIB]" is toegevoegd aan systemd.netdev-bestanden, en in de instelling Kind is de verwerking van de waarde "ipoib" geïmplementeerd.
- In systemd-networkd is automatische routerconfiguratie voor adressen die zijn opgegeven in de parameter AllowedIPs gegarandeerd, die kan worden geconfigureerd via de parameters RouteTable en RouteMetric in de secties [WireGuard] en [WireGuardPeer].
- In systemd-networkd is automatische generatie van niet-veranderende MAC-adressen voor batadv- en bridge-interfaces gegarandeerd. Om dit gedrag uit te schakelen kan de waarde MACAddress=none in .netdev-bestanden worden opgegeven.
- In .link-bestanden is de instelling WakeOnLanPassword aan de sectie "[Link]" toegevoegd, voor het definiëren van het wachtwoord bij het werken met WoL in de "SecureOn"-modus.
- In de sectie "[CAKE]" van .network-bestanden zijn instellingen zoals AutoRateIngress, CompensationMode, FlowIsolationMode, NAT, MPUBytes, PriorityQueueingPreset, FirewallMark, Wash, SplitGSO en UseRawPacketSize toegevoegd voor het bepalen van de parameters van het CAKE- (Common Applications Kept Enhanced) netwerkqueue-beheersysteem.
- In de sectie "[Network]" van .network-bestanden is de instelling IgnoreCarrierLoss toegevoegd, waarmee kan worden bepaald hoe lang er gewacht moet worden voordat er gereageerd wordt op het verlies van het draaggolf signaal.
- In systemd-nspawn, homectl, machinectl en systemd-run is de syntaxis van de parameter "--setenv" uitgebreid — als alleen de naam van de variabele is opgegeven (zonder "="), wordt de waarde uit de bijbehorende omgevingsvariabele gehaald (bijvoorbeeld, als "--setenv=FOO" wordt opgegeven, wordt de waarde uit de omgevingsvariabele $FOO gehaald en gebruikt in de overeenkomstige omgevingsvariabele in de container).
- In systemd-nspawn is added the option "—suppress-sync" to disable the execution of system calls sync()/fsync()/fdatasync() when creating a container (useful when speed is a priority and saving build artifacts in case of failure is not important, as they can be recreated at any time).
- A new hwdb database has been added, which includes various types of signal analyzers (multimeters, protocol analyzers, oscilloscopes, etc.). Information about cameras in hwdb has been expanded with a field for camera type (regular or infrared) and lens placement (front or back).
- Ensured the generation of unchanging names for network interfaces for netfront devices used in Xen.
- The analysis of core files by the systemd-coredump utility based on libdw/libelf libraries is now performed in a separate process, isolated in a sandbox environment.
- Support for environment variables $SYSTEMD_IMPORT_BTRFS_SUBVOL, $SYSTEMD_IMPORT_BTRFS_QUOTA, and $SYSTEMD_IMPORT_SYNC has been added to systemd-importd, which can be used to disable the generation of Btrfs subvolumes and configure quotas and disk synchronization.
- In systemd-journald, on file systems supporting copy-on-write mode, the re-enabling of COW mode for archived logs is provided, allowing for compression via Btrfs.
- Deduplication of identical fields in a single message has been implemented in systemd-journald, performed at the stage before placing the message in the journal.
- The shutdown command has been enhanced with the "—show" option to display the scheduled shutdown.
Bron: opennet.ru
