Das Unternehmen Microsoft hat ein Update für die Azure Linux Distribution 3.0.20241203 veröffentlicht. Die Distribution wird als universelle Basisplattform für Linux-Umgebungen, die in Cloud-Infrastrukturen, Edge-Systemen und verschiedenen Microsoft-Diensten verwendet werden, weiterentwickelt. Die eigenen Entwicklungen des Projekts werden unter der MIT-Lizenz veröffentlicht. Die Paketversionen werden für die Architekturen aarch64 und x86_64 erstellt. Die Größe des Installationsimages beträgt 750 MB.
Zu den Neuerungen in der neuen Version gehören:
- Der Paketfilter iptables wurde zur Verarbeitung von Befehlen durch die Übersetzung von Regeln in Bytecode für nftables umgestellt (standardmäßig wird anstelle von iptables-legacy das Paket iptables-nft verwendet).
- Für Systeme Aarch64 wurde ein zusätzliches Paket mit dem Kernel kernel-64k angeboten, in dem große Seiten mit einer Größe von 64 KB verwendet werden (der Kernel wurde mit der Option CONFIG_ARM64_64K_PAGES erstellt).
- Im Paketmanager tdnf (eine Alternative zu dnf auf Basis von C libs) wurde die Unterstützung für die Konfiguration "installonlypkgs" hinzugefügt, die zur Organisation der Installation des Kernels kernel-64k verwendet wird.
- Bei der Verwendung von systemd-networkd wurde die Verarbeitung von livenet rootfs aus Dracut aktiviert.
- Ein Treiber für Intel Ethernet Connection E800 Netzwerkkarten wurde hinzugefügt.
- Im Log-Handler fluent-bit wurde die Unterstützung für die Programmiersprache Lua hinzugefügt.
- Die Überprüfung der digitalen Signatur von Kernen, die über das kexec-Verfahren geladen werden, wurde aktiviert.
- Zur Bestimmung der Container-Images wird anstelle der Überprüfung der Datei "/.dockerenv" das Dienstprogramm systemd-detect-virt verwendet.
- Die Versionen der Pakete wurden aktualisiert, darunter der Linux-Kernel 6.6.57, shim 15.8, SymCrypt 103.6.0, Valkey (ein Fork von Redis) 8.0.1, Go 1.23.3, MariaDB 10.11.10, PostgreSQL 16.5.
Die Distribution Azure Linux bietet ein kleines, standardisiertes Set an Basis-Paketen, die als universelle Grundlage für die Erstellung von Container-Inhalten, Host-Umgebungen und Diensten dienen, die in Cloud-Infrastrukturen und auf Edge-Geräten betrieben werden. Komplexere und spezialisierte Lösungen können durch das Hinzufügen zusätzlicher Pakete auf Azure Linux erstellt werden, aber die Grundlage für alle derartigen Systeme bleibt unverändert, was die Wartung und Vorbereitung von Updates vereinfacht.
Azure Linux wird als Grundlage für das Mini-Distribution WSLg verwendet, in dem Komponenten des grafischen Stacks zur Ausführung von GUI-Anwendungen von Linux in Umgebungen auf Basis der WSL2 (Windows Subsystem for Linux) bereitgestellt werden. Erweiterte Funktionalitäten in WSLg werden durch die Einbeziehung zusätzlicher Pakete mit dem Komposit Server Weston, XWayland, PulseAudio und FreeRDP.
Zur Verwaltung von Diensten und dem Bootprozess wird der Systemmanager systemd verwendet. Für die Paketverwaltung stehen die Paketmanager RPM und DNF zur Verfügung. Der SSH-Server ist standardmäßig nicht aktiviert. Ein Installer für die Distribution ist verfügbar, der sowohl im Text- als auch im Grafikmodus ausgeführt werden kann. Im Installer gibt es die Möglichkeit, entweder mit einem vollständigen oder einem Basis-Paketset zu installieren, es wird ein Interface zur Auswahl der Partition, zur Festlegung des Hostnamens und zur Erstellung von Benutzern angeboten.
Das Azure Linux-Baussystem ermöglicht die Erstellung von einzelnen RPM-Paketen auf Basis von SPEC-Dateien und Quelltexten sowie von monolithischen Systemimages, die mit Hilfe des Tools rpm-ostree erstellt und atomar ohne Aufspaltung in separate Pakete aktualisiert werden. Entsprechend werden zwei Modelle für die Bereitstellung von Updates unterstützt: durch die Aktualisierung einzelner Pakete und durch das Neubauen und die Aktualisierung des gesamten Systemimages. Ein Repository mit etwa 3000 bereits erstellten RPM-Paketen steht zur Verfügung, das zur Erstellung eigener Images basierend auf der Konfigurationsdatei verwendet werden kann.
Die Basisplattform umfasst nur die notwendigsten Komponenten und ist für minimalen Speicher- und Festplattenspeicherverbrauch sowie hohe Bootgeschwindigkeit optimiert. Im Projekt wird der Ansatz „maximale Sicherheit als Standard“ verfolgt, was die Aktivierung verschiedener zusätzlicher Mechanismen zum Schutz beinhaltet:
- Filtern von Systemaufrufen mittels des seccomp-Mechanismus.
- Verschlüsselung von Festplattenteilungen.
- Verifizierung von Paketen durch digitale Signaturen.
- Adressraum-Randomisierung.
- Schutz vor Angriffen, die mit symbolischen Links, mmap, /dev/mem und /dev/kmem verbunden sind.
- Nur-Lese-Modus und Verbot der Ausführung von Code in Speicherbereichen, die Datensegmente des Kernels und der Module beherbergen.
- Option zum Verbot des Ladens von Kernelmodulen nach der Systeminitialisierung.
- Verwendung von iptables zur Filterung von Netzwerkpaketen.
- Aktivierung von Schutzmodi gegen Pufferüberläufe, Stack-Überläufe und Formatierungsprobleme (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro) während der Erstellung.
Quelle: opennet.ru
