Omówienie architektury systemu Azure Linux

Azure Linux to Microsoft utrzymywana dystrybucja systemu Linux oparta na ekosystemie Fedora i zoptymalizowana pod kątem Azure. W tym artykule wyjaśniono, jak Azure Linux jest ustrukturyzowany, co zawiera domyślnie i gdzie celowo rysuje granice.

Note

Azure Linux 4.0 jest teraz w wersji zapoznawczej i służy wyłącznie do celów oceny i testowania. Nie nadaje się do użytku produkcyjnego.

Jak Azure Linux odnosi się do Fedora

Azure Linux pochodzi z Fedora i korzysta z tego samego ekosystemu pakietów opartych na rpm. Otrzymujesz znajome dnf5, narzędzia do budowania Fedory (mock, fedpkg, koji, kiwi) oraz nowoczesne toolchainy kompilatorów — wszystko to śledzone bezpośrednio z upstream Fedory. Na tym fundamencie Microsoft dodaje mechanizmy wzmacniania zabezpieczeń specyficzne dla platformy Azure, niestandardowe jądro oraz zarządzany cykl życia dostosowany do obciążeń chmurowych.

Jądro jest dostarczane w wersji 6.18 LTS, rozszerzone o sterowniki gościa dla Hyper-V, optymalizację wydajności dla platformy Azure oraz utwardzanie zabezpieczeń zweryfikowane dla jednostek SKU maszyn wirtualnych platformy Azure.

Architektura warstwowa

Azure Linux używa modelu warstwowego. Każda warstwa opiera się na warstwie znajdującej się pod nią — od sprzętu i oprogramowania układowego u podstaw po obciążenia robocze na samej górze.

Zrzut ekranu diagramu przedstawiającego warstwową architekturę Azure Linux.

Warstwa jądra

Niestandardowe jądro systemu Azure Linux obejmuje sterowniki gościa Hyper-V, poprawki służące utwardzaniu zabezpieczeń oraz optymalizacje wydajności dostosowane do infrastruktury platformy Azure. Można wybierać między jądrami Long-Term Support (LTS), zapewniającymi większą stabilność, a jądrami Hardware Enablement (HWE), które zapewniają obsługę nowego sprzętu i procesorów graficznych (GPU). Szczegółowe informacje zawiera sekcja Harmonogram wydań i cykl życia.

Warstwa podstawowego systemu operacyjnego

Ta warstwa zapewnia minimalny główny system plików: systemd do zarządzania usługami, glibc jako środowiska uruchomieniowego języka C i biblioteki OpenSSL na potrzeby kryptografii. Są to składniki warstwy 1, co oznacza, że są blokowane przez okres istnienia głównej wersji i otrzymują tylko backporty zabezpieczeń. Dzięki temu interfejs binarny aplikacji (ABI) jest stabilny i przewidywalny.

Warstwa pakietów przestrzeni użytkownika

Środowiska uruchomieniowe języka (Python, Go, Rust, Node.js), narzędzia kontenera i zależności aplikacji działają tutaj. Pakiety warstwy 1 są zablokowane w celu zapewnienia stabilności. Pakiety poziomu 2 są aktualizowane w przewidywalnym cyklu. Aby uzyskać więcej informacji, zobacz Cykl wydania i cykl życia.

Warstwa obciążenia roboczego

Usługi i aplikacje Azure działają tutaj. Azure Linux zapewnia tę samą bazę systemu operacyjnego, ten sam zestaw pakietów i takie samo działanie niezależnie od tego, czy działa w usłudze AKS, na maszynach wirtualnych platformy Azure, czy w obrazach kontenerowych.

Zakres platformy

system Azure Linux jest przeznaczony do obsługi obciążeń Azure w chmurze. Mimo że Azure Linux jest oprogramowaniem open source, zobowiązania firmy Microsoft dotyczące pomocy technicznej i cyklu życia mają zastosowanie wyłącznie do scenariuszy platformy Azure.

W poniższej tabeli opisano, co to jest i nie jest obsługiwane w systemie Azure Linux:

Area Supported Niewspierane
Architektury x86-64 (minimalna wersja 2), ARMv8 (64-bitowa) Architektury 32-bitowe
Środowiska maszyny wirtualne platformy Azure, AKS, obrazy kontenerów obrazy ISO, lokalnie, środowiska wielochmurowe, IoT, urządzenia brzegowe
Interfejs użytkownika Konsola oparta na tekście, SSH Graficzne środowiska pulpitu, instalator graficznego interfejsu użytkownika
Wirtualizacja Goście KVM, Hyper-V Xen
Sprzęt peryferyjny pamięć masowa dołączona do platformy Azure, sieć, procesory GPU Bluetooth, Wi-Fi, drukarki, audio/wideo, robotyka
Zaufana platforma Moduł TPM 2.0 TPM 1.x
Obsługa języków Dostępna obsługa globalnych ustawień regionalnych Nie wszystkie pakiety językowe są uwzględniane w obrazie podstawowym

Każdy obraz systemu Azure Linux zawiera waagent i cloud-init. Te składniki są wymagane do integracji Azure i muszą być zawsze obecne.

Struktura repozytorium

Azure system Linux dostarcza pakiety w kilku oddzielnych repozytoriach. Wiedza o tym, z którego repozytorium pochodzi pakiet, pomaga zrozumieć, czy jest on wspierany, co jest dostępne od razu oraz co wymaga jawnego włączenia. Aby uzyskać informacje na temat codziennego zarządzania pakietami, zobacz Zarządzanie pakietami.

