Společnost Microsoft vydala aktualizaci distribuce Azure Linux 3.0.20241203. Distribuce se vyvíjí jako univerzální základní platforma pro linuxová prostředí používaná v cloudové infrastruktuře, edge systémech a různých službách Microsoftu. Vlastní příspěvky projektu jsou distribuovány pod licencí MIT. Sestavy balíčků jsou vytvářeny pro architektury aarch64 a x86_64. Velikost instalačního obrazu je 750 MB.
Mezi změnami v nové verzi:
- Balíčkový filtr iptables byl převeden na zpracování příkazů prostřednictvím překladu pravidel do bytecode nftables (výchozí balíček iptables-nft je používán místo iptables-legacy).
- Pro systémy Aarch64 byl navržen další balíček s jádrem kernel-64k, které využívá velké stránky paměti o velikosti 64 KB (jádro bylo sestaveno s volbou CONFIG_ARM64_64K_PAGES).
- Do balíčkového správce tdnf (analog dnf na základě C libs) byla přidána podpora pro nastavení "installonlypkgs", která je využívána k organizaci instalace jádra kernel-64k.
- Při použití systemd-networkd byla zapnuta zpracování livenet rootfs z Dracut.
- Byl přidán ovladač pro síťové adaptéry Intel Ethernet Connection E800.
- Do zpracovatele logů fluent-bit byla přidána podpora pro jazyk Lua.
- Byla zahrnuta kontrola digitálního podpisu jader, která jsou načítána prostřednictvím mechanismu kexec.
- Pro určení sestavení kontejnerů byla místo kontroly souboru "\/ .dockerenv" použita utilita systemd-detect-virt.
- Byly aktualizovány verze balíčků, mezi nimi jádro Linux 6.6.57, shim 15.8, SymCrypt 103.6.0, Valkey (fork Redis) 8.0.1, Go 1.23.3, MariaDB 10.11.10, PostgreSQL 16.5.
Distribuce Azure Linux poskytuje malý standardní balíček základních balíčků, které slouží jako univerzální základ pro vytváření obsahu kontejnerů, hostitelských prostředí a služeb běžících v cloudových infrastrukturách a na edge zařízeních. Složitější a specializovanější řešení mohou být vytvářena přidáním dalších balíčků na vrchol Azure Linux, ale základ pro všechny tyto systémy zůstává nezměněn, což usnadňuje údržbu a přípravu aktualizací.
Azure Linux se používá jako základ mini-distrubuce WSLg, ve které jsou poskytovány komponenty grafického stacku pro spuštění GUI aplikací Linuxu v prostředích založených na subsystému WSL2 (Windows Subsystem for Linux). Rozšířená funkčnost ve WSLg se realizuje prostřednictvím zahrnutí dalších balíčků s kompozitními serverem Weston, XWayland, PulseAudio a FreeRDP.
Pro správu služeb a zatížení se používá systémový správce systemd. Pro správu balíčků jsou dodávány balíčkové správce RPM a DNF. SSH server není při instalaci ve výchozím nastavení zapnut. Pro instalaci distribuce je k dispozici instalátor, který může fungovat jak v textovém, tak v grafickém režimu. Instalátor poskytuje možnost instalace s plným nebo základním souborem balíčků, nabízí rozhraní pro výběr diskové partition, volbu názvu hostitele a vytváření uživatelů.
Systém sestavení Azure Linux umožňuje generovat jak jednotlivé RPM balíčky na základě SPEC souborů a zdrojových textů, tak monolitické systémové obrazy, které se vytvářejí pomocí nástrojů rpm-ostree a aktualizují se atomicky bez rozdělení na jednotlivé balíčky. Podporovány jsou tedy dva modely dodávání aktualizací: prostřednictvím aktualizace jednotlivých balíčků a prostřednictvím přestavby a aktualizace celého systémového obrazu. K dispozici je repozitář obsahující přibližně 3000 již zkompilovaných RPM balíčků, který lze použít k sestavení vlastních obrazů na základě konfiguračního souboru.
Základní platforma obsahuje pouze nezbytné komponenty a je optimalizována pro minimální spotřebu paměti a diskového prostoru, stejně jako pro vysokou rychlost spuštění. V projektu je aplikován přístup "maximální bezpečnost ve výchozím nastavení", který zahrnuje zapnutí různých dodatečných mechanismů pro zvýšení ochrany:
- Filtrování systémových volání pomocí mechanismu seccomp.
- Šifrování diskových partition.
- Ověřování balíčků pomocí digitálního podpisu.
- Randomizace adresního prostoru.
- Ochrana proti útokům týkajícím se symbolických odkazů, mmap, /dev/mem a /dev/kmem.
- Režim pouze pro čtení a zákaz spuštění kódu v oblastech paměti, kde jsou umístěny segmenty s daty jádra a modulů.
- Možnost zakázat načítání jádrových modulů po inicializaci systému.
- Použití iptables k filtrování síťových paketů.
- Zahrnutí při sestavování režimů ochrany proti přetečení zásobníku, přetečení bufferu a problémům s formátováním řetězců (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Zdroj: opennet.ru
