Wydanie menedżera systemu systemd 250

Po pięciu miesiącach prac deweloperskich zaprezentowano wydanie menedżera systemowego systemd 250. W nowym wydaniu pojawiła się możliwość przechowywania danych uwierzytelniających w formie zaszyfrowanej, wdrożono weryfikację automatycznie określonych sekcji GPT na podstawie podpisu cyfrowego, poprawiono informowanie o przyczynach opóźnień podczas uruchamiania usług, dodano opcje ograniczania dostępu usług do określonych systemów plików i interfejsów sieciowych, zapewniono wsparcie dla kontroli integralności sekcji za pomocą modułu dm-integrity oraz wprowadzono wsparcie dla automatycznych aktualizacji sd-boot.

Główne zmiany:

  • Dodano wsparcie dla zaszyfrowanych i uwierzytelnionych danych uwierzytelniających, co może być przydatne do bezpiecznego przechowywania poufnych materiałów, takich jak SSL-klucze i hasła dostępu. Zaszyfrowanie danych uwierzytelniających odbywa się tylko w razie potrzeby i w związku z lokalną instalacją lub sprzętem. Dane automatycznie są szyfrowane przy użyciu symetrycznych algorytmów szyfrowania, a klucz może być przechowywany w systemie plików, w chipie TPM2 lub z wykorzystaniem schematu kombinowanego. Podczas uruchamiania usługi dane uwierzytelniające są automatycznie odszyfrowywane i stają się dostępne dla usługi w normalnej formie. Do pracy z zaszyfrowanymi danymi uwierzytelniającymi dodano narzędzie 'systemd-creds', a dla usług zaproponowano ustawienia LoadCredentialEncrypted i SetCredentialEncrypted.
  • W sd-stub, pliku wykonywalnym dla EFI, za pomocą którego oprogramowanie układowe EFI ładowało jądro systemu Linux, dodano wsparcie dla ładowania jądra z wykorzystaniem protokołu LINUX_EFI_INITRD_MEDIA_GUID EFI. Ponadto w sd-stub dodano możliwość pakowania danych uwierzytelniających i plików sysext do archiwum cpio i przesyłania tego archiwum do jądra wraz z initrd (dodatkowe pliki umieszczane są w katalogu /.extra/). Wskazana możliwość pozwala na wykorzystanie weryfikowalnego, nienaruszalnego środowiska initrd, uzupełnianego poprzez sysexts i zaszyfrowane dane do uwierzytelniania.
  • Znacząco rozszerzono specyfikację Discoverable Partitions, oferującą środki do identyfikacji, montowania i aktywacji systemowych partycji wykorzystujących GPT (GUID Partition Tables). W porównaniu do wcześniejszych wydań, dla większości architektur w specyfikacji wdrożono wsparcie dla partycji głównej oraz partycji /usr, także dla platform nieużywających UEFI.

    W Discoverable Partitions dodano wsparcie dla partycji, których integralność jest weryfikowana przez moduł dm-verity za pomocą cyfrowych podpisów PKCS#7, co upraszcza tworzenie w pełni uwierzytelnionych obrazów dysków. Wsparcie dla weryfikacji zintegrowano z różnymi narzędziami, które manipulują obrazami dysków, w tym systemd-nspawn, systemd-sysext, systemd-dissect, usługi z RootImage, systemd-tmpfiles oraz systemd-sysusers.

  • Dla długo uruchamianych lub zatrzymywanych jednostek, oprócz wyświetlania animowanego wskaźnika postępu operacji, wprowadzono możliwość wyświetlania informacji o stanie, pozwalających zrozumieć, co dokładnie dzieje się z usługą w danym momencie i jakiej usługi zakończenie oczekuje w tej chwili menedżer systemu.
  • W /etc/systemd/system.conf i /etc/systemd/user.conf dodano parametr DefaultOOMScoreAdjust, który pozwala dostosować próg działania OOM-killera w przypadku braku pamięci, mający zastosowanie do procesów, które systemd uruchamia dla systemu i użytkowników. Domyślnie waga usług systemowych jest wyższa niż użytkowników, co oznacza, że w sytuacji braku pamięci prawdopodobieństwo zakończenia usług użytkowników jest wyższe niż usług systemowych.
  • Dodano ustawienie RestrictFileSystems, które pozwala ograniczyć dostęp usług do określonych typów systemów plików. Do przeglądania dostępnych typów systemów plików można użyć polecenia „systemd-analyze filesystems”. W podobny sposób wprowadzono opcję RestrictNetworkInterfaces, która pozwala ograniczyć dostęp do określonych interfejsów sieciowych. Realizacja 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 oraz narzędzie systemd-integritysetup, które konfiguruje moduł dm-integrity do kontroli integralności danych na poziomie poszczególnych sektorów, na przykład w celu zapewnienia niezmienności zaszyfrowanych danych (Authenticated Encryption, gwarantuje, że blok danych nie został zmodyfikowany w drodze obejścia). Format pliku /etc/integritytab jest podobny do plików /etc/crypttab i /etc/veritytab, z wyjątkiem tego, że zamiast dm-crypt i dm-verity stosuje się dm-integrity.
  • Dodano nowe jednostkowe pliki unit systemd-boot-update.service, przy aktywacji którego i obecności zainstalowanego bootloadera sd-boot, systemd automatycznie będzie aktualizować wersję bootloadera sd-boot, utrzymując kod bootloadera zawsze w aktualnym stanie. Sam sd-boot teraz domyślnie kompilowany jest z obsługą mechanizmu SBAT (UEFI Secure Boot Advanced Targeting), rozwiązującego problemy z wycofaniem certyfikatów dla UEFI Secure Boot. Ponadto, w sd-boot zapewniono możliwość analizy ustawień rozruchowych Microsoft Windows dla poprawnego formowania nazw partycji rozruchowych z Windows i wyświetlania wersji Windows.

    W sd-boot również zaoferowano możliwość określenia schematu kolorów na etapie kompilacji. W trakcie rozruchu dodano wsparcie dla zmiany rozdzielczości ekranu za pomocą klawisza „r”. Dodano skrót klawiszowy „f” do przejścia do interfejsu ustawień firmware. Dodano tryb automatycznego uruchamiania systemu, odpowiadający elementowi menu wybranemu podczas poprzedniego uruchomienia. Dodano możliwość automatycznego ładowania sterowników EFI umieszczonych w katalogu /EFI/systemd/drivers/ w partycji ESP (EFI System Partition).

  • W skład włączono nowy plik unit factory-reset.target, przetwarzany w systemd-logind w analogiczny sposób jak operacje reboot, poweroff, suspend i hibernate, i wykorzystywany do tworzenia obsługi zapewniającej resetowanie do ustawień fabrycznych.
  • Proces systemd-resolved teraz tworzy dodatkowy socket nasłuchujący pod adresem 127.0.0.54 oprócz 127.0.0.53. Przychodzące na adres 127.0.0.54 zapytania zawsze są przekierowywane na wyższy serwer DNS i nie są przetwarzane lokalnie.
  • Zapewniono możliwość kompilacji systemd-importd i systemd-resolved z biblioteką OpenSSL zamiast libgcrypt.
  • Dodano wstępną obsługę architektury LoongArch, stosowanej w procesorach Loongson.
  • W systemd-gpt-auto-generator wdrożono możliwość automatycznej konfiguracji partycji swap definiowanych przez system, zaszyfrowanych subsystémem LUKS2.
  • W kodzie analizy obrazów GPT, używanym w systemd-nspawn, systemd-dissect i podobnych narzędziach, zaimplementowano możliwość dekodowania obrazów dla innych architektur, co pozwala na użycie systemd-nspawn do uruchamiania obrazów w emulatorach innych architektur.
  • Podczas inspekcji obrazów dysków w systemd-dissect teraz wyświetlane są informacje o przeznaczeniu partycji, takie jak przydatność do uruchamiania przez UEFI lub uruchomienie w kontenerze.
  • Do plików system-extension.d dodano pole «SYSEXT_SCOPE», które pozwala określić obszar zastosowania obrazu systemowego — «initrd», «system» lub «portable».
  • Do pliku os-release dodano pole «PORTABLE_PREFIXES», które można wykorzystać w przenośnych obrazach do określenia wspieranych prefiksów plików unit.
  • W systemd-logind wprowadzono nowe ustawienia HandlePowerKeyLongPress, HandleRebootKeyLongPress, HandleSuspendKeyLongPress oraz HandleHibernateKeyLongPress, które można wykorzystać do określenia działań przy przytrzymywaniu określonych klawiszy dłużej niż 5 sekund (na przykład, szybkie naciśnięcie klawisza Suspend można skonfigurować do przejścia w tryb uśpienia, a przytrzymanie — do trybu hibernacji).
  • Dla jednostek wprowadzono ustawienia StartupAllowedCPUs i StartupAllowedMemoryNodes, które różnią się od podobnych ustawień bez prefiksu Startup tym, że stosowane są tylko na etapie uruchamiania i zatrzymywania, co pozwala na nałożenie innych ograniczeń zasobów podczas uruchamiania.
  • Dodano kontrole [Condition|Assert][Memory|CPU|IO]Pressure, które pozwalają pominąć lub zakończyć błąd aktywacji jednostki w przypadku stwierdzenia dużego obciążenia pamięci, CPU i wejścia/wyjścia w systemie przez mechanizm PSI.
  • Domyślne ograniczenie maksymalnej liczby inode zostało zwiększone dla partycji /dev z 64k do 1M, a dla /tmp z 400k do 1M.
  • Dla usług wprowadzono ustawienie ExecSearchPath, które umożliwia zmianę ścieżki wyszukiwania plików wykonywalnych uruchamianych przez ustawienia podobne do ExecStart.
  • Dodano ustawienie RuntimeRandomizedExtraSec, które umożliwia wprowadzenie losowych odchyleń do limitu czasu RuntimeMaxSec, ograniczającego czas wykonania jednostki.
  • Rozszerzono składnię ustawień RuntimeDirectory, StateDirectory, CacheDirectory i LogsDirectory, w których poprzez wskazanie dodatkowej wartości oddzielonej dwukropkiem, można teraz zorganizować tworzenie dowiązania symbolicznego do określonego katalogu w celu uzyskania dostępu z kilku ścieżek.
  • Dla usług wprowadzono ustawienia TTYRows i TTYColumns do określenia liczby wierszy i kolumn w urządzeniu TTY.
  • Dodano ustawienie ExitType, które pozwala zmienić logikę określania zakończenia usługi. Domyślnie systemd śledzi zakończenie tylko głównego procesu, ale po ustawieniu ExitType=cgroup menedżer systemowy będzie czekał na zakończenie ostatniego procesu w cgroup.
  • Obsługa TPM2/FIDO2/PKCS11 w systemd-cryptsetup jest teraz zrealizowana jako wtyczka do cryptsetup, co pozwala na użycie standardowego polecenia cryptsetup do odblokowania zaszyfrowanej partycji.
  • W handlerze TPM2 w systemd-cryptsetup/systemd-cryptsetup dodano wsparcie dla kluczy RSA oprócz kluczy ECC w celu zwiększenia zgodności z chipami, które nie obsługują ECC.
  • Do /etc/crypttab dodano opcję token-timeout, która pozwala określić maksymalny czas oczekiwania na połączenie tokena PKCS#11/FIDO2, po upływie którego wyświetlany jest monit o wprowadzenie hasła lub klucza odzyskiwania.
  • W systemd-timesyncd wprowadzono ustawienie SaveIntervalSec, które pozwala okresowo zapisywać aktualną wartość czasu systemowego na dysku, na przykład w celu wdrożenia monotonnych zegarów w systemach bez RTC.
  • Do narzędzia systemd-analyze dodano opcje: "—image" i "—root" do weryfikacji plików unit w wybranym obrazie lub katalogu root, "—recursive-errors" do uwzględnienia zależnych jednostek przy wykrywaniu błędu, "—offline" do sprawdzania oddzielnie zapisanych plików unit, "—json" do wyjścia w formacie JSON, "—quiet" do wyłączenia nieistotnych komunikatów, "—profile" do powiązania z przenośnym profilem. Dodano także komendę inspect-elf do analizy plików core w formacie ELF oraz możliwość weryfikacji plików unit o zadanej nazwie, niezależnie od tego, czy ta nazwa odpowiada nazwie pliku.
  • W systemd-networkd rozszerzono wsparcie dla magistrali CAN (Controller Area Network). Dodano ustawienia do zarządzania trybami CAN: Loopback, OneShot, PresumeAck i ClassicDataLengthCode. Do sekcji [CAN] w plikach .network dodano opcje TimeQuantaNSec, PropagationSegment, PhaseBufferSegment1, PhaseBufferSegment2, SyncJumpWidth, DataTimeQuantaNSec, DataPropagationSegment, DataPhaseBufferSegment1, DataPhaseBufferSegment2 oraz DataSyncJumpWidth do zarządzania synchronizacją bitów interfejsu CAN.
  • W systemd-networkd dodano dla klienta DHCPv4 opcję Label, umożliwiającą określenie etykiety adresów stosowanej podczas konfigurowania adresów IPv4.
  • W systemd-udevd dla „ethtool” wprowadzono 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żna teraz skonfigurować różne parametry łączenia adapterów sieciowych i połączeń obsługi sprzętowej (offload).
  • W systemd-networkd domyślnie oferowane są nowe pliki .network: 80-container-vb.network do definiowania mostów sieciowych, tworzonych podczas uruchamiania systemd-nspawn z opcjami „—network-bridge” lub „—network-zone”; 80-6rd-tunnel.network do definiowania tuneli, automatycznie tworzonych podczas uzyskiwania odpowiedzi DHCP z opcją 6RD.
  • W systemd-networkd i systemd-udevd dodano wsparcie dla przesyłania IP przez interfejsy InfiniBand, dla których dodano sekcję „[IPoIB]” do plików systemd.netdev, a w ustawieniu Kind wprowadzono przetwarzanie wartości „ipoib”.
  • W systemd-networkd zapewniono automatyczną konfigurację tras dla adresów określonych w parametrze AllowedIPs, które można skonfigurować za pomocą parametrów RouteTable i RouteMetric w sekcjach [WireGuard] i [WireGuardPeer].
  • W systemd-networkd zapewniono automatyczne generowanie niezmiennych adresów MAC dla interfejsów batadv i bridge. Aby wyłączyć to zachowanie, można podać wartość MACAddress=none w plikach .netdev.
  • Do plików .link w sekcji „[Link]” dodano ustawienie WakeOnLanPassword, aby określić hasło podczas pracy WoL w trybie „SecureOn”.
  • Do sekcji „[CAKE]” plików .network dodano ustawienia AutoRateIngress, CompensationMode, FlowIsolationMode, NAT, MPUBytes, PriorityQueueingPreset, FirewallMark, Wash, SplitGSO i UseRawPacketSize w celu określenia parametrów mechanizmu zarządzania kolejkami sieciowymi CAKE (Common Applications Kept Enhanced).
  • Do sekcji „[Network]” plików .network dodano ustawienie IgnoreCarrierLoss, pozwalające określić jak długo czekać przed reakcją na utratę sygnału nośnego.
  • W systemd-nspawn, homectl, machinectl i systemd-run rozszerzono składnię parametru „—setenv” — jeśli podano tylko nazwę zmiennej (bez „=”), wartość zostanie pobrana z odpowiadającej zmiennej środowiskowej (na przykład, określając „—setenv=FOO”, zostanie pobrana wartość ze zmiennej środowiskowej $FOO i użyta w ustalonej w kontenerze zmiennej środowiskowej o tej samej nazwie).
  • W systemd-nspawn dodano opcję „—suppress-sync” do wyłączenia wykonywania wywołań systemowych sync()/fsync()/fdatasync() podczas tworzenia kontenera (przydatne, gdy szybkość ma pierwszorzędne znaczenie, a zapisanie artefaktów budowlanych w przypadku awarii nie jest istotne, ponieważ mogą być one wielokrotnie stworzone w każdej chwili).
  • Dodano nowe źródło danych hwdb, które obejmuje różne rodzaje analizatorów sygnałów (multimetry, analizatory protokołów, oscyloskopy itp.). Informacje o kamerach w hwdb zostały rozszerzone o pole z informacją o typie kamery (zwykła lub podczerwieni) oraz o umiejscowienie obiektywu (z przodu lub z tyłu).
  • Zapewniono generację niezmiennych nazw interfejsów sieciowych dla urządzeń netfront stosowanych w Xen.
  • Analiza plików core za pomocą narzędzia systemd-coredump oparta na bibliotekach libdw/libelf jest teraz przeprowadzana w osobnym procesie, izolowanym w środowisku sandbox.
  • W systemd-importd dodano wsparcie dla zmiennych środowiskowych $SYSTEMD_IMPORT_BTRFS_SUBVOL, $SYSTEMD_IMPORT_BTRFS_QUOTA, $SYSTEMD_IMPORT_SYNC, dzięki którym można wyłączyć generację podziałów Btrfs oraz skonfigurować kwoty i synchronizację dysków.
  • W systemd-journald na systemach plikowych obsługujących tryb copy-on-write przywrócono tryb COW dla archiwalnych dzienników, co pozwala na ich kompresję za pomocą Btrfs.
  • W systemd-journald zaimplementowano deduplikację identycznych pól w jednym komunikacie, która wykonywana jest przed umieszczeniem komunikatu w dzienniku.
  • Do polecenia shutdown dodano opcję „—show” do wyświetlania zaplanowanego zakończenia pracy.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster