Microsoft ha pubblicato un aggiornamento della distribuzione CBL-Mariner 1.0.20210901 (Common Base Linux Mariner), che si sviluppa come piattaforma di base universale per ambienti Linux utilizzati nell'infrastruttura cloud, nei sistemi edge e nei vari servizi Microsoft. Il progetto mira a unificare le soluzioni Linux utilizzate in Microsoft e a semplificare la manutenzione dei sistemi Linux per vari scopi mantenendoli aggiornati. I risultati del progetto sono distribuiti sotto licenza MIT.
Nel nuovo rilascio:
- È iniziata la creazione dell'immagine ISO di base (700 MB). Nel primo rilascio non sono state fornite immagini ISO pronte, si supponeva che l'utente potesse creare l'immagine con il contenuto necessario (le istruzioni per la costruzione sono state preparate per Ubuntu 18.04).
- È stata implementata la gestione degli aggiornamenti automatici dei pacchetti, per la quale è stata inclusa l'applicazione Dnf-Automatic.
- Il kernel Linux è stato aggiornato alla versione 5.10.60.1. Sono state aggiornate le versioni dei programmi, tra cui openvswitch 2.15.1, golang 1.16.7, logrus 1.8.1, tcell 1.4.0, gonum 0.9.3, testify 1.7.0, crunchy 0.4.0, xz 0.5.10, swig 4.0.2, squashfs-tools 4.4, mysql 8.0.26.
- In OpenSSL è stata ripristinata la possibilità di supportare TLS 1 e TLS 1.1.
- Per controllare i testi sorgente dello strumento è stata utilizzata l'utilità sha256sum.
- Sono stati inclusi nuovi pacchetti: etcd-tools, cockpit, aide, fipscheck, tini.
- Rimossi i pacchetti brp-strip-debug-symbols, brp-strip-unneeded e ca-legacy. Rimossi i file SPEC per i pacchetti Dotnet e aspnetcore, ora compilati dal team principale di sviluppo .NET e ospitati in un repository separato.
- Le versioni dei pacchetti utilizzati sono state aggiornate con le correzioni delle vulnerabilità.
Ricordiamo che la distribuzione CBL-Mariner fornisce un insieme di base di pacchetti standard, che fungono da fondamento universale per la creazione di contenitori, ambienti host e servizi eseguiti su infrastrutture cloud e dispositivi edge. Soluzioni più complesse e specializzate possono essere create aggiungendo pacchetti aggiuntivi sopra CBL-Mariner, ma la base per tutti questi sistemi rimane invariata, semplificando la manutenzione e la preparazione degli aggiornamenti. Ad esempio, CBL-Mariner viene utilizzato come base per il mini-distribuzione WSLg, che fornisce componenti per il stack grafico per l'esecuzione di applicazioni GUI Linux in ambienti basati sul sottosistema WSL2 (Windows Subsystem for Linux). Funzionalità avanzate in WSLg vengono implementate tramite l'inclusione di pacchetti aggiuntivi con composizione. server Weston, XWayland, PulseAudio e FreeRDP.
Il sistema di assemblaggio CBL-Mariner consente di generare sia singoli pacchetti RPM basati su file SPEC e sorgenti, sia immagini di sistema monolitiche, create utilizzando lo strumento rpm-ostree e aggiornate in modo atomico senza suddivisione in pacchetti singoli. Di conseguenza, sono supportati due modelli di distribuzione degli aggiornamenti: attraverso l'aggiornamento di pacchetti singoli e attraverso la ricostruzione e l'aggiornamento dell'intera immagine di sistema. È disponibile un repository che include circa 3000 pacchetti RPM già assemblati, che possono essere utilizzati per comporre le proprie immagini basate su un file di configurazione.
La distribuzione include solo i componenti più necessari ed è ottimizzata per un consumo minimo di memoria e spazio su disco, oltre a garantire elevate velocità di avvio. La distribuzione è anche nota per l'inclusione di vari meccanismi aggiuntivi per aumentare la sicurezza. Nel progetto viene applicato un approccio di "massima sicurezza per impostazione predefinita". Viene fornita la possibilità di filtrare le chiamate di sistema utilizzando il meccanismo seccomp, crittografare le partizioni del disco e verificare i pacchetti tramite firma digitale.
Sono attivati i modi di randomizzazione degli indirizzi supportati nel kernel Linux, nonché meccanismi di protezione da attacchi legati a link simbolici, mmap, /dev/mem e /dev/kmem. Per le aree di memoria in cui sono allocati segmenti con dati del kernel e moduli, è impostato un modo di sola lettura ed è vietato l'esecuzione del codice. È disponibile, facoltativamente, la possibilità di bloccare il caricamento dei moduli del kernel dopo l'inizializzazione del sistema. Per il filtraggio dei pacchetti di rete è utilizzato lo strumento iptables. Nella fase di compilazione, per impostazione predefinita, sono attivati i modi di protezione da overflow dello stack, overflow di buffer e problemi di formattazione delle stringhe (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Per la gestione dei servizi e del caricamento viene utilizzato il gestore di sistema systemd. Per la gestione dei pacchetti sono forniti i gestori di pacchetti RPM e DNF (variante tdnf di vmWare). Il server SSH non è attivato di default. Per l'installazione della distribuzione è fornito un installatore che può funzionare sia in modalità testuale che grafica. Nell'installatore è possibile scegliere di installare con un set completo o base di pacchetti, è disponibile un'interfaccia per selezionare la partizione disco, scegliere il nome host e creare utenti.
Fonte: opennet.ru