Wartości domyślne sieci

System Azure Linux jest wyposażony w stos sieciowy dostosowany do maszyn wirtualnych Azure, węzłów AKS i obciążeń kontenerowych. Większość obciążeń może używać wartości domyślnych bez zmian.

W poniższej tabeli przedstawiono podsumowanie domyślnych składników sieciowych w systemie Azure Linux oraz alternatywnych, które są dostępne, jeśli trzeba zastąpić wartości domyślne dla określonego scenariusza:

Składnik Wartość domyślna Alternatywne rozwiązanie Notatki
Menedżer sieci systemd‑networkd + cloud-init NetworkManager (dostępny, a nie domyślny) Systemd-networkd jest domyślnym ustawieniem dla scenariuszy maszyn wirtualnych i kontenerów Azure.
Zapora zapora N/A Domyślnie włączone z zasadą blokowania ruchu przychodzącego i zezwalania na ruch wychodzący.
Zaplecze zapory nftables iptables (starsza wersja, dostępna) nftables jest nowoczesnym zamiennikiem iptables. Obsługa starszej wersji iptables jest dostępna, ale nie jest domyślna.
Protokół IPv6 Włączone i wzmocnione N/A Ścisłe wzmacnianie zabezpieczeń sysctl stosowane zarówno dla protokołów IPv4, jak i IPv6.

Domyślne ustawienia pamięci

Domyślne ustawienia magazynu w Azure Linux są zoptymalizowane pod kątem dysków dołączonych do platformy Azure oraz hiperwizora Hyper-V stanowiącego podstawę każdej maszyny wirtualnej Azure. System plików, program rozruchowy i źródło zegara są dobierane pod kątem przewidywalnej wydajności i zgodności z funkcjami platformy Azure, takimi jak migawki i dyski zarządzane.

Poniższa tabela podsumowuje domyślne ustawienia magazynu danych w systemie Azure Linux oraz dostępne alternatywy, jeśli w konkretnym scenariuszu musisz zmienić ustawienia domyślne:

Setting Wartość domyślna Alternatives
System plików ext4 xfs, btrfs
Rozruch program rozruchowy GRUB2 N/A
Zegar Źródło zegara PTP Hyper‑V N/A
NvMe Limit czasu dostosowany do dołączonej pamięci masowej platformy Azure N/A

Architektura zabezpieczeń

Azure linux jest wzmocniony w każdej warstwie, od jądra przez łańcuch dostaw. W poniższych sekcjach opisano mechanizmy kontroli zabezpieczeń, które są domyślnie włączone. Aby uzyskać więcej informacji, zobacz Zabezpieczenia i zgodność .

Obowiązkowa kontrola dostępu

Przymusowa kontrola dostępu (MAC) ogranicza procesy do uprawnień dostępu, których rzeczywiście potrzebują, nawet gdy są uruchamiane jako użytkownik root.

Wersja zapoznawcza Azure Linux 4.0 włącza SELinux w trybie wymuszania jako mechanizm obowiązkowej kontroli dostępu (MAC).

Bezpieczny rozruch

Secure Boot zapewnia, że uruchamiane są tylko podpisane programy rozruchowe i jądra. Blokada jądra chroni uruchomione jądro i wyłącza ładowanie niezaufanych modułów jądra w czasie wykonywania.

Note

Azure system Linux 4.0 jest teraz w wersji preview a jego składniki nie zostały jeszcze podpisane na potrzeby bezpiecznego rozruchu.

Wzmacnianie zabezpieczeń jądra i systemu

Jądro i przestrzeń użytkownika są budowane z użyciem mechanizmów zabezpieczających, które utrudniają tworzenie exploitów, a w razie ich powodzenia ułatwiają ograniczenie ich skutków.

Poniższa tabela zawiera podsumowanie możliwości wzmacniania zabezpieczeń jądra i systemu w systemie Azure Linux:

Capability Description
ASLR Włączono silną randomizację układu przestrzeni adresowej.
Ochrona stosu Zabezpieczenia stosu na poziomie kompilatora zastosowano we wszystkich pakietach.
Ograniczenia wywołań systemowych Domyślne profile seccomp i filtrowanie wywołań systemowych.
Minimalny obraz podstawowy Ograniczenie powierzchni ataku dzięki minimalnemu zestawowi pakietów.

Cryptography

Azure Linux centralizuje zasady kryptograficzne, dzięki czemu algorytmy i rozmiary kluczy pozostają spójne w systemach OpenSSL, GnuTLS, NSS i OpenSSH.

Poniższa tabela zawiera podsumowanie ustawień kryptografii w systemie Azure Linux:

Setting Value
FIPS Certyfikacja FIPS 140-3 jest obowiązkowa.
Zasady kryptograficzne Polityki kryptograficzne Fedory przyjęto, aby zapewnić spójny dobór algorytmów.
Post-quantum Planowane jest wdrożenie ML‑KEM, zgodnie z harmonogramem rozwoju Fedory i RHEL.

Rejestrowanie i inspekcja

Poniższa tabela zawiera podsumowanie ustawień rejestrowania i inspekcji w systemie Azure Linux:

Setting Value
Demon inspekcji Włączono auditd.
Przechowywanie dziennika Trwałe przechowywanie dzienników journald.