systemd gestore di sistema versione 248

Dopo quattro mesi di sviluppo, viene presentato il rilascio del gestore di sistema systemd 248. Il nuovo rilascio fornisce il supporto per le immagini per l'espansione delle directory di sistema, il file di configurazione /etc/veritytab, l'utility systemd-cryptenroll, lo sblocco LUKS2 tramite chip TPM2 e FIDO2 token, unità in esecuzione in uno spazio identificatore IPC isolato, protocollo BATMAN per reti mesh, backend nftables per systemd-nspawn. Systemd-oomd è stato stabilizzato.

Principali modifiche:

  • È stato implementato il concetto di immagini di estensione del sistema, che possono essere utilizzate per estendere la gerarchia delle directory /usr/ e /opt/ e aggiungere ulteriori file in fase di runtime, anche se le directory specificate sono montate in sola lettura. Quando viene montata un'immagine di estensione di sistema, i suoi contenuti vengono sovrapposti alla gerarchia /usr/ e /opt/ utilizzando OverlayFS.

    È stata proposta una nuova utility, systemd-sysext, per connettere, disconnettere, visualizzare e aggiornare le immagini delle estensioni di sistema. Per connettere automaticamente le immagini già installate durante l'avvio, è stato aggiunto il servizio systemd-sysext.service. Aggiunto il parametro "SYSEXT_LEVEL=" al file os-release per determinare il livello delle estensioni di sistema supportate.

  • Per le unità è stata implementata l'impostazione ExtensionImages, che può essere utilizzata per collegare le immagini delle estensioni del sistema alla gerarchia dello spazio dei nomi FS dei singoli servizi isolati.
  • Aggiunto il file di configurazione /etc/veritytab per configurare la verifica dei dati a livello di blocco utilizzando il modulo dm-verity. Il formato del file è simile a /etc/crypttab - "nome_sezione dispositivo_per_dati dispositivo_per_hash check_hash_opzioni root". Aggiunta l'opzione della riga di comando del kernel systemd.verity.root_options per configurare il comportamento dm-verity per il dispositivo root.
  • systemd-cryptsetup aggiunge la possibilità di estrarre l'URI del token PKCS#11 e la chiave crittografata dall'intestazione dei metadati LUKS2 in formato JSON, consentendo l'integrazione delle informazioni sull'apertura di un dispositivo crittografato nel dispositivo stesso senza coinvolgere file esterni.
  • systemd-cryptsetup fornisce supporto per sbloccare partizioni crittografate LUKS2 utilizzando chip TPM2 e token FIDO2, oltre ai token PKCS#11 precedentemente supportati. Il caricamento di libfido2 viene effettuato tramite dlopen(), ad es. la disponibilità viene verificata al volo, anziché come una dipendenza cablata.
  • Nuove opzioni "no-write-workqueue" e "no-read-workqueue" sono state aggiunte a /etc/crypttab per systemd-cryptsetup per abilitare l'elaborazione sincrona di I/O associato alla crittografia e decrittografia.
  • L'utilità systemd-repart ha aggiunto la possibilità di attivare partizioni crittografate utilizzando chip TPM2, ad esempio, per creare una partizione /var crittografata al primo avvio.
  • È stata aggiunta l'utilità systemd-cryptenroll per associare i token TPM2, FIDO2 e PKCS#11 alle partizioni LUKS, nonché per sbloccare e visualizzare i token, associare chiavi di riserva e impostare una password per l'accesso.
  • Aggiunto il parametro PrivateIPC, che consente di configurare il file unit per eseguire processi in uno spazio IPC isolato con identificatori e code di messaggi separati. Per connettere un'unità ad uno spazio identificatore IPC già creato, viene proposta l'opzione IPCNamespacePath.
  • Aggiunte le impostazioni ExecPaths e NoExecPaths per consentire l'applicazione del flag noexec a parti specifiche del file system.
  • systemd-networkd aggiunge il supporto per il protocollo mesh BATMAN (Better Approach To Mobile Adhoc Networking), che consente la creazione di reti decentralizzate in cui ciascun nodo è connesso tramite nodi vicini. Per la configurazione vengono proposti la sezione [BatmanAdvanced] in .netdev, il parametro BatmanAdvanced nei file .network e un nuovo tipo di dispositivo "batadv".
  • L'implementazione del meccanismo di risposta anticipata per memoria insufficiente nel sistema systemd-oomd è stata stabilizzata. Aggiunta l'opzione DefaultMemoryPressureDurationSec per configurare il tempo di attesa per il rilascio di una risorsa prima di influenzare un'unità. Systemd-oomd utilizza il sottosistema del kernel PSI (Pressure Stall Information) e consente di rilevare l'insorgere di ritardi dovuti alla mancanza di risorse e terminare selettivamente i processi ad alta intensità di risorse in una fase in cui il sistema non è ancora in uno stato critico e non iniziare a tagliare intensamente la cache e spostare i dati nella partizione di swap.
  • Aggiunto il parametro della riga di comando del kernel “root=tmpfs”, che consente di montare la partizione root nella memoria temporanea situata nella RAM utilizzando Tmpfs.
  • Il parametro /etc/crypttab che specifica il file chiave ora può puntare ai tipi di socket AF_UNIX e SOCK_STREAM. In questo caso la chiave deve essere fornita al momento della connessione al socket, che, ad esempio, può essere utilizzato per creare servizi che emettono chiavi dinamicamente.
  • Il nome host fallback utilizzato dal gestore di sistema e da systemd-hostnamed ora può essere impostato in due modi: tramite il parametro DEFAULT_HOSTNAME in os-release e tramite la variabile di ambiente $SYSTEMD_DEFAULT_HOSTNAME. systemd-hostnamed gestisce anche "localhost" nel nome host e aggiunge la possibilità di esportare il nome host e le proprietà "HardwareVendor" e "HardwareModel" tramite DBus.
  • Il blocco con variabili d'ambiente esposte può ora essere configurato tramite la nuova opzione ManagerEnvironment in system.conf o user.conf e non solo tramite la riga di comando del kernel e le impostazioni del file unit.
  • In fase di compilazione, è possibile utilizzare la chiamata di sistema fexecve() per avviare i processi invece di execve() per ridurre il ritardo tra il controllo del contesto di sicurezza e la sua applicazione.
  • Per i file unit, sono state aggiunte nuove operazioni condizionali ConditionSecurity=tpm2 e ConditionCPPUFeature per verificare la presenza di dispositivi TPM2 e capacità individuali della CPU (ad esempio, ConditionCPPUFeature=rdrand può essere utilizzato per verificare se il processore supporta l'operazione RDRAND).
  • Per i kernel disponibili, è stata implementata la generazione automatica delle tabelle delle chiamate di sistema per i filtri seccomp.
  • Aggiunta la possibilità di sostituire nuovi montaggi di collegamento negli spazi dei nomi di montaggio esistenti dei servizi, senza riavviare i servizi. La sostituzione viene eseguita con i comandi 'systemctl bind ...' e 'systemctl mount-image …'.
  • Aggiunto il supporto per specificare i percorsi nelle impostazioni StandardOutput e StandardError nel formato "troncare: » per la pulizia prima dell'uso.
  • Aggiunta la possibilità di stabilire una connessione alla sessione di un utente specificato all'interno di un contenitore locale su sd-bus. Ad esempio "systemctl -user -M lennart@ start quux".
  • I seguenti parametri sono implementati nei file systemd.link nella sezione [Link]:
    • Promiscuo - consente di commutare il dispositivo in modalità “promiscua” per elaborare tutti i pacchetti di rete, compresi quelli non indirizzati al sistema corrente;
    • TransmitQueues e ReceiveQueues per impostare il numero di code TX e RX;
    • TransmitQueueLength per impostare la dimensione della coda TX; GenericSegmentOffloadMaxBytes e GenericSegmentOffloadMaxSegment per impostare limiti per l'utilizzo della tecnologia GRO (Generic Receive Offload).
  • Sono state aggiunte nuove impostazioni ai file systemd.network:
    • [Rete] RouteTable per selezionare una tabella di routing;
    • [RoutingPolicyRule] Tipo per il tipo di routing ("blackhole, "unreachable", "prohibit");
    • [IPv6AcceptRA] RouteDenyList e RouteAllowList per elenchi di annunci di percorsi consentiti e negati;
    • [DHCPv6] UseAdres per ignorare l'indirizzo rilasciato da DHCP;
    • [DHCPv6PrefixDelegation] ManageTemporaryAddress;
    • ActivationPolicy per definire la politica relativa all'attività dell'interfaccia (mantenere sempre lo stato SU o GIÙ o consentire all'utente di modificare gli stati con il comando "ip link set dev").
  • Aggiunte le opzioni Protocollo [VLAN], IngressQOSMaps, EgressQOSMaps e [MACVLAN] BroadcastMulticastQueueLength ai file systemd.netdev per configurare l'elaborazione dei pacchetti VLAN.
  • Arresto del montaggio della directory /dev/ in modalità noexec poiché causa un conflitto quando si utilizza il flag dell'eseguibile con i file /dev/sgx. Per restituire il vecchio comportamento, puoi utilizzare l'impostazione NoExecPaths=/dev.
  • I permessi dei file /dev/vsock sono stati modificati in 0o666 e i file /dev/vhost-vsock e /dev/vhost-net sono stati spostati nel gruppo kvm.
  • Il database degli ID hardware è stato ampliato con lettori di impronte digitali USB che supportano correttamente la modalità di sospensione.
  • aggiunto supporto risolto da systemd per l'emissione di risposte alle query DNSSEC tramite un risolutore di stub. I client locali possono eseguire la convalida DNSSEC su se stessi, mentre i client esterni vengono inoltrati senza modifiche al server DNS padre.
  • Aggiunta l'opzione CacheFromLocalhost a risolto.conf, quando impostata, systemd-resolved utilizzerà la memorizzazione nella cache anche per le chiamate al server DNS su 127.0.0.1 (per impostazione predefinita, la memorizzazione nella cache di tali richieste è disabilitata per evitare la doppia memorizzazione nella cache).
  • systemd-resolved aggiunge il supporto per gli NSID RFC-5001 nel risolutore DNS locale, consentendo ai client di distinguere tra le interazioni con il risolutore locale e un altro server DNS.
  • L'utilità risolvectl implementa la capacità di visualizzare informazioni sull'origine dei dati (cache locale, richiesta di rete, risposta del processore locale) e l'uso della crittografia durante la trasmissione dei dati. Le opzioni --cache, --synthesize, --network, --zone, --trust-anchor e --validate vengono fornite per controllare il processo di determinazione del nome.
  • systemd-nspawn aggiunge il supporto per la configurazione di un firewall utilizzando nftables oltre al supporto iptables esistente. La configurazione IPMasquerade in systemd-networkd ha aggiunto la possibilità di utilizzare un backend basato su nftables.
  • systemd-localed ha aggiunto il supporto per chiamare locale-gen per generare localizzazioni mancanti.
  • Le opzioni --pager/-no-pager/-json= sono state aggiunte a varie utilità per abilitare/disabilitare la modalità di paging e l'output in formato JSON. Aggiunta la possibilità di impostare il numero di colori utilizzati nel terminale tramite la variabile d'ambiente SYSTEMD_COLORS (“16” o “256”).
  • La build con gerarchie di directory separate (split / e /usr) e il supporto cgroup v1 sono state deprecate.
  • Il ramo master in Git è stato rinominato da "master" a "main".

Fonte: opennet.ru

Aggiungi un commento