Firma Microsoft wydała aktualizację swojej dystrybucji Azure. Linux 3.0.20241203. Dystrybucja jest rozwijana jako uniwersalna platforma bazowa dla Linux– środowiska wykorzystywane w infrastrukturze chmurowej, systemach brzegowych i różnych usługach Microsoft. Zastrzeżone rozwiązania projektu są dystrybuowane na licencji MIT. Kompilacje pakietów są generowane dla architektur Aarch64 i x86_64. Rozmiar obrazu instalacyjnego wynosi 750 MB.
Wśród zmian w nowej wersji:
- Filtr pakietów iptables został przełączony na przetwarzanie poleceń poprzez tłumaczenie reguł na bajtkod nftables (domyślnie używany jest pakiet iptables-nft zamiast iptables-legacy).
- Dla systemów Aarch64 oferowany jest dodatkowy pakiet z jądrem kernel-64k, które wykorzystuje duże strony pamięci o rozmiarze 64 KB (jądro jest kompilowane z opcją CONFIG_ARM64_64K_PAGES).
- Menedżer pakietów tdnf (analogiczny do dnf bazującego na bibliotekach C) został zaktualizowany w celu obsługi ustawienia „installonlypkgs”, które służy do organizacji instalacji jądra kernel-64k.
- Podczas korzystania z systemd-networkd włączone jest przetwarzanie Livenet rootfs z Dracut.
- Dodano sterownik dla kart sieciowych Intel Ethernet Connection E800.
- Do obsługi dziennika fluent-bit dodano obsługę języka Lua.
- Włączono weryfikację podpisu cyfrowego jąder ładowanych za pomocą mechanizmu kexec.
- Do wykrywania kompilacji kontenerów zamiast sprawdzania pliku „/.dockerenv” używane jest narzędzie systemd-detect-virt.
- Zaktualizowane wersje pakietów, w tym jądra 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.
Dystrybucja Azure Linux Dostarcza niewielki, standardowy zestaw podstawowych pakietów, które stanowią uniwersalną podstawę do tworzenia struktur kontenerowych, środowisk hosta i usług działających w infrastrukturach chmurowych i urządzeniach brzegowych. Bardziej złożone i wyspecjalizowane rozwiązania można tworzyć, dodając dodatkowe pakiety do platformy Azure. Linux, ale podstawa wszystkich takich systemów pozostaje niezmieniona, co ułatwia konserwację i przygotowywanie aktualizacji.
Lazur Linux Stanowi podstawę minidystrybucji WSLg, która udostępnia komponenty stosu graficznego do uruchamiania aplikacji GUI. Linux w środowiskach opartych na podsystemie WSL2 (Windows Podsystem dla Linux). Rozszerzona funkcjonalność w WSLg jest realizowana poprzez dołączenie dodatkowych pakietów z kompozytem serwer Weston, XWayland, PulseAudio i FreeRDP.
Menedżer systemu systemd służy do zarządzania usługami i uruchamianiem systemu. Do zarządzania pakietami służą menedżery pakietów RPM i DNF. Serwer SSH nie jest domyślnie włączony. Aby zainstalować dystrybucję, dostępny jest instalator, który może pracować zarówno w trybie tekstowym, jak i graficznym. Instalator umożliwia instalację z pełnym lub podstawowym zestawem pakietów oraz oferuje interfejs umożliwiający wybór partycji dysku, nazwę hosta i tworzenie użytkowników.
System kompilacji 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 systemu zbudowanych przy użyciu zestawu narzędzi rpm-ostree i aktualizowanych atomowo, bez konieczności rozbijania ich na pojedyncze pakiety. W związku z tym obsługiwane są dwa modele dostarczania aktualizacji: aktualizacja pojedynczych pakietów oraz przebudowa i aktualizacja całego obrazu systemu. Dostępne jest repozytorium zawierające około 3000 gotowych pakietów RPM, które można wykorzystać do tworzenia niestandardowych obrazów na podstawie pliku konfiguracyjnego.
Platforma podstawowa zawiera tylko niezbędne komponenty i jest zoptymalizowana pod kątem minimalnego zużycia pamięci i miejsca na dysku, a także dużych prędkości ładowania. W projekcie zastosowano podejście „domyślnie maksymalne bezpieczeństwo”, które polega na włączeniu różnych dodatkowych mechanizmów zwiększających bezpieczeństwo:
- Filtrowanie wywołań systemowych za pomocą mechanizmu seccomp.
- Szyfrowanie partycji dysku.
- Weryfikacja przesyłek za pomocą podpisu cyfrowego.
- Randomizacja przestrzeni adresowej.
- Ochrona przed atakami na dowiązania symboliczne, mmap, /dev/mem i /dev/kmem.
- Tryb tylko do odczytu i zakaz wykonywania kodu w obszarach pamięci zawierających segmenty z danymi jądra i modułu.
- Opcja wyłączenia ładowania modułów jądra po inicjalizacji systemu.
- Używanie iptables do filtrowania pakietów sieciowych.
- Włączanie trybów ochrony przed przepełnieniem stosu, przepełnieniem bufora i problemami z formatowaniem ciągów podczas kompilacji (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Źródło: opennet.ru
