Microsoft ha pubblicato un aggiornamento mensile della distribuzione Azure Linux 3.0.20260506. La distribuzione si evolve come piattaforma base universale per ambienti Linux, utilizzati in infrastrutture cloud, sistemi edge e vari servizi Microsoft. I contributi propri del progetto sono distribuiti sotto licenza MIT. Le build dei pacchetti sono create per le architetture aarch64 e x86_64. La dimensione dell'immagine di installazione è di 770 MB.
Tra le novità nella nuova versione:
- Nel repository (SPECS e SPECS-EXTENDED) sono stati aggiunti i pacchetti ignition e rust-afterburn.
- Il pacchetto con l'analizzatore di rete Wireshark è stato ricompilato con supporto per il linguaggio Lua.
- Durante la compilazione del pacchetto del kernel per l'architettura arm64 è stata inclusa l'opzione CONFIG_IKCONFIG_PROC, che consente l'accesso alla configurazione di compilazione dell'attuale kernel tramite il file /proc/config.gz.
- Migliorato il supporto per la migrazione live in QEMU.
- Nel file PackageBuild.yml è stato aggiunto il parametro extraMacrosFiles per passare file aggiuntivi con macro durante la compilazione del pacchetto.
- Risolte diverse decine di vulnerabilità in vari pacchetti.
- Aggiornate le versioni del kernel Linux 6.6.137.1, clamav 1.5.2, cloud-hypervisor 51.1.56, containerd2 2.1.6, cups 2.4.18, erlang 26.2.5.20, golang 1.26.2-1, libpng 1.6.57, mysql 8.0.46.
La distribuzione Azure Linux fornisce un piccolo insieme standard di pacchetti di base, che funge da base universale per creare il contenuto dei contenitori, ambienti host e servizi eseguiti in infrastrutture cloud e su dispositivi edge. Soluzioni più complesse e specializzate possono essere create aggiungendo pacchetti aggiuntivi sopra Azure Linux, ma la base per tutti questi sistemi rimane invariata, semplificando la manutenzione e la preparazione degli aggiornamenti.
Azure Linux è utilizzato come base per il mini-distributore WSLg, in cui sono forniti i componenti del stack grafico per l'esecuzione di applicazioni GUI Linux in ambienti basati sul sottosistema WSL2 (Windows Subsystem for Linux). Le funzionalità avanzate in WSLg sono implementate tramite l'inserimento di pacchetti aggiuntivi con il server composito Weston, XWayland, PulseAudio e FreeRDP.
Per la gestione dei servizi e del caricamento viene utilizzato il gestore di sistema systemd. Per la gestione dei pacchetti sono disponibili i gestori di pacchetti RPM e DNF. Il server SSH non è abilitato di default. Viene fornito un installatore per l'installazione della distribuzione, che può funzionare sia in modalità testuale che grafica. Nell'installer è possibile scegliere tra un'installazione completa o basica dei pacchetti, viene fornita un'interfaccia per la selezione della partizione del disco, la scelta del nome host e la creazione di utenti.
Il sistema di build di Azure Linux consente di generare sia pacchetti RPM singoli basati su file SPEC e sorgenti di testo, 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: tramite l'aggiornamento di singoli pacchetti e tramite la ricostruzione e l'aggiornamento dell'intera immagine di sistema. È disponibile un repository che include circa 3000 pacchetti RPM già costruiti, che possono essere utilizzati per comporre immagini personalizzate basate su un file di configurazione.
La piattaforma di base include solo i componenti più necessari ed è ottimizzata per un minimo consumo di memoria e spazio su disco, oltre che per un'elevata velocità di avvio. Nel progetto si adotta l'approccio 'massima sicurezza di default', che implica l'attivazione di vari meccanismi aggiuntivi per aumentare la protezione:
- Filtraggio delle chiamate di sistema attraverso il meccanismo seccomp.
- Crittografia delle partizioni del disco.
- Verifica dei pacchetti tramite firma digitale.
- Randomizzazione dello spazio degli indirizzi.
- Protezione contro attacchi legati a link simbolici, mmap, /dev/mem e /dev/kmem.
- Modalità di sola lettura e divieto di esecuzione di codice in aree di memoria che ospitano segmenti con dati del kernel e moduli.
- Opzione per vietare il caricamento di moduli del kernel dopo l'inizializzazione del sistema.
- Utilizzo di iptables per il filtraggio dei pacchetti di rete.
- Attivazione durante la compilazione delle modalità di protezione contro lo straripamento dello stack, il bufferoverflow e problemi di formattazione delle stringhe (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Fonte: opennet.ru
