systemd gestore di sistema versione 250

Dopo cinque mesi di sviluppo è stata presentata la versione del gestore di sistema systemd 250. La nuova versione ha introdotto la possibilità di archiviare le credenziali in forma crittografata, implementata la verifica delle partizioni GPT rilevate automaticamente utilizzando una firma digitale, migliorata l'informazione sulle cause dei ritardi quando avvio dei servizi e opzioni aggiuntive per limitare l'accesso al servizio a determinati file system e interfacce di rete, viene fornito il supporto per il monitoraggio dell'integrità delle partizioni utilizzando il modulo dm-integrity e viene aggiunto il supporto per l'aggiornamento automatico sd-boot.

Principali modifiche:

  • Aggiunto supporto per credenziali crittografate e autenticate, che possono essere utili per archiviare in modo sicuro materiali sensibili come chiavi SSL e password di accesso. La decrittografia delle credenziali viene eseguita solo quando necessario e in connessione con l'installazione o l'apparecchiatura locale. I dati vengono crittografati automaticamente utilizzando algoritmi di crittografia simmetrica, la cui chiave può trovarsi nel file system, nel chip TPM2 o ​​utilizzando uno schema di combinazione. All'avvio del servizio, le credenziali vengono automaticamente decrittografate e diventano disponibili per il servizio nella sua forma normale. Per lavorare con credenziali crittografate è stata aggiunta l'utilità 'systemd-creds' e per i servizi sono state proposte le impostazioni LoadCredentialEncrypted e SetCredentialEncrypted.
  • sd-stub, l'eseguibile EFI che consente al firmware EFI di caricare il kernel Linux, ora supporta l'avvio del kernel utilizzando il protocollo EFI LINUX_EFI_INITRD_MEDIA_GUID. A sd-stub è stata aggiunta anche la possibilità di impacchettare credenziali e file sysext in un archivio cpio e trasferire questo archivio nel kernel insieme a initrd (i file aggiuntivi vengono posizionati nella directory /.extra/). Questa funzionalità consente di utilizzare un ambiente initrd immutabile verificabile, integrato da sysext e dati di autenticazione crittografati.
  • La specifica Partizioni rilevabili è stata notevolmente ampliata, fornendo strumenti per identificare, montare e attivare le partizioni di sistema utilizzando GPT (Tabelle di partizione GUID). Rispetto alle versioni precedenti, la specifica ora supporta la partizione root e la partizione /usr per la maggior parte delle architetture, comprese le piattaforme che non utilizzano UEFI.

    Discoverable Partitions aggiunge inoltre il supporto per le partizioni la cui integrità è verificata dal modulo dm-verity utilizzando le firme digitali PKCS#7, semplificando la creazione di immagini disco completamente autenticate. Il supporto per la verifica è integrato in varie utilità che manipolano le immagini del disco, inclusi systemd-nspawn, systemd-sysext, systemd-dissect, servizi RootImage, systemd-tmpfiles e systemd-sysusers.

  • Per le unità che impiegano molto tempo ad avviarsi o arrestarsi, oltre a visualizzare una barra di avanzamento animata, è possibile visualizzare informazioni sullo stato che permettono di capire cosa sta esattamente succedendo al servizio in questo momento e di quale servizio si occupa il gestore del sistema attualmente in attesa di essere completato.
  • Aggiunto il parametro DefaultOOMScoreAdjust a /etc/systemd/system.conf e /etc/systemd/user.conf, che consente di regolare la soglia OOM-killer per memoria insufficiente, applicabile ai processi avviati da systemd per il sistema e gli utenti. Per impostazione predefinita, il peso dei servizi di sistema è superiore a quello dei servizi utente, ovvero Quando la memoria non è sufficiente, la probabilità di interruzione dei servizi utente è superiore a quella di sistema.
  • Aggiunta l'impostazione RestrictFileSystems, che consente di limitare l'accesso dei servizi a determinati tipi di file system. Per visualizzare i tipi di file system disponibili, è possibile utilizzare il comando "systemd-analyze filesystems". Per analogia è stata implementata l'opzione RestrictNetworkInterfaces che permette di limitare l'accesso a determinate interfacce di rete. L'implementazione si basa sul modulo BPF LSM, che limita l'accesso di un gruppo di processi agli oggetti del kernel.
  • Aggiunto un nuovo file di configurazione /etc/integritytab e un'utilità systemd-integritysetup che configura il modulo dm-integrity per controllare l'integrità dei dati a livello di settore, ad esempio, per garantire l'immutabilità dei dati crittografati (Authenticated Encryption, assicura che un blocco di dati abbia non è stato modificato in modo indiretto). Il formato del file /etc/integritytab è simile ai file /etc/crypttab e /etc/veritytab, tranne per il fatto che viene utilizzato dm-integrity invece di dm-crypt e dm-verity.
  • È stato aggiunto un nuovo file unit systemd-boot-update.service, una volta attivato e installato il bootloader sd-boot, systemd aggiornerà automaticamente la versione del bootloader sd-boot, mantenendo il codice del bootloader sempre aggiornato. Lo stesso sd-boot è ora integrato per impostazione predefinita con il supporto per il meccanismo SBAT (UEFI Secure Boot Advanced Targeting), che risolve i problemi con la revoca del certificato per UEFI Secure Boot. Inoltre, sd-boot offre la possibilità di analizzare le impostazioni di avvio di Microsoft Windows per generare correttamente i nomi delle partizioni di avvio con Windows e visualizzare la versione di Windows.

    sd-boot offre anche la possibilità di definire una combinazione di colori in fase di creazione. Durante il processo di avvio, aggiunto il supporto per modificare la risoluzione dello schermo premendo il tasto "r". Aggiunto il tasto di scelta rapida "f" per accedere all'interfaccia di configurazione del firmware. Aggiunta una modalità per avviare automaticamente il sistema corrispondente alla voce di menu selezionata durante l'ultimo avvio. Aggiunta la possibilità di caricare automaticamente i driver EFI situati nella directory /EFI/systemd/drivers/ nella sezione ESP (EFI System Partition).

  • È incluso un nuovo file di unità factory-reset.target, che viene elaborato in systemd-logind in modo simile alle operazioni di riavvio, spegnimento, sospensione e ibernazione e viene utilizzato per creare gestori per eseguire un ripristino delle impostazioni di fabbrica.
  • Il processo risolto da systemd ora crea un socket di ascolto aggiuntivo su 127.0.0.54 oltre a 127.0.0.53. Le richieste che arrivano a 127.0.0.54 vengono sempre reindirizzate a un server DNS upstream e non vengono elaborate localmente.
  • Fornita la possibilità di creare systemd-importd e systemd-resolved con la libreria OpenSSL invece di libgcrypt.
  • Aggiunto il supporto iniziale per l'architettura LoongArch utilizzata nei processori Loongson.
  • systemd-gpt-auto-generator fornisce la possibilità di configurare automaticamente le partizioni di swap definite dal sistema crittografate dal sottosistema LUKS2.
  • Il codice di analisi delle immagini GPT utilizzato in systemd-nspawn, systemd-dissect e utilità simili implementa la capacità di decodificare immagini per altre architetture, consentendo di utilizzare systemd-nspawn per eseguire immagini su emulatori di altre architetture.
  • Durante l'ispezione delle immagini del disco, systemd-dissect ora mostra informazioni sullo scopo della partizione, come l'idoneità per l'avvio tramite UEFI o l'esecuzione in un contenitore.
  • Il campo "SYSEXT_SCOPE" è stato aggiunto ai file system-extension.d/, consentendo di indicare l'ambito dell'immagine di sistema: "initrd", "system" o "portable".
  • Un campo "PORTABLE_PREFIXES" è stato aggiunto al file os-release, che può essere utilizzato nelle immagini portatili per determinare i prefissi dei file di unità supportati.
  • systemd-logind introduce nuove impostazioni HandlePowerKeyLongPress, HandleRebootKeyLongPress, HandleSuspendKeyLongPress e HandleHibernateKeyLongPress, che possono essere utilizzate per determinare cosa succede quando determinati tasti vengono tenuti premuti per più di 5 secondi (ad esempio, premendo rapidamente il tasto Suspend può essere configurato per andare in modalità standby , e se tenuto premuto, andrà a dormire).
  • Per le unità, vengono implementate le impostazioni StartupAllowedCPUs e StartupAllowedMemoryNodes, che differiscono da impostazioni simili senza il prefisso Startup in quanto vengono applicate solo in fase di avvio e arresto, il che consente di impostare altre restrizioni sulle risorse durante l'avvio.
  • Aggiunti [Condizione|Assert][Memoria|CPU|IO]Controlli della pressione che consentono di saltare o fallire l'attivazione dell'unità se il meccanismo PSI rileva un carico pesante su memoria, CPU e I/O nel sistema.
  • Il limite massimo predefinito di inode è stato aumentato per la partizione /dev da 64k a 1M e per la partizione /tmp da 400k a 1M.
  • Per i servizi è stata proposta un'impostazione ExecSearchPath che consente di modificare il percorso di ricerca dei file eseguibili avviati tramite impostazioni come ExecStart.
  • Aggiunta l'impostazione RuntimeRandomizedExtraSec, che consente di introdurre deviazioni casuali nel timeout RuntimeMaxSec, che limita il tempo di esecuzione di un'unità.
  • È stata ampliata la sintassi delle impostazioni RuntimeDirectory, StateDirectory, CacheDirectory e LogsDirectory, in cui specificando un valore aggiuntivo separato da due punti è ora possibile organizzare la creazione di un collegamento simbolico ad una determinata directory per organizzare l'accesso lungo più percorsi.
  • Per i servizi, vengono offerte le impostazioni TTYRows e TTYColumns per impostare il numero di righe e colonne nel dispositivo TTY.
  • Aggiunta l'impostazione ExitType, che consente di modificare la logica per determinare la fine di un servizio. Per impostazione predefinita, systemd monitora solo la morte del processo principale, ma se è impostato ExitType=cgroup, il gestore del sistema attenderà il completamento dell'ultimo processo nel cgroup.
  • L'implementazione di systemd-cryptsetup del supporto TPM2/FIDO2/PKCS11 è ora creata anche come plug-in cryptsetup, consentendo di utilizzare il normale comando cryptsetup per sbloccare una partizione crittografata.
  • Il gestore TPM2 in systemd-cryptsetup/systemd-cryptsetup aggiunge il supporto per le chiavi primarie RSA oltre alle chiavi ECC per migliorare la compatibilità con i chip non ECC.
  • È stata aggiunta l'opzione token-timeout a /etc/crypttab, che consente di definire il tempo massimo di attesa per una connessione token PKCS#11/FIDO2, dopodiché verrà richiesto di inserire una password o una chiave di ripristino.
  • systemd-timesyncd implementa l'impostazione SaveIntervalSec, che consente di salvare periodicamente l'ora corrente del sistema su disco, ad esempio, per implementare un orologio monotono su sistemi senza RTC.
  • Sono state aggiunte opzioni all'utilità systemd-analyze: "--image" e "--root" per controllare i file di unità all'interno di una determinata immagine o directory root, "--recursive-errors" per prendere in considerazione le unità dipendenti quando si verifica un errore viene rilevato, "--offline" per controllare separatamente i file unitari salvati su disco, "-json" per l'output in formato JSON, "-quiet" per disabilitare i messaggi non importanti, "-profile" per associarsi a un profilo portatile. È stato inoltre aggiunto il comando inspect-elf per analizzare i file principali in formato ELF e la possibilità di controllare i file di unità con un determinato nome di unità, indipendentemente dal fatto che questo nome corrisponda al nome del file.
  • systemd-networkd ha ampliato il supporto per il bus CAN (Controller Area Network). Aggiunte impostazioni per controllare le modalità CAN: Loopback, OneShot, PresumeAck e ClassicDataLengthCode. Aggiunte le opzioni TimeQuantaNSec, PropagationSegment, PhaseBufferSegment1, PhaseBufferSegment2, SyncJumpWidth, DataTimeQuantaNSec, DataPropagationSegment, DataPhaseBufferSegment1, DataPhaseBufferSegment2 e DataSyncJumpWidth alla sezione [CAN] dei file .network per controllare la sincronizzazione dei bit dell'interfaccia CAN.
  • Systemd-networkd ha aggiunto un'opzione Etichetta per il client DHCPv4, che consente di configurare l'etichetta dell'indirizzo utilizzata durante la configurazione degli indirizzi IPv4.
  • systemd-udevd per "ethtool" implementa il supporto per valori "max" speciali che impostano la dimensione del buffer sul valore massimo supportato dall'hardware.
  • Nei file .link per systemd-udevd ora puoi configurare vari parametri per combinare gli adattatori di rete e connettere i gestori hardware (offload).
  • systemd-networkd offre nuovi file .network per impostazione predefinita: 80-container-vb.network per definire i bridge di rete creati durante l'esecuzione di systemd-nspawn con le opzioni “--network-bridge” o “--network-zone”; 80-6rd-tunnel.network per definire i tunnel che vengono creati automaticamente quando si riceve una risposta DHCP con l'opzione 6RD.
  • Systemd-networkd e systemd-udevd hanno aggiunto il supporto per l'inoltro IP su interfacce InfiniBand, per cui la sezione "[IPoIB]" è stata aggiunta ai file systemd.netdev e l'elaborazione del valore "ipoib" è stata implementata nel tipo collocamento.
  • systemd-networkd fornisce la configurazione automatica del percorso per gli indirizzi specificati nel parametro AlwaysedIPs, che può essere configurato tramite i parametri RouteTable e RouteMetric nelle sezioni [WireGuard] e [WireGuardPeer].
  • systemd-networkd fornisce la generazione automatica di indirizzi MAC non modificabili per le interfacce batadv e bridge. Per disabilitare questo comportamento, puoi specificare MACAddress=none nei file .netdev.
  • Un'impostazione WakeOnLanPassword è stata aggiunta ai file .link nella sezione "[Link]" per determinare la password quando WoL è in esecuzione in modalità "SecureOn".
  • Aggiunte le impostazioni AutoRateIngress, CompensationMode, FlowIsolationMode, NAT, MPUBytes, PriorityQueueingPreset, FirewallMark, Wash, SplitGSO e UseRawPacketSize alla sezione "[CAKE]" dei file .network per definire i parametri del meccanismo di gestione delle code di rete CAKE (Common Applications Kept Enhanced) .
  • Aggiunta un'impostazione IgnoreCarrierLoss alla sezione "[Network]" dei file .network, che consente di determinare quanto tempo attendere prima di reagire a una perdita di segnale portante.
  • Systemd-nspawn, homectl, machinectl e systemd-run hanno esteso la sintassi del parametro "--setenv" - se viene specificato solo il nome della variabile (senza "="), il valore verrà preso dalla corrispondente variabile d'ambiente (per esempio, quando si specifica "--setenv=FOO" il valore verrà preso dalla variabile di ambiente $FOO e utilizzato nella variabile di ambiente con lo stesso nome impostata nel contenitore).
  • systemd-nspawn ha aggiunto un'opzione "--suppress-sync" per disabilitare le chiamate di sistema sync()/fsync()/fdatasync() durante la creazione di un contenitore (utile quando la velocità è una priorità e preservare gli artefatti di compilazione in caso di errore non lo è importante, poiché possono essere ricreati in qualsiasi momento).
  • È stato aggiunto un nuovo database hwdb che comprende varie tipologie di analizzatori di segnale (multimetri, analizzatori di protocollo, oscilloscopi, ecc.). Le informazioni sulle fotocamere in hwdb sono state ampliate con un campo con informazioni sul tipo di fotocamera (normale o a infrarossi) e sul posizionamento dell'obiettivo (anteriore o posteriore).
  • Abilitata la generazione di nomi di interfaccia di rete immutabili per i dispositivi netfront utilizzati in Xen.
  • L'analisi dei file core da parte dell'utilità systemd-coredump basata sulle librerie libdw/libelf viene ora eseguita in un processo separato, isolato in un ambiente sandbox.
  • systemd-importd ha aggiunto il supporto per le variabili d'ambiente $SYSTEMD_IMPORT_BTRFS_SUBVOL, $SYSTEMD_IMPORT_BTRFS_QUOTA, $SYSTEMD_IMPORT_SYNC, con le quali è possibile disabilitare la generazione di sottopartizioni Btrfs, nonché configurare quote e sincronizzazione del disco.
  • In systemd-journald, sui file system che supportano la modalità copy-on-write, la modalità COW viene riattivata per i journal archiviati, consentendo loro di essere compressi utilizzando Btrfs.
  • systemd-journald implementa la deduplicazione di campi identici in un singolo messaggio, che viene eseguita nella fase precedente all'inserimento del messaggio nel journal.
  • Aggiunta l'opzione "--show" al comando shutdown per visualizzare lo spegnimento programmato.

Fonte: opennet.ru

Aggiungi un commento