Efter fire måneders udvikling præsenteres udgivelsen af systemadministratoren systemd 248. Den nye udgivelse giver understøttelse af billeder til udvidelse af systemmapper, /etc/veritytab-konfigurationsfilen, systemd-cryptenroll-værktøjet, oplåsning af LUKS2 ved hjælp af TPM2-chips og FIDO2 tokens, kørende enheder i et isoleret IPC identifikatorrum, BATMAN-protokol til mesh-netværk, nftables-backend til systemd-nspawn. Systemd-oomd er blevet stabiliseret.
Vigtigste ændringer:
- Konceptet med systemudvidelsesbilleder er blevet implementeret, som kan bruges til at udvide hierarkiet af mapperne /usr/ og /opt/ og tilføje yderligere filer under kørsel, selvom de angivne mapper er monteret skrivebeskyttet. Når et systemudvidelsesbillede er monteret, overlejres dets indhold på /usr/- og /opt/-hierarkiet ved hjælp af OverlayFS.
Et nyt hjælpeprogram, systemd-sysext, er blevet foreslået til at forbinde, afbryde, se og opdatere billeder af systemudvidelser. For automatisk at forbinde allerede installerede billeder under opstart er tjenesten systemd-sysext.service blevet tilføjet. Tilføjet parameteren "SYSEXT_LEVEL=" til os-release-filen for at bestemme niveauet af understøttede systemudvidelser.
- For enheder er indstillingen ExtensionImages blevet implementeret, som kan bruges til at linke systemudvidelsesbilleder til FS-navnerumshierarkiet for individuelle isolerede tjenester.
- Tilføjet /etc/veritytab-konfigurationsfil for at konfigurere dataverifikation på blokniveau ved hjælp af dm-verity-modulet. Filformatet ligner /etc/crypttab - "section_name device_for_data device_for_hashes check_hash_root options." Tilføjet systemd.verity.root_options kerne kommandolinje mulighed for at konfigurere dm-verity adfærd for rodenheden.
- systemd-cryptsetup tilføjer muligheden for at udtrække PKCS#11-token-URI og krypterede nøgle fra LUKS2-metadata-headeren i JSON-format, hvilket gør det muligt at integrere information om åbning af en krypteret enhed i selve enheden uden at involvere eksterne filer.
- systemd-cryptsetup giver understøttelse til oplåsning af LUKS2-krypterede partitioner ved hjælp af TPM2-chips og FIDO2-tokens, foruden tidligere understøttede PKCS#11-tokens. Indlæsning af libfido2 sker via dlopen(), dvs. tilgængelighed kontrolleres med det samme, snarere end som en fastkablet afhængighed.
- Nye muligheder "no-write-workqueue" og "no-read-workqueue" er blevet tilføjet til /etc/crypttab for systemd-cryptsetup for at muliggøre synkron behandling af I/O forbundet med kryptering og dekryptering.
- Systemd-repart-værktøjet har tilføjet muligheden for at aktivere krypterede partitioner ved hjælp af TPM2-chips, for eksempel for at skabe en krypteret /var-partition ved første opstart.
- Systemd-cryptenroll-værktøjet er blevet tilføjet til at binde TPM2-, FIDO2- og PKCS#11-tokens til LUKS-partitioner, samt for at frigøre og se tokens, binde reservenøgler og indstille en adgangskode for adgang.
- Tilføjet PrivateIPC-parameteren, som giver dig mulighed for at konfigurere enhedsfilen til at køre processer i et isoleret IPC-rum med deres egne separate identifikatorer og beskedkø. For at forbinde en enhed til et allerede oprettet IPC identifikatorrum, foreslås IPCNamespacePath-indstillingen.
- Tilføjede indstillinger for ExecPaths og NoExecPaths for at tillade, at noexec-flaget kan anvendes på bestemte dele af filsystemet.
- systemd-networkd tilføjer understøttelse af BATMAN (Better Approach To Mobile Adhoc Networking) mesh-protokollen, som tillader oprettelsen af decentraliserede netværk, hvor hver node er forbundet gennem tilstødende noder. Til konfiguration foreslås [BatmanAdvanced]-sektionen i .netdev, BatmanAdvanced-parameteren i .network-filer og en ny enhedstype "batadv".
- Implementeringen af den tidlige responsmekanisme for lav hukommelse i systemd-oomd-systemet er blevet stabiliseret. Tilføjet indstillingen DefaultMemoryPressureDurationSec for at konfigurere ventetiden på, at en ressource frigives, før den påvirker en enhed. Systemd-oomd bruger PSI (Pressure Stall Information) kerneundersystemet og giver dig mulighed for at opdage starten af forsinkelser på grund af mangel på ressourcer og selektivt afslutte ressourcekrævende processer på et tidspunkt, hvor systemet endnu ikke er i en kritisk tilstand og ikke begynde at trimme cachen intensivt og forskyde data til en swap-partition.
- Tilføjet kerne-kommandolinjeparameter "root=tmpfs", som giver dig mulighed for at montere rodpartitionen i midlertidigt lager placeret i RAM ved hjælp af Tmpfs.
- Parameteren /etc/crypttab, der specificerer nøglefilen, kan nu pege på sockettyperne AF_UNIX og SOCK_STREAM. I dette tilfælde skal nøglen opgives ved tilslutning til stikkontakten, som fx kan bruges til at lave tjenester, der dynamisk udsteder nøgler.
- Reserveværtsnavnet til brug af systemadministratoren og systemd-hostnamed kan nu indstilles på to måder: gennem parameteren DEFAULT_HOSTNAME i os-release og gennem miljøvariablen $SYSTEMD_DEFAULT_HOSTNAME. systemd-hostnamed håndterer også "localhost" i værtsnavnet og tilføjer muligheden for at eksportere værtsnavnet samt egenskaberne "HardwareVendor" og "HardwareModel" via DBus.
- Blokken med eksponerede miljøvariabler kan nu konfigureres gennem den nye ManagerEnvironment-indstilling i system.conf eller user.conf, og ikke kun gennem kernens kommandolinje og enhedsfilindstillinger.
- På kompileringstidspunktet er det muligt at bruge fexecve()-systemkaldet til at starte processer i stedet for execve() for at reducere forsinkelsen mellem kontrol af sikkerhedskonteksten og anvendelse af den.
- For enhedsfiler er nye betingede operationer ConditionSecurity=tpm2 og ConditionCPUFeature blevet tilføjet for at kontrollere tilstedeværelsen af TPM2-enheder og individuelle CPU-kapaciteter (f.eks. kan ConditionCPUFeature=rdrand bruges til at kontrollere, om processoren understøtter RDRAND-operationen).
- For tilgængelige kerner er automatisk generering af systemkaldstabeller til seccomp-filtre blevet implementeret.
- Tilføjet muligheden for at erstatte nye bind-mounts i eksisterende mount-navneområder for tjenester uden at genstarte tjenesterne. Substitution udføres med kommandoerne 'systemctl bind ...' og 'systemctl mount-image …'.
- Tilføjet understøttelse til at angive stier i StandardOutput og StandardError-indstillingerne i formen "truncate: » til rengøring før brug.
- Tilføjet muligheden for at etablere en forbindelse til en specificeret brugers session i en lokal container til sd-bus. For eksempel "systemctl -bruger -M lennart@ start quux".
- Følgende parametre er implementeret i systemd.link-filerne i [Link]-sektionen:
- Promiskuøs - giver dig mulighed for at skifte enheden til "promiskuøs" tilstand for at behandle alle netværkspakker, inklusive dem, der ikke er adresseret til det aktuelle system;
- TransmitQueues og ReceiveQueues til indstilling af antallet af TX- og RX-køer;
- TransmitQueueLength for at indstille TX-køstørrelsen; GenericSegmentOffloadMaxBytes og GenericSegmentOffloadMaxSegment til at sætte grænser for brugen af GRO (Generic Receive Offload) teknologi.
- Nye indstillinger er blevet tilføjet til systemd.network-filer:
- [Netværk] RouteTable for at vælge en routingtabel;
- [RoutingPolicyRule] Indtast routingtypen ("sort hul, "uopnåelig", "forbud");
- [IPv6AcceptRA] RouteDenyList og RouteAllowList for lister over tilladte og nægtede rutereklamer;
- [DHCPv6] Brug adresser til at ignorere adressen udstedt af DHCP;
- [DHCPv6PrefixDelegation] ManageTemporaryAddress;
- ActivationPolicy til at definere politikken vedrørende grænsefladeaktivitet (oprethold altid OP- eller NED-tilstand, eller tillade brugeren at ændre tilstande med kommandoen "ip link set dev").
- Tilføjet [VLAN]-protokol, IngressQOSMaps, EgressQOSMaps og [MACVLAN] BroadcastMulticastQueueLength-indstillinger til systemd.netdev-filer for at konfigurere VLAN-pakkehåndtering.
- Stoppet med at montere /dev/-mappen i noexec-tilstand, da det forårsager en konflikt ved brug af det eksekverbare flag med /dev/sgx-filer. For at returnere den gamle adfærd kan du bruge indstillingen NoExecPaths=/dev.
- /dev/vsock-filtilladelserne er blevet ændret til 0o666, og /dev/vhost-vsock- og /dev/vhost-net-filerne er blevet flyttet til kvm-gruppen.
- Hardware-ID-databasen er blevet udvidet med USB-fingeraftrykslæsere, der understøtter dvaletilstand korrekt.
- systemd-løst tilføjet support til at udstede svar på DNSSEC-forespørgsler via en stub-resolver. Lokale klienter kan udføre DNSSEC-validering på sig selv, mens eksterne klienter proxes uændret til den overordnede DNS-server.
- Tilføjet indstillingen CacheFromLocalhost til resolved.conf, når den er indstillet, vil systemd-resolved bruge caching selv for opkald til DNS-serveren på 127.0.0.1 (som standard er caching af sådanne anmodninger deaktiveret for at undgå dobbelt caching).
- systemd-resolved tilføjer understøttelse af RFC-5001 NSID'er i den lokale DNS-resolver, hvilket giver klienter mulighed for at skelne mellem interaktioner med den lokale resolver og en anden DNS-server.
- Resolvectl-værktøjet implementerer muligheden for at vise information om datakilden (lokal cache, netværksanmodning, lokal processorsvar) og brugen af kryptering ved overførsel af data. Indstillingerne --cache, --synthesize, --network, --zone, --trust-anchor og --validate er tilvejebragt for at kontrollere navnebestemmelsesprocessen.
- systemd-nspawn tilføjer understøttelse til at konfigurere en firewall ved hjælp af nftables ud over den eksisterende iptables-understøttelse. IPMasquerade-opsætningen i systemd-networkd har tilføjet muligheden for at bruge en nftables-baseret backend.
- systemd-lokaliseret tilføjet understøttelse til at kalde locale-gen for at generere manglende lokaliteter.
- Indstillinger --pager/-no-pager/-json= er blevet tilføjet til forskellige hjælpeprogrammer for at aktivere/deaktivere personsøgningstilstand og output i JSON-format. Tilføjet muligheden for at indstille antallet af farver, der bruges i terminalen via miljøvariablen SYSTEMD_COLORS ("16" eller "256").
- Bygningen med separate mappehierarkier (split / og /usr) og cgroup v1-understøttelse er blevet forældet.
- Mastergrenen i Git er blevet omdøbt fra 'master' til 'main'.
Kilde: opennet.ru