Panoramica dell'architettura Azure Linux

Azure Linux è una distribuzione Linux gestita da Microsoft basata sull'ecosistema Fedora e ottimizzata per Azure. Questo articolo illustra come Azure Linux è strutturato, cosa include per impostazione predefinita e dove disegna intenzionalmente i limiti.

Annotazioni

Azure Linux 4.0 è ora disponibile in preview ed è strettamente limitato a scopi di valutazione e test. Non è adatto per l'uso in produzione.

Relazione tra Azure Linux e Fedora

Azure Linux deriva da Fedora e usa lo stesso ecosistema di pacchetti basato su RPM. Hai la familiarità di dnf5, gli strumenti di build di Fedora (mock, fedpkg, koji, kiwi) e le moderne toolchain del compilatore, tutti derivati da Fedora upstream. Oltre a questa base, Microsoft aggiunge Azure protezione avanzata specifica, un kernel personalizzato e un ciclo di vita gestito adatto per i carichi di lavoro cloud.

Il kernel viene fornito come versione 6.18 LTS, esteso con driver guest Hyper-V, ottimizzazione delle prestazioni Azure specifica e protezione avanzata convalidata negli SKU di macchine virtuali Azure.

Architettura a più livelli

Azure Linux usa un modello a più livelli. Ogni livello si basa su quello sottostante, dall'hardware e dal firmware alla base fino ai carichi di lavoro nella parte superiore.

Screenshot di un diagramma che mostra l'architettura a più livelli Azure Linux.

Livello del kernel

Il kernel Azure Linux personalizzato include driver guest Hyper-V, patch di protezione avanzata e ottimizzazioni delle prestazioni ottimizzate per l'infrastruttura Azure. È possibile scegliere tra i kernel Long-Term Support (LTS) per una maggiore stabilità oppure i kernel Hardware Enablement (HWE) per il supporto di nuovo hardware e delle GPU. Per informazioni dettagliate, vedere Frequenza di rilascio e ciclo di vita .

Livello del sistema operativo principale

Questo livello fornisce il filesystem root minimo: systemd per la gestione dei servizi, glibc come libreria di runtime del C e OpenSSL per la crittografia. Si tratta di componenti di livello 1, ovvero sono bloccati per la durata di una versione principale e ricevono solo backport di sicurezza. In questo modo, l'interfaccia binaria dell'applicazione (ABI) rimane stabile e il comportamento prevedibile.

Livello dei pacchetti dello spazio utente

I runtime del linguaggio (Python, Go, Rust, Node.js), gli strumenti dei contenitori e le dipendenze dell'applicazione sono disponibili qui. I pacchetti di livello 1 sono bloccati per la stabilità. I pacchetti di livello 2 vengono aggiornati in base a una cadenza prevedibile. Per altre informazioni, vedere Frequenza di rilascio e ciclo di vita.

Livello di carico di lavoro

I servizi e le applicazioni Azure vengono eseguiti qui. Azure Linux offre la stessa base di sistema operativo, lo stesso insieme di pacchetti e lo stesso comportamento, sia che venga eseguito in AKS, nelle macchine virtuali di Azure o nelle immagini di contenitori.

Ambito della piattaforma

Azure Linux è progettato per Azure carichi di lavoro cloud. Anche se Azure Linux è open source, gli impegni relativi al supporto e al ciclo di vita Microsoft si applicano solo agli scenari di Azure.

La tabella seguente illustra che cos'è e non è supportato in Azure Linux:

Area Supportato Non supportato
Architetture x86-64 (v2 minimum), ARMv8 (64 bit) Architetture a 32 bit
Ambienti VM di Azure, AKS, immagini di contenitore Immagini ISO, locali, multicloud, IoT, dispositivi perimetrali
Interfaccia utente Console basata su testo, SSH Ambienti desktop grafici, programma di installazione con interfaccia grafica
Virtualizzazione Guest KVM, Hyper-V Xen
Hardware periferico archiviazione connessa ad Azure, rete, GPU Bluetooth, Wi-Fi, stampanti, audio/video, robotica
Piattaforma attendibile TPM 2.0 TPM 1.x
Supporto di versioni in lingue diverse Supporto per le impostazioni locali globali disponibile Non tutti i Language Pack sono inclusi nell'immagine di base

Ogni immagine Azure Linux comprende waagent e cloud-init. Questi componenti sono necessari per l'integrazione Azure e devono essere sempre presenti.

Struttura del repository

Azure Linux distribuisce pacchetti in diversi repository separati. Conoscere il repository da cui proviene un pacchetto consente di ragionare sulla supportabilità, sulle funzionalità disponibili e su ciò che è necessario acconsentire esplicitamente. Per informazioni quotidiane sulla gestione dei pacchetti, vedere Gestione dei pacchetti.

