Microsoft heeft een update van de Azure Linux-distributie 3.0.20241203 gepubliceerd. De distributie ontwikkelt zich als een universeel basisplatform voor Linux-omgevingen die worden gebruikt in cloudinfrastructuren, edge-systemen en verschillende Microsoft-services. De eigen ontwikkelingen van het project worden verspreid onder de MIT-licentie. Pakketbundels worden gevormd voor de architecturen aarch64 en x86_64. De grootte van het installatiebeeld is 750 MB.
Onder de wijzigingen in de nieuwe versie:
- De packetfilter iptables is omgezet naar de verwerking van commando's door het vertalen van regels naar bytecode nftables (standaard wordt het iptables-nft-pakket gebruikt in plaats van iptables-legacy).
- Voor Aarch64-systemen is er een extra pakket met de kernel kernel-64k aangeboden, waarin grote geheugenpagina's worden gebruikt van 64KB (de kernel is samengesteld met de optie CONFIG_ARM64_64K_PAGES).
- In de pakketbeheerder tdnf (een alternatief voor dnf gebaseerd op C-libs) is ondersteuning toegevoegd voor de instelling 'installonlypkgs', die is ingezet voor het organiseren van de installatie van de kernel kernel-64k.
- Bij het gebruik van systemd-networkd is de verwerking van livenet rootfs vanuit Dracut ingeschakeld.
- Een stuurprogramma is toegevoegd voor Intel Ethernet Connection E800-netwerkadapters.
- Ondersteuning voor de programmeertaal Lua is toegevoegd aan de loghandler fluent-bit.
- Er is een controle op digitale handtekeningen van kernels ingeschakeld die worden geladen via het kexec-mechanisme.
- Voor het identificeren van containerbundels is de utility systemd-detect-virt ingezet in plaats van de controle van het bestand '/.dockerenv'.
- De versies van de pakketten zijn bijgewerkt, waaronder de Linux-kernel 6.6.57, shim 15.8, SymCrypt 103.6.0, Valkey (een fork van Redis) 8.0.1, Go 1.23.3, MariaDB 10.11.10, PostgreSQL 16.5.
De Azure Linux-distributie biedt een kleine standaardset van basispakketten die fungeren als een universele basis voor het creƫren van de inhoud van containers, host-omgevingen en services die draaien in cloudinfrastructuren en op edge-apparaten. Complexere en gespecialiseerde oplossingen kunnen worden opgesteld door extra pakketten bovenop Azure Linux toe te voegen, maar de basis voor al dergelijke systemen blijft onveranderd, wat het onderhoud en de voorbereiding van updates vereenvoudigt.
Azure Linux wordt gebruikt als basis voor de mini-distributie WSLg, waarin componenten van de grafische stack worden aangeboden voor het uitvoeren van GUI-applicaties van Linux in omgevingen die zijn gebaseerd op het WSL2 (Windows Subsystem for Linux). De uitgebreide functionaliteit in WSLg wordt gerealiseerd door het inschakelen van extra pakketten met composiet. server Weston, XWayland, PulseAudio en FreeRDP.
Voor het beheer van services en laadtechnieken wordt de systeembeheerder systemd gebruikt. Voor het beheren van pakketten worden de pakketbeheerders RPM en DNF geleverd. De SSH-server is standaard niet ingeschakeld. Voor de installatie van de distributie is er een installer die zowel in tekst- als grafische modus kan werken. In de installer is er de mogelijkheid om een volledige of basisset van pakketten te installeren, evenals een interface voor het kiezen van de schijfpartitie, het kiezen van de hostnaam en het aanmaken van gebruikers.
Het Azure Linux build-systeem maakt het mogelijk om zowel afzonderlijke RPM-pakketten te genereren op basis van SPEC-bestanden en bronbestanden, als monolithische systeembeelden die worden gevormd met behulp van het rpm-ostree gereedschap en atomair worden bijgewerkt zonder te splitsen in afzonderlijke pakketten. Dienovereenkomstig worden twee modellen voor het leveren van updates ondersteund: via het bijwerken van afzonderlijke pakketten en via het herbouwen en bijwerken van het hele systeembeeld. Er is een repository beschikbaar met ongeveer 3000 reeds gebouwde RPM-pakketten die gebruikt kunnen worden voor het samenstellen van eigen beelden op basis van een configuratiebestand.
Het basisplatform omvat alleen de meest noodzakelijke componenten en is geoptimaliseerd voor een minimaal geheugen- en schijfruimteverbruik, evenals voor een hoge opstartsnelheid. In het project wordt een āmaximale beveiliging standaardā benadering toegepast, wat betekent dat verschillende aanvullende mechanismen worden ingeschakeld om de bescherming te verhogen:
- Filtering van systeemaanroepen met behulp van het seccomp-mechanisme.
- Versleuteling van schijfpartities.
- Verificatie van pakketten via digitale handtekeningen.
- Randomisatie van het adresruimte.
- Bescherming tegen aanvallen gerelateerd aan symbolische links, mmap, /dev/mem en /dev/kmem.
- Alleen-lezen modus en verbod op uitvoeren van code in geheugenruimtes waar de segmenten met kern- en modulegegevens zich bevinden.
- Optie om het laden van kernelmodules na systeeminitialisatie te verbieden.
- Het gebruik van iptables voor het filteren van netwerkpakketten.
- Inschakelen van bescherming tegen stack-overflows, buffer-overflows en format string-problemen bij het bouwen (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Bron: opennet.ru
