Efter fem mÄnaders utveckling har lanseringen av systemhanteraren systemd 252 presenterats. Den viktigaste Àndringen i den nya versionen Àr integrationen av stöd för en moderniserad uppstartsprocess, som möjliggör verifikation med hjÀlp av digitala signaturer inte bara för kÀrnan och bootloadaren, utan Àven för komponenter i det grundlÀggande systemmiljön.
Den föreslagna metoden innebÀr anvÀndning av en enhetlig kÀrnbild UKI (Unified Kernel Image) vid uppstart, som kombinerar en bootloader för att ladda kÀrnan frÄn UEFI (UEFI boot stub), en Linux-kÀrnbild och det initrd-systemmiljö som laddas in i minnet för initialisering innan den grundlÀggande filsystemet monteras. UKI-bilden presenteras som en enda körbar fil i PE-format, som kan laddas av traditionella bootloaders eller direkt anropas frÄn UEFI-firmware. Vid anrop frÄn UEFI ges möjlighet till integritets- och Àkthetskontroll genom digital signatur för bÄde kÀrnan och innehÄllet i initrd.
För berĂ€kning av registren TPM PCR (Trusted Platform Module Platform Configuration Register), som anvĂ€nds för att kontrollera integriteten och skapa digitala signaturer av UKI-bilder, ingĂ„r ett nytt verktyg systemd-measure. Den offentliga nyckeln som anvĂ€nds i signaturen och tillhörande information om PCR kan integreras direkt i UPK-bilden (nyckeln och signaturen sparas i en fil i PE-format i fĂ€lten â.pcrsigâ och â.pcrkeyâ) och extraheras av externa eller interna verktyg.
Ăven för att anvĂ€nda denna information har verktygen systemd-cryptsetup, systemd-cryptenroll och systemd-creds anpassats, vilket gör det möjligt att knyta krypterade diskpartitioner till den digitalt signerade kĂ€rnan (i detta fall ges tillgĂ„ng till den krypterade partitionen endast om UKI-bilden har verifierats med digital signatur baserat pĂ„ parametrarna som finns i TPM).
Dessutom har verktyget systemd-pcrphase inkluderats, vilket gör det möjligt att hantera kopplingen av olika uppstartsstadier till parametrar som lagras i minnet hos kryptoprocessorer som stöder TPM 2.0-specifikationen (till exempel kan nyckeln för att dekryptera LUKS2-partitionen göras tillgÀnglig endast i initrd-bilden och blockera Ätkomst vid senare uppstarts stadier).
NÄgra andra förÀndringar:
- Standard lokal C.UTF-8 anvÀnds om ingen annan lokal definieras i instÀllningarna.
- Möjligheten att utföra en fullstĂ€ndig förinstĂ€llning av tjĂ€nster (âsystemctl presetâ) vid första uppstarten har införts. För att aktivera förinstĂ€llningen vid uppstart krĂ€vs en byggnation med alternativet â-Dfirst-boot-full-presetâ, men det planeras att aktiveras som standard i framtida utgĂ„vor.
- I enheterna för anvĂ€ndarhantering har en CPU-resurskontroller anvĂ€nts, vilket möjliggör tillĂ€mpning av CPUWeight-instĂ€llningarna pĂ„ alla slice-enheter som anvĂ€nds för att dela upp systemet i delar (app.slice, background.slice, session.slice) för att isolera resurser mellan olika anvĂ€ndartjĂ€nster som konkurerar om CPU-resurser. CPUWeight har ocksĂ„ fĂ„tt stöd för vĂ€rdet âidleâ för att aktivera motsvarande resursleveranslĂ€ge.
- För tillfĂ€lliga (âtransientâ) enheter och i verktyget systemd-repart tillĂ„ts överskrivning av instĂ€llningar genom att skapa drop-in-filer i katalogen /etc/systemd/system/namn.d/.
- För systemavbilder har flaggan âsupport-endedâ införts, vilket definieras baserat pĂ„ vĂ€rdet av den nya parametern âSUPPORT_END=â i filen /etc/os-release.
- InstĂ€llningarna âConditionCredential=â och âAssertCredential=â har lagts till, vilket kan anvĂ€ndas för att ignorera eller avbryta enheter vid brist pĂ„ vissa autentiseringsuppgifter i systemet.
- InstĂ€llningarna âDefaultSmackProcessLabel=â och âDefaultDeviceTimeoutSec=â har lagts till i system.conf och user.conf för att definiera SMACK-sĂ€kerhetsnivĂ„ och enhetens aktiveringstidsgrĂ€ns som anvĂ€nds som standard.
- I instĂ€llningarna âConditionFirmware=â och âAssertFirmware=â har möjligheten att ange specifika SMBIOS-fĂ€lt tillkommit, till exempel för att starta enheten endast om fĂ€ltet /sys/class/dmi/id/board_name innehĂ„ller vĂ€rdet âCustom Boardâ, kan man ange âConditionFirmware=smbios-field(board_name = âCustom Boardâ)â.
- Under initieringsprocessen (PID 1) har möjligheten att importera autentiseringsuppgifter frĂ„n SMBIOS-fĂ€lt (Typ 11, âOEM vendor stringsâ) lagts till, utöver deras definition genom qemu_fwcfg, vilket förenklar tillhandahĂ„llandet av autentiseringsuppgifter. virtuella maskiner och gör det möjligt att undvika tredjepartsverktyg som cloud-init och ignition.
- Vid avstÀngning har logiken för avmontering av virtuella filsystem (proc, sys) Àndrats och information om processerna som blockerar avmontering av filsystem har sparats i loggen.
- I filtret för systemanrop (SystemCallFilter) Àr Ätkomst till systemanropet riscv_flush_icache tillÄten som standard.
- I bootloadern sd-boot har möjligheten att starta i blandat lÀge lagts till, dÀr en 64-bitars Linux-kÀrna startas frÄn en 32-bitars UEFI-firmware. En experimentell funktion för automatisk tillÀmpning av SecureBoot-nycklar frÄn filer som finns i ESP (EFI-systempartition) har ocksÄ lagts till.
- Nya alternativ har lagts till i verktyget bootctl: «âall-architectures» för att installera binĂ€rfiler för alla stödda EFI-arkitekturer, «âroot=» och «âimage=» för att arbeta med en katalog eller diskavbild, «âinstall-source=» för att definiera installationskĂ€lla, samt «âefi-boot-option-description=» för att hantera namn pĂ„ startposter.
- I systemctl har kommandot âlist-automountsâ lagts till för att visa en lista över automatiskt monterade kataloger och alternativet «âimage=» för att utföra kommandon kopplade till en angiven diskavbild. Till kommandona âshowâ och âstatusâ har alternativen «âstate=» och «âtype=» lagts till.
- I systemd-networkd har alternativ som «TCPCongestionControlAlgorithm=» lagts till för att vÀlja TCP-överbelastningsalgoritm, «KeepFileDescriptor=» för att bevara filbeskrivare för TUN/TAP-grÀnssnitt, «NetLabel=» för att sÀtta NetLabel-mÀrken, och «RapidCommit=» för att pÄskynda konfiguration genom DHCPv6 (RFC 3315). I parametern «RouteTable=» Àr det nu tillÄtet att ange namn pÄ rutningstabeller.
- I systemd-nspawn Ă€r anvĂ€ndning av relativa filvĂ€gar tillĂ„tna i alternativen «âbind=» och «âoverlay=». I alternativet «âbind=» har stöd för parametern ârootidmapâ lagts till för att binda root-anvĂ€ndarens ID i containern till Ă€garen av den monterade katalogen pĂ„ vĂ€rdsystemet.
- I systemd-resolved anvÀnds nu OpenSSL-paketet som standardbackend för kryptering (stöd för gnutls bibehÄlls som ett alternativ). Ej stödda DNSSEC-algoritmer behandlas nu som osÀkra istÀllet för att returnera ett fel (SERVFAIL).
- I systemd-sysusers, systemd-tmpfiles och systemd-sysctl har möjligheten att överföra instÀllningar via mekanismen för datalagring genomförts.
- Till verktyget systemd-analyze har kommandot âcompare-versionsâ lagts till för att jĂ€mföra strĂ€ngar med versionsnummer (i likhet med ârpmdev-vercmpâ och âdpkg âcompare-versionsâ). Till kommandot âsystemd-analyze dumpâ har möjligheten lagts till att filtrera enheter baserat pĂ„ mask.
- Vid val av flerfasigt vilolÀge (suspend-then-hibernate, övergÄng till vilolÀge efter vÀntelÀge) vÀljs tiden i vÀntelÀge baserat pÄ prognosen för ÄterstÄende batteritid. Den omedelbara övergÄngen till vilolÀge sker nÀr mindre Àn 5% av batteriladdningen ÄterstÄr.
- En ny utskriftslĂ€ge «-o short-delta» har lagts till i âjournalctlâ, som visar tidsdifferensen mellan olika meddelanden i loggen.
- Stöd för att skapa partitioner med Filsystemet Squashfs och partitioner för dm-verity, inklusive med digitala signaturer, har lagts till i systemd-repart.
- En instÀllning «StopIdleSessionSec=» har lagts till i systemd-logind för att avsluta inaktiva sessioner efter att en angiven timeout har gÄtt ut.
- Alternativet «âunlock-key-file=» har lagts till i systemd-cryptenroll för att extrahera dekrypteringsnyckeln frĂ„n en fil istĂ€llet för via anvĂ€ndarens frĂ„ga.
- Möjlighet att köra systemd-growfs i miljöer utan udev har sÀkerstÀllts.
- FörbÀttrat stöd för system med flera grafikkort i systemd-backlight.
- Licensen för de exempel pÄ kod som tas med i dokumentationen har Àndrats frÄn CC0 till MIT-0.
Ăndringar som bryter kompatibilitet:
- Vid kontroll av kĂ€rnans versionsnummer med direktivet ConditionKernelVersion tillĂ€mpas nu enkel strĂ€ngjĂ€mförelse i operatorerna â=â och â!=â. Om ingen jĂ€mförelseoperator alls anges kan glob-mönsterpassning med hjĂ€lp av tecknen â*â, â?â och â[â, â]â tillĂ€mpas. För jĂ€mförelse av versioner i stil med funktionen stverscmp() ska operatorerna ââ, â=â anvĂ€ndas.
- SELinux-mÀrket som anvÀnds för att kontrollera Ätkomst frÄn en enhet-fil lÀses nu vid filens laddningssteg, inte vid Ätkomstkontrollen.
- Villkoret «ConditionFirstBoot» triggars nu vid systemets första uppstart endast direkt under uppstartssteget och returnerar «false» vid anrop av enheter efter att uppstarten har avslutats.
- à r 2024 planeras systemd att avsluta stödet för resursbegrÀnsningsmekanismen cgroup v1, som klassificerades som förÄldrad i version 248 av systemd. Administratörer rekommenderas att i god tid övergÄ till cgroup v2 för tjÀnster knutna till cgroup v1. En nyckelskillnad mellan cgroups v2 och v1 Àr anvÀndningen av en gemensam hierarki av cgroups för alla typer av resurser, istÀllet för separata hierarkier för att fördela CPU-resurser, hantera minnesanvÀndning och för in- och utdata. Separata hierarkier leder till svÄrigheter i samarbetet mellan hanterarna och ger ytterligare belastning pÄ kÀrnans resurser nÀr regler tillÀmpas pÄ processer som nÀmns i olika hierarkier.
- Under andra halvan av 2023 planeras stödet för separata kataloghierarkier att upphöra, nÀr /usr monteras separat frÄn rot- eller separerade kataloger som /bin och /usr/bin, /lib och /usr/lib.
KĂ€lla: opennet.ru
