Wydanie menedżera systemu systemd 248

Po czterech miesiącach prac deweloperskich zaprezentowano wydanie menedżera systemu systemd 248. W tej wersji dodano wsparcie dla obrazów rozszerzających systemowe katalogi, pliku konfiguracyjnego /etc/veritytab, narzędzia systemd-cryptenroll, odblokowywania LUKS2 za pomocą chipów TPM2 i tokenów FIDO2, uruchamiania jednostek w izolowanej przestrzeni identyfikatorów IPC, protokołu B.A.T.M.A.N. dla sieci mesh oraz backendu nftables dla systemd-nspawn. Stabilizowano systemd-oomd.

Główne zmiany:

  • Wprowadzono koncepcję obrazów rozszerzenia systemu (System Extension), którą można wykorzystać do rozszerzenia hierarchii katalogów /usr/ i /opt/ oraz dodawania dodatkowych plików podczas pracy, nawet jeśli wskazane katalogi są zamontowane w trybie tylko do odczytu. Po podłączeniu obrazu rozszerzenia systemu jego zawartość nakłada się na hierarchię /usr/ i /opt/ za pomocą OverlayFS.

    Zaprezentowano nowe narzędzie systemd-sysext do montowania, odmontowywania, przeglądania i aktualizacji obrazów rozszerzeń systemowych. Aby automatycznie podłączyć już zainstalowane obrazy podczas uruchamiania, dodano usługę systemd-sysext.service. W pliku os-release dodano parametr „SYSEXT_LEVEL=”, aby określić poziom obsługiwanych rozszerzeń systemów.

  • Dla jednostek wprowadzono konfigurację ExtensionImages, która może być wykorzystana do powiązania obrazów rozszerzenia systemu z hierarchią przestrzeni nazw FS poszczególnych izolowanych usług.
  • Dodano plik konfiguracyjny /etc/veritytab do konfigurowania weryfikacji danych na poziomie bloków za pomocą modułu dm-verity. Format pliku jest podobny do /etc/crypttab – „nazwa_partition urządzenie_dla_danych urządzenie_dla_haszy hash_weryfikacji_korzenia opcje”. Aby skonfigurować działanie dm-verity dla głównego urządzenia, dodano parametr wiersza poleceń jądra systemd.verity.root_options.
  • W systemd-cryptsetup dodano możliwość wydobywania URI tokena PKCS#11 oraz zaszyfrowanego klucza z nagłówka metadanych LUKS2 w formacie JSON, co umożliwia integrację informacji o otwieraniu zaszyfrowanego urządzenia w samym urządzeniu bez zaangażowania zewnętrznych plików.
  • W systemd-cryptsetup wprowadzono wsparcie dla odblokowywania zaszyfrowanych partycji LUKS2 za pomocą chipów TPM2 i tokenów FIDO2, oprócz wcześniej wspieranych tokenów PKCS#11. Ładowanie libfido2 odbywa się za pomocą dlopen(), to znaczy jego obecność jest sprawdzana w locie, a nie jako sztywno powiązana zależność.
  • W pliku /etc/crypttab dla systemd-cryptsetup dodano nowe opcje „no-write-workqueue” i „no-read-workqueue”, które umożliwiają synchronizację operacji we/wy związanych z szyfrowaniem i deszyfrowaniem.
  • Do narzędzia systemd-repart dodano możliwość aktywacji szyfrowanych partycji z wykorzystaniem chipów TPM2, na przykład w celu utworzenia szyfrowanej partycji /var przy pierwszym uruchomieniu.
  • Dodano narzędzie systemd-cryptenroll do przypisywania tokenów TPM2, FIDO2 i PKCS#11 do partycji LUKS, a także do odłączania i przeglądania tokenów, przypisywania zapasowych kluczy oraz ustalania hasła dostępu.
  • Dodano parametr PrivateIPC, który umożliwia w pliku unit skonfigurowanie uruchamiania procesów w izolowanej przestrzeni IPC z własnymi identyfikatorami i kolejkami komunikatów. Aby połączyć jednostkę z już utworzoną przestrzenią identyfikatorów IPC, zaproponowano opcję IPCNamespacePath.
  • Dodano ustawienia ExecPaths i NoExecPaths, które umożliwiają zastosowanie flagi noexec do poszczególnych części systemu plików.
  • W systemd-networkd dodano wsparcie dla protokołu mesh B.A.T.M.A.N. („Better Approach To Mobile Adhoc Networking”), który pozwala na tworzenie zdecentralizowanych sieci, w których każdy węzeł jest połączony z sąsiednimi węzłami. Do konfiguracji zaproponowano sekcję [BatmanAdvanced] w pliku .netdev, parametr BatmanAdvanced w plikach .network oraz nowy typ urządzenia „batadv”.
  • Ustabilizowano implementację mechanizmu wczesnego reagowania na niedobory pamięci w systemie systemd-oomd. Dodano opcję DefaultMemoryPressureDurationSec do konfiguracji czasu oczekiwania na zwolnienie zasobów przed oddziaływaniem na jednostkę. Systemd-oomd wykorzystuje podsystem jądra PSI (Pressure Stall Information) i pozwala na identyfikację początkowych opóźnień spowodowanych niedoborem zasobów oraz selektywne kończenie procesów intensywnie korzystających z zasobów w fazie, gdy system jeszcze nie znajduje się w krytycznym stanie i nie zaczyna intensywnie ograniczać pamięci podręcznej ani wypychać danych do pamięci swap.
  • Dodano parametr wiersza poleceń jądra — „root=tmpfs”, który pozwala na zamontowanie partycji głównej w tymczasowym magazynie zlokalizowanym w pamięci RAM za pomocą Tmpfs.
  • Parametr w pliku /etc/crypttab, definiujący plik klucza, może teraz wskazywać na gniazda typu AF_UNIX i SOCK_STREAM. W takim przypadku klucz musi być przekazywany podczas podłączenia do gniazda, co na przykład może być używane do tworzenia usług dynamicznie przekazujących klucze.
  • Zapasowa nazwa hosta (fallback) wykorzystywana przez menedżera systemowego i systemd-hostnamed może być teraz ustawiana na dwa sposoby: przez parametr DEFAULT_HOSTNAME w os-release oraz przez zmienną środowiskową $SYSTEMD_DEFAULT_HOSTNAME. W systemd-hostnamed wprowadzono również obsługę wobec wskazania „localhost” w nazwie hosta oraz możliwość eksportu nazwy hosta, jak również właściwości „HardwareVendor” i „HardwareModel” przez DBus.
  • Blok z ustalanymi zmiennymi środowiskowymi może być teraz konfigurowany za pomocą nowej opcji ManagerEnvironment w system.conf lub user.conf, a nie tylko przez linię poleceń jądra i ustawienia plików unit.
  • Na etapie kompilacji wprowadzono możliwość użycia do uruchamiania procesów wywołania systemowego fexecve() zamiast execve(), aby skrócić opóźnienie pomiędzy weryfikacją kontekstu bezpieczeństwa a jego zastosowaniem.
  • Nowe operacje warunkowe ConditionSecurity=tpm2 i ConditionCPUFeature dla plików unit zostały dodane, aby sprawdzać obecność urządzeń TPM2 oraz poszczególnych funkcji CPU (na przykład, ConditionCPUFeature=rdrand można używać do sprawdzania wsparcia procesora dla operacji RDRAND).
  • Dla dostępnych jąder wdrożono automatyczne generowanie tabel wywołań systemowych dla filtrów seccomp.
  • Dodano możliwość podmiany nowych powiązań montowania (bind mounts) w istniejących przestrzeniach punktów montowania (mount namespace) serwisów, bez ponownego uruchamiania serwisów. Podmiana odbywa się przez komendy ‘systemctl bind …’ oraz ‘systemctl mount-image …’.
  • Do ustawień StandardOutput i StandardError dodano wsparcie dla wskazywania ścieżek w formie „truncate:” w celu wyczyszczenia przed użyciem.
  • W sd-bus dodano możliwość nawiązania połączenia z sesją danego użytkownika wewnątrz lokalnego kontenera. Na przykład „systemctl —user -M lennart@ start quux”.
  • W plikach systemd.link w sekcji [Link] wprowadzone zostały parametry:
    • Promiscuous — umożliwia włączenie trybu „promiscuous” dla obsługi wszystkich pakietów sieciowych, w tym nieadresowanych do aktualnego systemu;
    • TransmitQueues i ReceiveQueues do konfiguracji liczby kolejek TX i RX;
    • TransmitQueueLength do ustawienia rozmiaru kolejki TX; GenericSegmentOffloadMaxBytes i GenericSegmentOffloadMaxSegment do określenia limitów zastosowania technologii GRO (Generic Receive Offload).
  • Do plików systemd.network dodano nowe ustawienia:
    • [Network] RouteTable do wyboru tabeli routingu;
    • [RoutingPolicyRule] Type dla typu routingu („blackhole”, „unreachable”, „prohibit”);
    • [IPv6AcceptRA] RouteDenyList i RouteAllowList dla list dozwolonych i zabronionych ogłoszeń tras;
    • [DHCPv6] UseAddres do ignorowania adresu przydzielanego przez DHCP;
    • [DHCPv6PrefixDelegation] ManageTemporaryAddress;
    • ActivationPolicy do określenia polityki dotyczącej aktywności interfejsu (zawsze utrzymywać w stanie UP lub DOWN albo pozwolić użytkownikowi zmieniać stany poleceniem „ip link set dev”).
  • Do plików systemd.netdev dodano opcje [VLAN] Protocol, IngressQOSMaps, EgressQOSMaps oraz [MACVLAN] BroadcastMulticastQueueLength do konfiguracji obsługi pakietów VLAN.
  • Zakończono montowanie katalogu /dev/ w trybie noexec, ponieważ prowadzi to do konfliktu przy używaniu flagi wykonywalności z plikami /dev/sgx. Aby przywrócić stare zachowanie, można użyć opcji NoExecPaths=/dev.
  • Uprawnienia do pliku /dev/vsock zmieniono na 0o666, a pliki /dev/vhost-vsock i /dev/vhost-net przeniesiono do grupy kvm.
  • Baza identyfikatorów sprzętu została rozszerzona o urządzenia USB do odczytu odcisków palców, które poprawnie wspierają przejście w tryb uśpienia.
  • systemd-resolved dodano wsparcie dla udzielania odpowiedzi na zapytania DNSSEC za pośrednictwem stub-resolvera. Lokalne klienty mogą przeprowadzać walidację DNSSEC samodzielnie, a zewnętrzne są przesyłane w niezmienionej formie do nadrzędnego serwera DNS.
  • W resolved.conf dodano opcję CacheFromLocalhost, włączającą której systemd-resolved będzie używał cache nawet dla zapytań do serwera DNS pod adresem 127.0.0.1 (domyślnie cache dla takich zapytań jest wyłączone, aby uniknąć podwójnego cache).
  • W systemd-resolved dodano wsparcie dla RFC-5001 NSID w lokalnym DNS-resolverze, pozwalające klientom rozróżniać interakcje z lokalnym resolverem i innymi. serwerem DNS.
  • W narzędziu resolvectl wprowadzono możliwość wyświetlania informacji o źródle danych (lokalny cache, zapytanie przez sieć, odpowiedź lokalnego przetwarzającego) oraz stosowania szyfrowania podczas przesyłania danych. Do zarządzania procesem rozwiązywania nazw zaproponowano opcje —cache, —synthesize, —network, —zone, —trust-anchor oraz —validate.
  • W systemd-nspawn dodano wsparcie dla konfiguracji zapory sieciowej z użyciem nftables obok istniejącego wsparcia dla iptables. W konfiguracji IPMasquerade w systemd-networkd dodano możliwość używania backendu opartego na nftables.
  • W systemd-localed dodano wsparcie dla wywołania locale-gen do generowania brakujących lokalizacji.
  • W różne narzędzia dodano opcje —pager/—no-pager/—json= do włączania/wyłączania trybu paginacji i wyjścia w formacie JSON. Dodano możliwość ustawienia liczby kolorów używanych w terminalu za pomocą zmiennej środowiskowej SYSTEMD_COLORS („16” lub „256”).
  • Ogłoszono jako przestarzałe zestawienie z oddzielnymi hierarchiami katalogów (rozdzielenie / i /usr) oraz wsparcie dla cgroup v1.
  • Główna gałąź w Git została przemianowana z ‘master’ na ‘main’.

Źródło: opennet.ru

Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS - ProHoster