systemd menedżer systemu wersja 250

Po pięciu miesiącach rozwoju zaprezentowano wydanie menedżera systemu systemd 250. W nowym wydaniu wprowadzono możliwość przechowywania danych uwierzytelniających w formie zaszyfrowanej, zaimplementowano weryfikację automatycznie wykrytych partycji GPT za pomocą podpisu cyfrowego, poprawiono informację o przyczynach opóźnień podczas uruchamiania usług oraz dodano opcje ograniczania dostępu usług do niektórych systemów plików i interfejsów sieciowych, zapewniono obsługę monitorowania integralności partycji za pomocą modułu dm-integrity oraz dodano obsługę automatycznej aktualizacji sd-boot.

Główne zmiany:

  • Dodano obsługę zaszyfrowanych i uwierzytelnionych poświadczeń, które mogą być przydatne do bezpiecznego przechowywania poufnych materiałów, takich jak klucze SSL i hasła dostępu. Odszyfrowanie danych uwierzytelniających odbywa się tylko wtedy, gdy jest to konieczne i w związku z lokalną instalacją lub sprzętem. Dane szyfrowane są automatycznie przy użyciu algorytmów szyfrowania symetrycznego, dla których klucz może znajdować się w systemie plików, w chipie TPM2 lub przy użyciu schematu kombinacji. Po uruchomieniu usługi dane uwierzytelniające są automatycznie odszyfrowywane i udostępniane usłudze w jej normalnej formie. Aby pracować z zaszyfrowanymi poświadczeniami, dodano narzędzie „systemd-creds” i zaproponowano ustawienia LoadCredentialEncrypted i SetCredentialEncrypted dla usług.
  • sd-stub, plik wykonywalny EFI, który umożliwia oprogramowaniu sprzętowemu EFI załadowanie jądra Linuksa, obsługuje teraz uruchamianie jądra przy użyciu protokołu EFI LINUX_EFI_INITRD_MEDIA_GUID. Do sd-stub dodano także możliwość spakowania referencji i plików sysext do archiwum cpio i przesłania tego archiwum do jądra wraz z initrd (dodatkowe pliki są umieszczane w katalogu /.extra/). Ta funkcja umożliwia użycie weryfikowalnego, niezmiennego środowiska initrd, uzupełnionego sysexts i zaszyfrowanymi danymi uwierzytelniającymi.
  • Specyfikacja Discoverable Partitions została znacznie rozszerzona, udostępniając narzędzia umożliwiające identyfikację, montowanie i aktywację partycji systemowych przy użyciu GPT (ang. GUID Partition Tables). W porównaniu z poprzednimi wersjami specyfikacja obsługuje teraz partycję root i partycję /usr dla większości architektur, w tym platform, które nie korzystają z UEFI.

    Discoverable Partitions dodaje także obsługę partycji, których integralność jest weryfikowana przez moduł dm-verity przy użyciu podpisów cyfrowych PKCS#7, co ułatwia tworzenie w pełni uwierzytelnionych obrazów dysków. Obsługa weryfikacji jest zintegrowana z różnymi narzędziami manipulującymi obrazami dysków, w tym systemd-nspawn, systemd-sysext, systemd-dissect, usługami RootImage, systemd-tmpfiles i systemd-sysusers.

  • W przypadku jednostek, których uruchomienie lub zatrzymanie zajmuje dużo czasu, oprócz wyświetlenia animowanego paska postępu, możliwe jest wyświetlenie informacji o statusie, która pozwala zrozumieć, co dokładnie dzieje się w danej chwili z usługą i jaką usługą zarządza menedżer systemu obecnie oczekuje na ukończenie.
  • Do plików /etc/systemd/system.conf i /etc/systemd/user.conf dodano parametr DefaultOOMScoreAdjust, który umożliwia dostosowanie progu OOM-killer w przypadku małej ilości pamięci, mającego zastosowanie do procesów uruchamianych przez systemd dla systemu i użytkowników. Domyślnie waga usług systemowych jest większa niż usług użytkownika, tj. W przypadku niewystarczającej ilości pamięci prawdopodobieństwo zakończenia usług użytkownika jest wyższe niż w przypadku usług systemowych.
  • Dodano ustawienie RestrictFileSystems, które umożliwia ograniczenie dostępu usług do określonych typów systemów plików. Aby wyświetlić dostępne typy systemów plików, możesz użyć polecenia „systemd-analyze filesystems”. Analogicznie zaimplementowano opcję RestrictNetworkInterfaces, która umożliwia ograniczenie dostępu do niektórych interfejsów sieciowych. Implementacja opiera się na module BPF LSM, który ogranicza dostęp grupy procesów do obiektów jądra.
  • Dodano nowy plik konfiguracyjny /etc/integritytab i narzędzie systemd-integritysetup, które konfigurują moduł dm-integrity w celu kontrolowania integralności danych na poziomie sektora, na przykład w celu zagwarantowania niezmienności zaszyfrowanych danych (Authenticated Encryption, gwarantuje, że blok danych nie zostały zmodyfikowane w sposób okrężny). Format pliku /etc/integritytab jest podobny do plików /etc/crypttab i /etc/veritytab, z tą różnicą, że zamiast dm-crypt i dm-verity używany jest plik dm-integrity.
  • Dodano nowy plik jednostkowy systemd-boot-update.service. Po aktywacji i zainstalowaniu programu ładującego sd-boot, systemd automatycznie zaktualizuje wersję programu ładującego sd-boot, utrzymując kod programu ładującego zawsze aktualny. Sam sd-boot jest teraz domyślnie zbudowany z obsługą mechanizmu SBAT (UEFI Secure Boot Advanced Targeting), który rozwiązuje problemy z unieważnianiem certyfikatów dla UEFI Secure Boot. Ponadto sd-boot umożliwia analizę ustawień rozruchu systemu Microsoft Windows w celu prawidłowego wygenerowania nazw partycji rozruchowych w systemie Windows i wyświetlenia wersji systemu Windows.

    sd-boot zapewnia także możliwość zdefiniowania schematu kolorów w czasie kompilacji. Podczas procesu uruchamiania dodano obsługę zmiany rozdzielczości ekranu poprzez naciśnięcie klawisza „r”. Dodano klawisz skrótu „f” umożliwiający przejście do interfejsu konfiguracji oprogramowania sprzętowego. Dodano tryb automatycznego uruchamiania systemu odpowiadający pozycji menu wybranej podczas ostatniego rozruchu. Dodano możliwość automatycznego ładowania sterowników EFI znajdujących się w katalogu /EFI/systemd/drivers/ w sekcji ESP (Partycja systemowa EFI).

  • Dołączony jest nowy plik jednostki Factory-Reset.target, który jest przetwarzany w systemied-logind w podobny sposób jak operacje ponownego uruchamiania, wyłączania, zawieszania i hibernacji i służy do tworzenia procedur obsługi przywracania ustawień fabrycznych.
  • Proces rozwiązany przez system tworzy teraz dodatkowe gniazdo nasłuchujące pod adresem 127.0.0.54 oprócz 127.0.0.53. Żądania przychodzące pod adresem 127.0.0.54 są zawsze przekierowywane do nadrzędnego serwera DNS i nie są przetwarzane lokalnie.
  • Zapewniono możliwość budowania systemd-importd i systemd-resolved przy użyciu biblioteki OpenSSL zamiast libgcrypt.
  • Dodano wstępną obsługę architektury LoongArch stosowanej w procesorach Loongson.
  • systemd-gpt-auto-generator zapewnia możliwość automatycznego konfigurowania zdefiniowanych przez system partycji wymiany zaszyfrowanych przez podsystem LUKS2.
  • Kod analizujący obrazy GPT używany w programach systemd-nspawn, systemd-dissect i podobnych narzędziach implementuje możliwość dekodowania obrazów dla innych architektur, umożliwiając używanie systemd-nspawn do uruchamiania obrazów na emulatorach innych architektur.
  • Podczas sprawdzania obrazów dysków systemd-dissect wyświetla teraz informacje o przeznaczeniu partycji, takie jak przydatność do rozruchu przez UEFI lub działanie w kontenerze.
  • Do plików system-extension.d/ dodano pole „SYSEXT_SCOPE”, które pozwala na wskazanie zakresu obrazu systemu - „initrd”, „system” lub „portable”.
  • Do pliku os-release dodano pole „PORTABLE_PREFIXES”, którego można używać w obrazach przenośnych w celu określenia obsługiwanych przedrostków plików jednostkowych.
  • systemd-login wprowadza nowe ustawienia HandlePowerKeyLongPress, HandleRebootKeyLongPress, HandleSuspendKeyLongPress i HandleHibernateKeyLongPress, których można użyć do określenia, co się stanie, gdy określone klawisze zostaną przytrzymane dłużej niż 5 sekund (na przykład szybkie naciśnięcie klawisza Wstrzymaj można skonfigurować tak, aby przeszło w tryb gotowości , a po przytrzymaniu przejdzie w stan uśpienia).
  • W przypadku jednostek zaimplementowano ustawienia StartupAllowedCPUs i StartupAllowedMemoryNodes, które różnią się od podobnych ustawień bez przedrostka Startup tym, że są stosowane tylko na etapie rozruchu i zamykania, co pozwala ustawić inne ograniczenia zasobów podczas rozruchu.
  • Dodano [Warunek|Assert][Pamięć|CPU|IO]Kontrolę ciśnienia, która pozwala na pominięcie lub niepowodzenie aktywacji jednostki, jeśli mechanizm PSI wykryje duże obciążenie pamięci, procesora i wejść/wyjść w systemie.
  • Domyślny maksymalny limit i-węzła został zwiększony dla partycji /dev z 64k do 1M, a dla partycji /tmp z 400k do 1M.
  • Dla usług zaproponowano ustawienie ExecSearchPath, które umożliwia zmianę ścieżki wyszukiwania plików wykonywalnych uruchamianych za pomocą ustawień takich jak ExecStart.
  • Dodano ustawienie RuntimeRandomizedExtraSec, które umożliwia wprowadzenie losowych odchyleń do limitu czasu RuntimeMaxSec, co ogranicza czas wykonania jednostki.
  • Rozszerzona została składnia ustawień RuntimeDirectory, StateDirectory, CacheDirectory i LogsDirectory, w której poprzez podanie dodatkowej wartości oddzielonej dwukropkiem można teraz zorganizować utworzenie dowiązania symbolicznego do danego katalogu w celu organizacji dostępu kilkoma ścieżkami.
  • W przypadku usług dostępne są ustawienia TTYRows i TTYColumns umożliwiające ustawienie liczby wierszy i kolumn w urządzeniu TTY.
  • Dodano ustawienie ExitType, które umożliwia zmianę logiki określania zakończenia usługi. Domyślnie systemd monitoruje tylko śmierć głównego procesu, ale jeśli ustawiono ExitType=cgroup, menedżer systemu będzie czekać na zakończenie ostatniego procesu w cgroup.
  • Implementacja obsługi TPM2/FIDO2/PKCS11 w systemied-cryptsetup jest teraz zbudowana również jako wtyczka cryptsetup, umożliwiająca użycie zwykłego polecenia cryptsetup do odblokowania zaszyfrowanej partycji.
  • Procedura obsługi TPM2 w systemd-cryptsetup/systemd-cryptsetup dodaje obsługę kluczy podstawowych RSA oprócz kluczy ECC, aby poprawić kompatybilność z chipami innymi niż ECC.
  • Do pliku /etc/crypttab dodano opcję token-timeout, która umożliwia zdefiniowanie maksymalnego czasu oczekiwania na połączenie z tokenem PKCS#11/FIDO2, po którym zostaniesz poproszony o podanie hasła lub klucza odzyskiwania.
  • systemd-timesyncd implementuje ustawienie SaveIntervalSec, które umożliwia okresowe zapisywanie bieżącego czasu systemowego na dysku, na przykład w celu wdrożenia zegara monotonicznego w systemach bez zegara RTC.
  • Do narzędzia systemd-analyze dodano opcje: „--image” i „--root” do sprawdzania plików jednostkowych wewnątrz danego obrazu lub katalogu głównego, „--recursive-errors” do uwzględniania jednostek zależnych w przypadku wystąpienia błędu zostanie wykryty, „--offline” do oddzielnego sprawdzania plików jednostek zapisanych na dysku, „—json” do wyprowadzania danych w formacie JSON, „—quiet”, aby wyłączyć nieistotne wiadomości, „—profile” do powiązania z profilem przenośnym. Dodano także polecenie inspect-elf służące do analizowania plików rdzenia w formacie ELF oraz możliwość sprawdzania plików jednostkowych o podanej nazwie jednostki, niezależnie od tego, czy nazwa ta pasuje do nazwy pliku.
  • systemd-networkd rozszerzył obsługę magistrali Controller Area Network (CAN). Dodano ustawienia do sterowania trybami CAN: Loopback, OneShot, PresumeAck i ClassicDataLengthCode. Dodano opcje TimeQuantaNSec, PropagationSegment, PhaseBufferSegment1, PhaseBufferSegment2, SyncJumpWidth, DataTimeQuantaNSec, DataPropagationSegment, DataPhaseBufferSegment1, DataPhaseBufferSegment2 i DataSyncJumpWidth do sekcji [CAN] plików .network w celu kontrolowania synchronizacji bitów interfejsu CAN.
  • Systemd-networkd dodał opcję Etykieta dla klienta DHCPv4, która umożliwia skonfigurowanie etykiety adresowej używanej podczas konfigurowania adresów IPv4.
  • systemd-udevd dla „ethtool” implementuje obsługę specjalnych wartości „max”, które ustawiają rozmiar bufora na maksymalną wartość obsługiwaną przez sprzęt.
  • W plikach .link dla systemd-udevd możesz teraz skonfigurować różne parametry łączenia kart sieciowych i łączenia procedur obsługi sprzętu (odciążanie).
  • systemd-networkd domyślnie oferuje nowe pliki .network: 80-container-vb.network do definiowania mostów sieciowych utworzonych podczas uruchamiania systemd-nspawn z opcjami „--network-bridge” lub „--network-zone”; 80-6rd-tunnel.network do zdefiniowania tuneli, które są tworzone automatycznie po otrzymaniu odpowiedzi DHCP z opcją 6RD.
  • Systemd-networkd i systemd-udevd dodały obsługę przekazywania IP przez interfejsy InfiniBand, dla którego do plików systemd.netdev dodano sekcję „[IPoIB]”, a w Kind ustawienie.
  • systemd-networkd zapewnia automatyczną konfigurację tras dla adresów określonych w parametrzeAlledIPs, które można skonfigurować za pomocą parametrów RouteTable i RouteMetric w sekcjach [WireGuard] i [WireGuardPeer].
  • systemd-networkd zapewnia automatyczne generowanie niezmiennych adresów MAC dla interfejsów batadv i mostu. Aby wyłączyć to zachowanie, możesz określić adres MACAddress=none w plikach .netdev.
  • Do plików .link w sekcji „[Link]” dodano ustawienie WakeOnLanPassword, aby określić hasło, gdy WoL działa w trybie „SecureOn”.
  • Dodano ustawienia AutoRateIngress, CompensationMode, FlowIsolationMode, NAT, MPUBytes, PriorityQueueingPreset, FirewallMark, Wash, SplitGSO i UseRawPacketSize do sekcji „[CAKE]” plików .network w celu zdefiniowania parametrów mechanizmu zarządzania kolejkami sieciowymi CAKE (Common Applications Kept Enhanced) .
  • Do sekcji „[Network]” plików .network dodano ustawienie IgnoreCarrierLoss, umożliwiające określenie czasu oczekiwania przed reakcją na utratę sygnału nośnego.
  • Systemd-nspawn, homectl, machinectl i systemd-run rozszerzyły składnię parametru „--setenv” - jeśli zostanie podana tylko nazwa zmiennej (bez „="), wartość zostanie pobrana z odpowiedniej zmiennej środowiskowej (np. przykładowo, przy podaniu "--setenv=FOO" wartość zostanie pobrana ze zmiennej środowiskowej $FOO i użyta w zmiennej środowiskowej o tej samej nazwie ustawionej w kontenerze).
  • systemd-nspawn dodał opcję „--suppress-sync”, aby wyłączyć wywołania systemowe sync()/fsync()/fdatasync() podczas tworzenia kontenera (przydatne, gdy szybkość jest priorytetem i zachowanie artefaktów kompilacji w przypadku awarii nie jest ważne, bo w każdej chwili można je odtworzyć).
  • Dodana została nowa baza danych hwdb, w której znajdują się różnego rodzaju analizatory sygnałów (multimetry, analizatory protokołów, oscyloskopy itp.). Informacje o kamerach w hwdb zostały rozszerzone o pole z informacją o rodzaju kamery (zwykła lub na podczerwień) oraz umiejscowieniu obiektywu (przód lub tył).
  • Włączono generowanie niezmiennych nazw interfejsów sieciowych dla urządzeń netfront używanych w Xen.
  • Analiza plików podstawowych przez narzędzie systemd-coredump oparte na bibliotekach libdw/libelf jest teraz przeprowadzana w oddzielnym procesie, izolowanym w środowisku piaskownicy.
  • systemd-importd dodał obsługę zmiennych środowiskowych $SYSTEMD_IMPORT_BTRFS_SUBVOL, $SYSTEMD_IMPORT_BTRFS_QUOTA, $SYSTEMD_IMPORT_SYNC, za pomocą których można wyłączyć generowanie podpartycji Btrfs, a także skonfigurować przydziały i synchronizację dysku.
  • W systemd-journald, w systemach plików obsługujących tryb kopiowania przy zapisie, tryb COW jest ponownie włączany dla zarchiwizowanych dzienników, umożliwiając ich kompresję przy użyciu Btrfs.
  • systemd-journald implementuje deduplikację identycznych pól w pojedynczej wiadomości, która wykonywana jest na etapie przed umieszczeniem wiadomości w dzienniku.
  • Do polecenia zamknięcia dodano opcję „--show” w celu wyświetlenia zaplanowanego zamknięcia.

Źródło: opennet.ru

Dodaj komentarz