Microsoft a publié la première mise à jour stable de la nouvelle branche de la distribution Azure Linux 3.0, qui était auparavant connue sous le nom de CBL-Mariner. Cette distribution évolue en tant que plateforme de base polyvalente pour les environnements Linux utilisés dans l'infrastructure cloud, les systèmes edge et divers services Microsoft. Le projet vise à unifier les solutions Linux utilisées par Microsoft et à simplifier la maintenance des systèmes Linux destinés à divers usages. Les contributions du projet sont publiées sous licence MIT. Des paquets sont compilés pour les architectures aarch64 et x86_64. La taille de l'image d'installation est de 740 Mo.
Parmi les changements dans la nouvelle version :
- Le noyau Linux a été mis à jour vers la version 6.6 (auparavant, le noyau 5.15 était utilisé). Un support pour le live patching a été ajouté, permettant de corriger les vulnérabilités du noyau sans redémarrage.
- De nouvelles versions de paquets sont proposées, parmi lesquelles 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.
- Le système de contrôle d'accès renforcé SELinux est paramétré par défaut en mode « enforcing ».
- Par défaut, une hiérarchie unifiée cgroups v2 est activée. La principale différence entre cgroups v2 et v1 est l'application d'une hiérarchie commune de cgroups pour tous les types de ressources, au lieu de hierarchies séparées pour la distribution des ressources CPU, la régulation de la consommation de mémoire et les entrées/sorties.
- Des outils ont été ajoutés pour le remplacement d'autres distributions (OSsku In-Place Migration) sur les nœuds dans le cloud Microsoft Azure, par exemple, il est possible de remplacer Ubuntu installé par Azure Linux.
- Le support des nouveaux GPU NVIDIA, tels que les NVIDIA A100 et H100, a été ajouté, et un opérateur NVIDIA GPU a été fourni pour automatiser la gestion des pilotes NVIDIA sur les nœuds avec Azure Linux.
La distribution Azure Linux fournit un petit ensemble standard de paquets de base, servant de fondation universelle pour créer des conteneurs, des environnements hôtes et des services exécutés dans des infrastructures cloud et sur des appareils edge. Des solutions plus complexes et spécialisées peuvent être créées en ajoutant des paquets supplémentaires au-dessus d'Azure Linux, mais la base de tous ces systèmes reste inchangée, ce qui simplifie la maintenance et la préparation des mises à jour.
Par exemple, Azure Linux est utilisé comme base pour la mini-distribution WSLg, qui fournit des composants de la pile graphique pour exécuter des applications GUI Linux dans des environnements basés sur la sous-système WSL2 (Windows Subsystem for Linux). Les fonctionnalités avancées de WSLg sont réalisées grâce à l'inclusion de paquets supplémentaires avec un composite. serveur Weston, XWayland, PulseAudio et FreeRDP.
Pour la gestion des services et du chargement, le gestionnaire de système systemd est utilisé. Les gestionnaires de paquets RPM et DNF sont fournis pour la gestion des paquets. Le serveur SSH n'est pas activé par défaut. Un installateur est disponible pour installer la distribution, et peut fonctionner en modes texte ou graphique. L'installateur offre la possibilité d'une installation avec un ensemble complet ou de base de paquets, et propose une interface pour choisir la partition disque, le nom d'hôte et créer des utilisateurs.
Le système de construction Azure Linux permet de générer à la fois des paquets RPM individuels à partir de fichiers SPEC et de textes sources, ainsi que des images système monolithiques, formées à l'aide de l'outil rpm-ostree et mises à jour de manière atomique sans décomposition en paquets individuels. Par conséquent, deux modèles de livraison des mises à jour sont supportés : par la mise à jour de paquets individuels et par la reconstruction et la mise à jour de l'ensemble de l'image système. Un dépôt est disponible, incluant environ 3000 RPM déjà construits, qui peut être utilisé pour composer vos propres images sur la base d'un fichier de configuration.
La plateforme de base inclut uniquement les composants les plus nécessaires et est optimisée pour une consommation minimale de mémoire et d'espace disque, tout en assurant une grande rapidité de chargement. Le projet adopte une approche de « sécurité maximale par défaut », impliquant l'activation de divers mécanismes supplémentaires pour améliorer la protection :
- Filtrage des appels système via le mécanisme seccomp.
- Chiffrement des partitions de disque.
- Vérification des paquets par signature électronique.
- Randomisation de l'espace d'adresses.
- Protection contre les attaques liées aux liens symboliques, mmap, /dev/mem et /dev/kmem.
- Mode lecture seule et interdiction de l'exécution de code dans les zones mémoire où se trouvent les segments de données du noyau et des modules.
- Option pour interdire le chargement des modules du noyau après l'initialisation du système.
- Utilisation d'iptables pour filtrer les paquets réseau.
- Activation lors de la compilation des modes de protection contre les débordements de pile, les débordements de tampon et les problèmes de formatage de chaînes (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Source : opennet.ru
