Firma Microsoft opublikowała comiesięczną aktualizację dystrybucji Azure Linux 3.0.20260506. Dystrybucja rozwija się jako uniwersalna platforma bazowa dla środowisk Linux używanych w infrastrukturze chmurowej, systemach brzegowych oraz różnych usługach Microsoft. Własne osiągnięcia projektu są dystrybuowane na licencji MIT. Pakiety są budowane dla architektur aarch64 oraz x86_64. Rozmiar obrazu instalacyjnego wynosi 770 MB.
Wśród zmian w nowej wersji:
- Do repozytoriów (SPECS i SPECS-EXTENDED) dodano pakiety ignition oraz rust-afterburn.
- Pakiet z analizatorem sieciowym Wireshark został przebudowany z obsługą języka Lua.
- Podczas budowy pakietu z jądrem dla architektury arm64 włączono parametr CONFIG_IKCONFIG_PROC, umożliwiający dostęp do konfiguracji kompilacji bieżącego jądra przez plik /proc/config.gz.
- Poprawiono wsparcie dla migracji na żywo w QEMU.
- Do pliku PackageBuild.yml dodano parametr extraMacrosFiles, aby przekazać dodatkowe pliki z makrami podczas budowy pakietu.
- Usunięto kilka dziesiątek luk w różnych pakietach.
- Zaktualizowane wersje jądra Linux 6.6.137.1, clamav 1.5.2, cloud-hypervisor 51.1.56, containerd2 2.1.6, cups 2.4.18, erlang 26.2.5.20, golang 1.26.2-1, libpng 1.6.57, mysql 8.0.46.
Dystrybucja Azure Linux dostarcza mały zestaw podstawowych pakietów, które stanowią uniwersalną podstawę do tworzenia środowisk kontenerowych, hostingu i usług uruchamianych w infrastrukturze chmurowej oraz na urządzeniach brzegowych. Bardziej złożone i specjalistyczne rozwiązania mogą być tworzone poprzez dodawanie dodatkowych pakietów do Azure Linux, ale podstawa dla wszystkich takich systemów pozostaje niezmieniona, co ułatwia konserwację i przygotowanie aktualizacji.
Azure Linux jest wykorzystywany jako podstawa mini-dystrybucji WSLg, w której udostępniane są komponenty stosu graficznego do uruchamiania aplikacji GUI Linux w środowiskach opartych na subsystemie WSL2 (Windows Subsystem for Linux). Rozszerzona funkcjonalność w WSLg realizowana jest poprzez dodanie dodatkowych pakietów z serwerem kompozytowym Weston, XWayland, PulseAudio oraz FreeRDP.
Do zarządzania usługami i uruchamianiem używany jest menedżer systemowy systemd. Do zarządzania pakietami dostarczane są menedżery pakietów RPM i DNF. Serwer SSH domyślnie nie jest włączany. Do instalacji dystrybucji dostępny jest instalator, który może działać zarówno w trybie tekstowym, jak i graficznym. W instalatorze dostępna jest opcja instalacji w pełnym lub podstawowym zestawie pakietów, oferowany jest interfejs do wyboru partycji dyskowej, wyboru nazwy hosta oraz tworzenia użytkowników.
System budowania Azure Linux umożliwia generowanie zarówno pojedynczych pakietów RPM na podstawie plików SPEC i kodu źródłowego, jak i monolitycznych obrazów systemowych, które są tworzone za pomocą narzędzi rpm-ostree i aktualizowane atomowo bez rozdzielania na osobne pakiety. Odpowiednio, obsługiwane są dwa modele dostarczania aktualizacji: poprzez aktualizację pojedynczych pakietów oraz poprzez przebudowę i aktualizację całego obrazu systemowego. Dostępne jest repozytorium zawierające około 3000 już zbudowanych pakietów RPM, które można wykorzystać do tworzenia własnych obrazów na podstawie pliku konfiguracyjnego.
Podstawowa platforma zawiera jedynie najpotrzebniejsze komponenty i jest zoptymalizowana pod kątem minimalnego zużycia pamięci oraz przestrzeni dyskowej, a także szybkiego uruchamiania. W projekcie zastosowano podejście „maksymalne bezpieczeństwo domyślnie”, co oznacza włączenie różnych dodatkowych mechanizmów w celu zwiększenia ochrony:
- Filtrowanie wywołań systemowych za pomocą mechanizmu seccomp.
- Szyfrowanie partycji dyskowych.
- Weryfikacja pakietów na podstawie podpisu cyfrowego.
- Randomizacja przestrzeni adresowej.
- Ochrona przed atakami związanymi z dowiązaniami symbolicznymi, mmap, /dev/mem oraz /dev/kmem.
- Tryb tylko do odczytu oraz zakaz wykonywania kodu w obszarach pamięci, w których znajdują się segmenty z danymi jądra i modułów.
- Opcja zakazu ładowania modułów jądra po inicjalizacji systemu.
- Zastosowanie iptables do filtrowania pakietów sieciowych.
- Włączenie podczas budowy trybów ochrony przed przepełnieniem stosu, przepełnieniem bufora oraz problemami z formatowaniem ciągów (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Źródło: opennet.ru
