Systemd System Manager 252:n julkaisu UKI (Unified Kernel Image) -tuella

Viiden kuukauden kehitystyön jälkeen esiteltiin järjestelmänhallintajärjestelmän julkaisu systemd 252. Uuden version tärkein muutos oli modernisoidun käynnistysprosessin tuen integrointi, jonka avulla voit tarkistaa ytimen ja käynnistyslataimen lisäksi myös komponentit. perusjärjestelmän ympäristöstä digitaalisten allekirjoitusten avulla.

Ehdotettu menetelmä sisältää yhdistetyn ytimen kuvan UKI (Unified Kernel Image) käytön latauksessa, joka yhdistää käsittelijän ytimen lataamiseksi UEFI:stä (UEFI boot stub), Linux-ytimen näköistiedoston ja muistiin ladatun initrd-järjestelmäympäristön. alkualustusta varten vaiheessa ennen juuri FS:n asentamista. UKI-kuva on pakattu yhdeksi suoritettavaksi tiedostoksi PE-muodossa, joka voidaan ladata perinteisillä käynnistyslataimilla tai kutsua suoraan UEFI-laiteohjelmistosta. UEFI:stä kutsuttaessa on mahdollista varmistaa digitaalisen allekirjoituksen eheys ja luotettavuus paitsi ytimen, myös initrd:n sisällön.

UKI-kuvan eheyden valvomiseen ja digitaalisen allekirjoituksen luomiseen käytettävien TPM PCR (Trusted Platform Module Platform Configuration Register) -rekisterien parametrien laskemiseksi mukana on uusi apuohjelma systemd-measure. Allekirjoituksessa käytetty julkinen avain ja siihen liittyvät PCR-tiedot voidaan upottaa suoraan UKI-käynnistyskuvaan (avain ja allekirjoitus tallennetaan PE-tiedostoon '.pcrsig'- ja '.pcrkey'-kenttiin) ja poimitaan siitä ulkoisella palvelimella. tai sisäiset apuohjelmat.

Erityisesti apuohjelmat systemd-cryptsetup, systemd-cryptenroll ja systemd-creds on mukautettu käyttämään näitä tietoja, joiden avulla voit varmistaa, että salatut levyosiot on sidottu digitaalisesti allekirjoitettuun ytimeen (tässä tapauksessa pääsy salattuun osioon tarjotaan vain, jos UKI-kuva on läpäissyt digitaalisen allekirjoituksen tarkastuksen TPM:ssä olevien parametrien perusteella).

Lisäksi mukana tulee systemd-pcrphase-apuohjelma, jonka avulla voit hallita eri käynnistysvaiheiden sitoutumista TPM 2.0 -spesifikaatiota tukevien kryptoprosessorien muistissa oleviin parametreihin (voit esimerkiksi asettaa LUKS2-osion salauksenpurkuavaimen saataville vain initrd-kuva ja estä pääsy siihen myöhemmissä latausvaiheissa).

