Das Unternehmen Microsoft hat das erste stabile Update für den neuen Branch von Azure Linux 3.0 veröffentlicht, der zuvor unter dem Namen CBL-Mariner vertrieben wurde. Diese Distribution entwickelt sich zu einer universellen Basisplattform für Linux-Umgebungen, die in Cloud-Infrastrukturen, Edge-Systemen und verschiedenen Microsoft-Diensten eingesetzt werden. Das Projekt zielt darauf ab, die in Microsoft verwendeten Linux-Lösungen zu vereinheitlichen und die Wartung von Linux-Systemen für verschiedene Zwecke auf dem neuesten Stand zu halten. Die Entwicklungen des Projekts werden unter der MIT-Lizenz verbreitet. Die Paketversionen werden für die Architekturen aarch64 und x86_64 erstellt. Die Größe des Installationsabbilds beträgt 740 MB.
Zu den Änderungen in der neuen Version gehören:
- Der Linux-Kernel wurde auf Version 6.6 aktualisiert (zuvor wurde Kernel 5.15 verwendet). Es wurde Unterstützung für Live-Patching hinzugefügt, die es ermöglicht, Sicherheitsanfälligkeiten im Kernel ohne Neustart zu beheben.
- Neue Versionen von Paketen wurden angeboten, darunter systemd 255, glibc 2.38, GCC 13.2, clang 18.1, OpenSSL 3.3, rpm 4.18.2, ruby 3.3.0, BIND 9.20, containerd 1.7.13, kunc 1.1.12, ostree 2024.5, rust 1.75, Perl 5.38, Python 3.12.3, QEMU 8.2.0.
- Das SELinux-System zur Durchsetzung des Zugriffs wurde standardmäßig in den Modus „enforcing“ versetzt.
- Standardmäßig wird die vereinheitlichte Hierarchie von cgroups v2 verwendet. Ein grundlegender Unterschied von cgroups v2 zu v1 ist die Anwendung einer allgemeinen Hierarchie von cgroups für alle Arten von Ressourcen, anstelle separater Hierarchien zur Verteilung von CPU-Ressourcen, zur Regelung des Speicherverbrauchs und für Ein-/Ausgabe.
- Es wurden Tools zur Migration anderer Distributionen (OSsku In-Place Migration) auf Knoten in Microsoft Azure hinzugefügt, sodass beispielsweise eine installierte Ubuntu-Instanz durch Azure Linux ersetzt werden kann.
- Die Unterstützung neuer NVIDIA-GPUs, wie der NVIDIA A100 und H100, wurde hinzugefügt, sowie der NVIDIA GPU Operator, um die Verwaltung der NVIDIA-Treiber auf Knoten mit Azure Linux zu automatisieren.
Die Azure Linux-Distribution bietet eine kleine Auswahl an grundlegenden Paketen, die als universelle Grundlage für die Erstellung von Container-Images, Host-Umgebungen und Diensten dienen, die in Cloud-Infrastrukturen und auf Edge-Geräten laufen. Komplexere und spezialisierte Lösungen können durch das Hinzufügen weiterer Pakete zu Azure Linux erstellt werden, jedoch bleibt die Basis für alle derartigen Systeme unverändert, was die Wartung und Vorbereitung von Aktualisierungen erleichtert.
Zum Beispiel wird Azure Linux als Basis für das Mini-Distributions-Werkzeug WSLg verwendet, das die Komponenten des grafischen Stacks bereitstellt, um GUI-Anwendungen von Linux in Umgebungen auf Grundlage der WSL2 (Windows Subsystem for Linux) auszuführen. Die erweiterten Funktionen in WSLg werden durch die Einbeziehung zusätzlicher Pakete mit Composite-Assets realisiert. dem Server durch Weston, XWayland, PulseAudio und FreeRDP.
Für die Verwaltung von Diensten und Systemlast kommt der Systemmanager systemd zum Einsatz. Die Paketverwaltung erfolgt über die Paketmanager RPM und DNF. Der SSH-Server ist standardmäßig nicht aktiviert. Für die Installation der Distribution steht ein Installer zur Verfügung, der sowohl im Text- als auch im grafischen Modus arbeiten kann. Der Installer bietet die Möglichkeit, ein vollständiges oder grundlegendes Paketset zu installieren, sowie eine Benutzeroberfläche zur Auswahl der Festplattenpartition, der Hostnamen und zur Erstellung von Benutzern.
Das Build-System von Azure Linux ermöglicht die Generierung sowohl einzelner RPM-Pakete basierend auf SPEC-Dateien und Quelltexten als auch monolithischer Systemabbilder, die mithilfe des rpm-ostree-Werkzeugs erstellt werden und atomar aktualisiert werden, ohne sie in einzelne Pakete aufzuteilen. Dementsprechend werden zwei Modelle zur Bereitstellung von Updates unterstützt: über die Aktualisierung einzelner Pakete und über den Neuaufbau und die Aktualisierung des gesamten Systemabbilds. Ein Repository, das etwa 3000 bereits erstellte RPM-Pakete enthält, steht zur Verfügung und kann zur Erstellung eigener Abbilder auf Basis einer Konfigurationsdatei verwendet werden.
Die Basisplattform umfasst nur die notwendigsten Komponenten und ist für einen minimalen Speicher- und Festplattenspeicherbedarf sowie eine hohe Ladegeschwindigkeit optimiert. In diesem Projekt wird der Ansatz „maximale Sicherheit per Default“ verfolgt, der die Aktivierung verschiedener zusätzlicher Mechanismen zur Erhöhung des Schutzes beinhaltet:
- Filterung von Systemaufrufen durch den seccomp-Mechanismus.
- Verschlüsselung von Festplattenteilen.
- Verifizierung von Paketen anhand digitaler Signaturen.
- Adressraumrandomisierung.
- Schutz vor Angriffen, die mit symbolischen Links, mmap, /dev/mem und /dev/kmem verbunden sind.
- Nur-Lese-Modus und Verbot der Codeausführung in Bereichen des Speichers, in denen Datensegmente des Kernels und von Modulen platziert sind.
- Option zum Verbot des Ladens von Kernelmodulen nach der Systeminitialisierung.
- Verwendung von iptables zur Filterung von Netzwerkpaketen.
- Aktivierung von Schutzmodi gegen Stacküberläufe, Pufferüberläufe und Formatierungsprobleme (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro) beim Kompilieren.
Quelle: opennet.ru
