Spoločnosť Microsoft zverejnila prvé stabilné aktualizácie nového radu distribúcie Azure Linux 3.0, ktorý predtým existoval pod názvom CBL-Mariner. Distribúcia sa vyvíja ako univerzálna základná platforma pre Linuxové prostredia používané v cloudovej infraštruktúre, edge systémách a rôznych službách Microsoftu. Projekt je zameraný na zjednotenie používaných Linux riešení v Microsoft a zjednodušenie udržiavania Linux systémov rôzneho zamerania v aktuálnom stave. Vývoj projektu sa šíri pod licenciou MIT. Balíky sú zostavované pre architektúry aarch64 a x86_64. Veľkosť inštalačného obrazu je 740 MB.
Medzi zmenami v novej verzii:
- Jadro Linux bolo aktualizované na verziu 6.6 (predtým sa používalo jadro 5.15). Bola pridaná podpora pre aplikovanie záplat na bežiace jadro (live patching), ktorá umožňuje odstrániť zraniteľnosti v jadre bez potreby reštartu.
- Boli navrhnuté nové verzie balíkov, medzi ktorými sú 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.
- Systém povinnej kontroly prístupu SELinux je predvolene nastavený do režimu "enforcing".
- Predvolene je aktivovaná unified hierarchia cgroups v2. Kľúčovým rozdielom cgroups v2 od v1 je použitie spoločnej hierarchie cgroups pre všetky druhy zdrojov, namiesto oddelených hierarchií pre prerozdelenie CPU, na reguláciu využitia pamäte a pre vstup/výstup.
- Boli pridané nástroje na migráciu z iných distribúcií (OSsku In-Place Migration) na uzloch v cloudovej platforme Microsoft Azure, napríklad je možné nahradiť nainštalovaný Ubuntu za Azure Linux.
- Bola pridaná podpora pre nové GPU NVIDIA, ako NVIDIA A100 a H100, a bol poskytnutý NVIDIA GPU Operator na automatizáciu správy ovládačov NVIDIA na uzloch s Azure Linux.
Distribúcia Azure Linux poskytuje malý typový balíček základných balíkov, ktoré slúžia ako univerzálny základ pre vytváranie obsahu kontajnerov, hostiteľských prostredí a služieb, ktoré sa spúšťajú v cloudových infraštruktúrach a na edge zariadeniach. Zložitejšie a špecializované riešenia môžu byť vytvárané pridaním ďalších balíkov na Azure Linux, avšak základ pre všetky takéto systémy zostáva nezmenený, čo zjednodušuje údržbu a prípravu aktualizácií.
Napríklad, Azure Linux sa používa ako základ mini distribúcie WSLg, v ktorej sú poskytované komponenty grafického stacku na spustenie GUI aplikácií Linux v prostrediach založených na subsystéme WSL2 (Windows Subsystem for Linux). Rozšírená funkcionalita v WSLg je realizovaná prostredníctvom zahrnutia ďalších balíkov s kompozitným serverom Weston, XWayland, PulseAudio a FreeRDP.
Na správu služieb a načítania sa používa systémový správca systemd. Na správu balíkov sa dodávajú balíkové správcovia RPM a DNF. SSH server nie je predvolene zapnutý. Na inštaláciu distribúcie je k dispozícii inštalačný program, ktorý môže fungovať v textovom aj grafickom režime. V inštalačnom programe je k dispozícii možnosť inštalácie s plnou alebo základnou sadou balíkov, ponúka rozhranie na výber diskovej partition, výber názvu hostiteľa a vytvorenie používateľov.
Systém zostavovania Azure Linux umožňuje generovať ako samostatné RPM balíčky na základe SPEC súborov a zdrojových textov, tak aj monolitné systémové obrazy, ktoré sa formujú pomocou nástroja rpm-ostree a aktualizujú atomicky bez rozdelenia na jednotlivé balíčky. Preto sú podporované dva modely dodávania aktualizácií: prostredníctvom aktualizácie jednotlivých balíčkov a prostredníctvom prestavby a aktualizácie celého systémového obrazu. K dispozícii je repozitár, ktorý obsahuje približne 3000 už zostavených RPM balíčkov, ktorý možno použiť na zostavovanie vlastných obrazov na základe konfiguračného súboru.
Základná platforma obsahuje iba najpotrebnejšie komponenty a je optimalizovaná pre minimálnu spotrebu pamäte a diskového priestoru, ako aj pre vysokú rýchlosť spúšťania. V projekte sa uplatňuje prístup »maximálna bezpečnosť predvolene«, čo znamená aktiváciu rôznych dodatočných mechanizmov na zvýšenie ochrany:
- Filter systémových volaní pomocou mechanizmu seccomp.
- Šifrovanie diskových oddielov.
- Overenie balíčkov pomocou digitálneho podpisu.
- Randomizácia adresného priestoru.
- Ochrana proti útokom súvisiacim so symbolickými odkazmi, mmap, /dev/mem a /dev/kmem.
- Režim len na čítanie a zákaz vykonávania kódu v oblastiach pamäte, kde sú umiestnené segmenty s údajmi jadra a modulov.
- Možnosť zakázať načítanie modulov jadra po inicializácii systému.
- Použitie iptables na filtrovanie sieťových paketov.
- Zahrnutie režimov ochrany pred pretečením zásobníka, pretečením buffera a problémami s formátovaním reťazcov pri zostavovaní (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Zdroj: opennet.ru