Muutamia muita muutoksia:

  • Varmistaa, että oletuskieli on C.UTF-8, ellei asetuksissa ole määritetty toista aluetta.
  • Nyt on mahdollista suorittaa täydellinen palvelun esiasetustoiminto ("systemctl preset") ensimmäisen käynnistyksen aikana. Esiasetusten ottaminen käyttöön käynnistyksen yhteydessä vaatii rakentamisen "-Dfirst-boot-full-preset" -vaihtoehdolla, mutta se on tarkoitus ottaa oletuksena käyttöön tulevissa julkaisuissa.
  • Käyttäjähallintayksiköissä on CPU-resurssien ohjain, joka mahdollisti sen, että CPUWeight-asetuksia sovelletaan kaikkiin slice-yksiköihin, joilla järjestelmä jaettiin osiin (app.slice, background.slice, session.slice) resurssien eristämiseksi. erilaisia ​​käyttäjäpalveluita, jotka kilpailevat suorittimen resursseista. CPUWeight tukee myös "idle"-arvoa aktivoidakseen asianmukaisen resurssien hallintatilan.
  • Tilapäisissä ("transientisissa") yksiköissä ja systemd-repart-apuohjelmassa asetusten ohittaminen on sallittu luomalla pudotustiedostoja hakemistoon /etc/systemd/system/name.d/.
  • Järjestelmän kuville asetetaan tukipäätteinen lippu, joka määrittää tämän tosiasian /etc/os-release-tiedoston uuden parametrin "SUPPORT_END=" arvon perusteella.
  • Lisätty ConditionCredential=- ja AssertCredential=-asetukset, joita voidaan käyttää yksiköiden ohittamiseen tai kaatumiseen, jos järjestelmässä ei ole tiettyjä tunnistetietoja.
  • Lisätty DefaultSmackProcessLabel=- ja DefaultDeviceTimeoutSec=-asetukset tiedostoihin system.conf ja user.conf määrittääksesi oletusarvoisen SMACK-turvatason ja yksikön aktivoinnin aikakatkaisun.
  • ”ConditionFirmware=”- ja ”AssertFirmware=”-asetuksiin on lisätty mahdollisuus määrittää yksittäisiä SMBIOS-kenttiä, esimerkiksi käynnistää yksikkö vain, jos /sys/class/dmi/id/board_name-kenttä sisältää arvon ”Custom Board", voit määrittää "ConditionFirmware=smbios" -field(board_name = "Custom Board")".
  • Alustusprosessin (PID 1) aikana on lisätty mahdollisuus tuoda tunnistetietoja SMBIOS-kentistä (tyyppi 11, "OEM-toimittajan merkkijonot") niiden määrittelyn lisäksi qemu_fwcfg:n kautta, mikä yksinkertaistaa valtuustietojen antamista virtuaalikoneen ja eliminoi tarvitaan kolmannen osapuolen työkaluja, kuten cloud-init ja ignition.
  • Sammutuksen aikana virtuaalisten tiedostojärjestelmien (proc, sys) irrottamisen logiikkaa on muutettu ja tiedot tiedostojärjestelmien irrottamisen estävistä prosesseista tallennetaan lokiin.
  • Järjestelmäkutsusuodatin (SystemCallFilter) sallii oletusarvoisesti pääsyn riscv_flush_icache-järjestelmäkutsuun.
  • sd-boot bootloader lisää mahdollisuuden käynnistää sekatilassa, jossa 64-bittinen Linux-ydin toimii 32-bittisellä UEFI-laiteohjelmistolla. Lisätty kokeellinen kyky käyttää SecureBoot-avaimia automaattisesti ESP:stä (EFI-järjestelmäosio) löytyvistä tiedostoista.
  • Bootctl-apuohjelmaan on lisätty uusia vaihtoehtoja: "—all-architectures" binäärien asentamiseen kaikille tuetuille EFI-arkkitehtuureille, "—root=" ja "—image=" hakemiston tai levyotoksen kanssa työskentelemiseen, "-install-source =” asennuksen lähteen määrittämiseen, "-efi-boot-option-description=" ohjaa käynnistysmerkintöjen nimiä.
  • 'list-automounts'-komento on lisätty systemctl-apuohjelmaan näyttämään automaattisesti liitettyjen hakemistojen luettelo ja "--image="-vaihtoehto, joka suorittaa komentoja suhteessa määritettyyn levykuvaan. Lisätty "--state="- ja "--type="-vaihtoehdot "show"- ja "status"-komentoihin.
  • systemd-networkd lisäsi vaihtoehdot “TCPCongestionControlAlgorithm=” TCP-ruuhkanhallinta-algoritmin valitsemiseksi, “KeepFileDescriptor=” TUN/TAP-liitäntöjen tiedostokuvauksen tallentamiseksi, “NetLabel=” NetLabels-määritykseen, “RapidCommit=” nopeuttaaksesi määritystä DHCPv6:n kautta. (RFC 3315). Parametri “RouteTable=” mahdollistaa reititystaulukoiden nimien määrittämisen.
  • systemd-nspawn sallii suhteellisten tiedostopolkujen käytön "--bind="- ja "--overlay="-asetuksissa. Lisätty tuki "rootidmap"-parametrille "--bind="-vaihtoehtoon, joka sitoo säilön juurikäyttäjätunnuksen liitetyn hakemiston omistajaan isäntäpuolella.
  • systemd-resolved käyttää OpenSSL:ää salauksen taustaohjelmistona oletuksena (gnutls-tuki säilytetään valinnaisena). DNSSEC-algoritmeja, joita ei tueta, käsitellään nyt vaarallisina sen sijaan, että ne palauttaisivat virheen (SERVFAIL).
  • systemd-sysusers, systemd-tmpfiles ja systemd-sysctl toteuttavat mahdollisuuden siirtää asetuksia tunnistetietojen tallennusmekanismin kautta.
  • Lisätty 'compare-versions' -komento systemd-analyze-toimintoon, jolla voidaan verrata merkkijonoja versionumeroiden kanssa (samanlainen kuin 'rpmdev-vercmp' ja 'dpkg --compare-versions'). Lisätty mahdollisuus suodattaa yksiköitä maskin mukaan "systemd-analyze dump" -komentoon.
  • Kun valitset monivaiheisen lepotilan (keskeytä ja sitten lepotila), valmiustilassa vietetty aika valitaan nyt akun jäljellä olevan käyttöiän ennusteen perusteella. Välitön siirtyminen lepotilaan tapahtuu, kun akun varausta on jäljellä alle 5 %.
  • Uusi tulostustila "-o short-delta" on lisätty 'journalctl':ään, joka näyttää aikaeron eri viestien välillä lokissa.
  • systemd-repart lisää tuen osioiden luomiseen Squashfs-tiedostojärjestelmällä ja dm-verity-osioiden luomiseen, mukaan lukien digitaaliset allekirjoitukset.
  • Lisätty "StopIdleSessionSec="-asetus systemd-logindiin, joka lopettaa ei-aktiivisen istunnon tietyn aikakatkaisun jälkeen.
  • Systemd-cryptenroll on lisännyt "--unlock-key-file="-vaihtoehdon purkaaksesi salauksen purkuavaimen tiedostosta sen sijaan, että se kysyisi käyttäjää.
  • Nyt on mahdollista ajaa systemd-growfs -apuohjelmaa ympäristöissä, joissa ei ole udeviä.
  • systemd-backlight on parantanut tukea järjestelmille, joissa on useita näytönohjainkortteja.
  • Dokumentaation sisältämien koodiesimerkkien lisenssi on muutettu CC0:sta MIT-0:ksi.