Impostazioni predefinite di rete

Azure Linux viene fornito con uno stack di rete ottimizzato per le macchine virtuali Azure, i nodi del servizio Azure Kubernetes e i carichi di lavoro dei contenitori. La maggior parte dei carichi di lavoro può usare le impostazioni predefinite senza modifiche.

La tabella seguente riepiloga i componenti di rete predefiniti in Azure Linux e le alternative disponibili se è necessario eseguire l'override dei valori predefiniti per uno scenario specifico:

Componente Impostazione predefinita Alternativa Note
Gestione rete systemd‑networkd + cloud‑init NetworkManager (disponibile, non predefinito) systemd-networkd è l'impostazione predefinita per gli scenari di macchine virtuali e contenitori Azure.
Firewall firewalld N/A Abilitato per impostazione predefinita con un criterio di blocco del traffico in ingresso e di autorizzazione del traffico in uscita.
Back-end del firewall nftables iptables (tradizionale, disponibile) nftables è la sostituzione moderna per iptables. Il supporto legacy di iptables è disponibile ma non predefinito.
IPv6 Abilitato e con protezione avanzata N/A Applicato un rigoroso irrigidimento dei parametri sysctl sia a IPv4 sia a IPv6.

Impostazioni predefinite di archiviazione

Le impostazioni predefinite di archiviazione di Azure Linux sono ottimizzate per i dischi collegati ad Azure e per l'hypervisor Hyper-V alla base di ogni macchina virtuale di Azure. Il filesystem, il boot loader e la sorgente di clock sono scelti per garantire prestazioni prevedibili e la compatibilità con le funzionalità della piattaforma Azure, ad esempio snapshot e dischi gestiti.

La tabella seguente riepiloga le impostazioni di archiviazione predefinite in Azure Linux e le alternative disponibili se è necessario eseguire l'override delle impostazioni predefinite per uno scenario specifico:

Setting Impostazione predefinita Alternative
File system ext4 xfs, btrfs
Avvio Bootloader GRUB2 N/A
Orologio Origine dell'orologio PTP Hyper-V N/A
NVMe Timeout configurato per l'archiviazione collegata di Azure N/A

Architettura di sicurezza

Azure Linux è protetto a ogni livello, dal kernel fino alla supply chain. Le sezioni seguenti descrivono i controlli di sicurezza abilitati per impostazione predefinita. Per altre informazioni, vedere Sicurezza e conformità .

Controllo di accesso obbligatorio

Il controllo di accesso obbligatorio (MAC) restringe i processi ai soli accessi di cui hanno effettivamente bisogno, anche quando sono eseguiti come utente root.

L'anteprima di Azure Linux 4.0 abilita SELinux in modalità di applicazione come framework MAC.

Avvio protetto

L'avvio protetto garantisce l'esecuzione solo di bootloader e kernel firmati. Il blocco del kernel protegge il kernel in esecuzione e disabilita il caricamento di moduli kernel non attendibili in fase di esecuzione.

Annotazioni

Azure Linux 4.0 è ora in preview e i relativi componenti non sono ancora firmati per l'avvio protetto.

Protezione avanzata del kernel e del sistema

Il kernel e lo spazio utente sono creati con mitigazioni che rendono gli exploit più difficili da scrivere e più facili da contenere se hanno esito positivo.

La tabella seguente riepiloga le funzionalità di protezione avanzata del kernel e del sistema in Azure Linux:

Capability Description
ASLR Funzionalità ASLR (Address Space Layout Randomization) avanzata abilitata.
Protezione dello stack Protezioni dello stack a livello di compilatore applicate a tutti i pacchetti.
Restrizioni delle chiamate di sistema Profili seccomp predefiniti e filtro syscall.
Immagine di base minima Riduzione della superficie di attacco tramite un set di pacchetti minimo.

Cryptography

Azure Linux centralizza i criteri di crittografia in modo che gli algoritmi e le dimensioni delle chiavi rimangano coerenti tra OpenSSL, GnuTLS, NSS e OpenSSH.

La tabella seguente riepiloga le impostazioni di crittografia in Azure Linux:

Setting Value
FIPS La certificazione FIPS 140-3 è obbligatoria.
Criteri di crittografia Criteri di crittografia Fedora adottati per la selezione coerente degli algoritmi.
Post-quantum ML‑KEM previsto, allineato alla roadmap di Fedora e RHEL.

Registrazione e controllo

La tabella seguente riepiloga le impostazioni di registrazione e controllo in Azure Linux:

Setting Value
Daemon di controllo auditd abilitato.
Archiviazione del registro Archiviazione journald persistente.