Yhteensopivuuden rikkovat muutokset:

  • Kun ytimen versionumeroa tarkistetaan ConditionKernelVersion-direktiivillä, '='- ja '!='-operaattoreissa käytetään nyt yksinkertaista merkkijonovertailua, ja jos vertailuoperaattoria ei ole määritetty ollenkaan, voidaan käyttää glob-mask-sovitusta käyttämällä komentoa. merkit '*', '?' Ja '[', ']'. Vertaaksesi stverscmp()-tyyliversioita, käytä operaattoreita '<', '>', '<=' ja '>='.
  • SELinux-tunniste, jota käytetään tarkistamaan pääsy yksikkötiedostosta, luetaan nyt tiedoston lataushetkellä, eikä pääsyn tarkistuksen yhteydessä.
  • "ConditionFirstBoot" -ehto laukeaa nyt järjestelmän ensimmäisessä käynnistyksessä vain suoraan käynnistysvaiheessa ja palauttaa "false", kun yksiköitä kutsutaan käynnistyksen jälkeen.
  • Vuonna 2024 systemd aikoo lopettaa cgroup v1 -resurssien rajoittamismekanismin tukemisen, joka poistettiin systemd-julkaisussa 248. Järjestelmänvalvojia kehotetaan huolehtimaan etukäteen cgroup v2 -pohjaisten palveluiden siirtämisestä cgroup v1:een. Keskeinen ero cgroups v2:n ja v1:n välillä on yhteisen cgroups-hierarkian käyttö kaikentyyppisille resursseille erillisten hierarkioiden sijaan CPU-resurssien allokoinnissa, muistin kulutuksen säätelyssä ja I/O:ssa. Erilliset hierarkiat johtavat vaikeuksiin vuorovaikutuksen järjestämisessä käsittelijöiden välillä ja ylimääräisiin ytimen resursseihin sovellettaessa sääntöjä eri hierarkioissa viitatulle prosessille.
  • Vuoden 2023 toisella puoliskolla aiomme lopettaa tuen jaetuille hakemistohierarkioille, joissa /usr liitetään erillään juurista tai /bin ja /usr/bin, /lib ja /usr/lib erotetaan toisistaan.

Lähde: opennet.ru

Lisää kommentti