Azure Linux 架構概覽

Azure Linux 是由 Microsoft 維護的 Linux 發行版,建立在 Fedora 生態系統上,並針對 Azure 進行優化。 本文說明 Azure Linux 的結構、預設包含的內容,以及它刻意劃定的界限。

Note

Azure Linux 4.0 目前已進入 preview,僅限於評估與測試用途。 它不適合生產使用。

Azure Linux 與 Fedora 的關係

Azure Linux 源自 Fedora,並採用相同的基於 RPM 的封裝生態系統。 你會熟悉 dnf5、Fedora 建置工具(mock、fedpkgkojikiwi)和現代編譯器工具鏈——這些都是從上游 Fedora 追蹤的。 在此基礎之上,Microsoft 加入了 Azure 專屬的強化、自訂核心,以及適合雲端工作負載的管理生命週期。

核心程序以 6.18 LTS 版本提供,搭配 Hyper-V 客體驅動程式、Azure 特定效能調校,以及跨 Azure VM SKU 確認的安全性強化進行擴充。

分層架構

Azure Linux 採用分層模型。 每一層都是建立在底層的基礎上,從底層的硬體和韌體到頂層的工作負載。

截圖顯示 Linux Azure分層架構。

核心層

Azure Linux 的自訂內核包含 Hyper-V 客體驅動程式、安全性強化修補程式,以及針對 Azure 基礎結構調校的效能最佳化。 你可以選擇使用 Long-Term 支援(LTS)核心以提升穩定性,或硬體啟用(HWE)核心以支援新硬體與 GPU 支援。 詳情請參見 發布節奏與生命週期 。

核心作業系統層

此層提供最基本的根檔案系統: systemd 用於服務管理, glibc 如同 C 執行時,以及用於密碼學的 OpenSSL。 這些是第 1 層元件,表示它們在某個主要發行版本的生命週期內會遭到版本鎖定,且只接受安全後向移植。 這能保持應用程式二進位介面(ABI)的穩定與行為可預測性。

使用者空間套件層

語言執行環境(Python、Go、Rust、Node.js)、容器工具和應用程式相依都在這裡。 Tier 1 套件是為了穩定性而被鎖定的。 Tier 2 套件會以可預測的頻率更新。 更多資訊請參閱 發布節奏與生命週期。

工作負載層

你的 Azure 服務和應用程式都在這裡運行。 無論你是在 AKS、Azure 虛擬機還是容器映像上運行,Azure Linux 都呈現相同的作業系統基礎、套件集和行為。

平台範圍

Azure Linux 是為 Azure 雲端工作負載設計的。 雖然 Azure Linux 是 開放原始碼,但 Microsoft 支援與生命週期承諾僅適用於 Azure 情境。

下表說明了 Azure Linux 支援與不支援的內容:

面積 支援 不支援
架構 x86-64(最低 v2)、ARMv8(64 位元) 32 位元架構
環境 Azure VMs、AKS、容器映像 ISO 映像檔、本地部署、多雲、物聯網、邊緣裝置
User Interface (使用者介面) 文字式主控台,SSH 圖形化桌面環境,GUI 安裝程式
虛擬化 KVM 客體、Hyper-V Xen
周邊硬體 連接至 Azure 的儲存體、網路、圖形處理器 藍牙、Wi-Fi、印表機、音影、機器人
受信任平台 TPM 2.0 TPM 1.x
語言支援 可用全域區域支援 並非所有語言包都包含在基礎映像中

每個 Azure Linux 映像檔都包含 waagent 和 cloud-init。 這些元件是 Azure 整合所必需的,且必須始終存在。

存放庫結構

Azure Linux 會在多個獨立的軟體庫中提供套件。 知道套件來自哪個儲存庫,有助於你判斷可支援性、哪些是開箱即用的,以及你需要選擇加入哪些。 關於日常套件管理資訊,請參見 套件管理。

網路預設

Azure Linux 自帶一套針對 Azure VM、AKS 節點及容器工作負載調整的網路堆疊。 大多數工作負載都能直接使用預設值,無需更改。

下表總結了 Azure Linux 中的預設網路元件,以及若您需要針對特定情境覆寫預設,可選擇的替代方案:

組件 預設值 替代方案 Notes
網路經理 SystemD-Networkd + Cloud-init NetworkManager(可用,非預設) systemd-networkd 是 Azure VM 與容器場景的預設配置。
防火牆 防火牆 N/A 預設啟用,採用拒絕入站、允許出站政策。
防火牆後端 nftables iptables(舊有,可用) NFTABLES 是 iptables 的現代替代品。 iptables 的舊有支援可用,但不是預設。
IPv6 已啟用並加固 N/A 已對 IPv4 和 IPv6 套用嚴格的 sysctl 硬化設定。

儲存預設值

Azure Linux 儲存的預設值是針對Azure附接硬碟和每個 Azure 虛擬機底下的 Hyper-V 虛擬機監控程式調整的。 檔案系統、開機載入程式與時脈來源的選擇,是為了可預測的效能,以及與快照和管理磁碟等 Azure 平台功能相容性。

下表總結了 Azure Linux 的預設儲存設定,以及若需要針對特定情境覆寫預設時可用的替代方案:

Setting 預設值 Alternatives
Filesystem ext4 XFS, BTRFS
開機 GRUB2 開機載入程式 N/A
時鐘 Hyper‑V PTP 時鐘來源 N/A
NVMe 已針對 Azure 連接的儲存體調整逾時 N/A

安全性架構

Azure Linux 在每一層都經過強化,從核心到供應鏈。 以下章節說明預設啟用的安全控制措施。 更多資訊請參見 安全與合規 。

強制存取控制

強制存取控制(MAC)將程序限制在它們真正需要的存取權限,即使它們以 root 身份執行。

Azure Linux 4.0 預覽版會以強制模式啟用 SELinux 作為其 MAC 框架。

安全開機

安全開機確保只有簽署的開機載入程式和核心能執行。 核心鎖定保護正在執行的核心,並在執行時禁用不信任的核心模組載入。

Note

Azure Linux 4.0 目前已進入 預覽 階段,其元件尚未為安全開機完成簽署。

核心與系統強化

核心與使用者空間都設有緩解措施,使漏洞更難撰寫,若成功則更易於控制。

下表總結了 Azure Linux 中核心與系統強化的能力:

能力 Description
ASLR 啟用高強度位址空間配置隨機化。
堆疊保護 所有套件皆採用編譯器層級的堆疊保護。
系統呼叫限制 預設 seccomp 設定檔和系統呼叫過濾。
最小底像 透過最小化的套件集來降低攻擊面。

Cryptography

Azure Linux 集中化密碼政策,確保演算法與金鑰大小在 OpenSSL、GnuTLS、NSS 與 OpenSSH 間保持一致。

下表總結了 Azure Linux 中的密碼設定:

Setting 價值
FIPS FIPS 140-3 認證是強制性要求。
加密貨幣政策 採用 Fedora 加密政策,以確保演算法選擇一致。
後量子 已規劃 ML-KEM,並與 Fedora 和 RHEL 路線圖一致。

記錄與稽核

下表總結了 Azure Linux 中的日誌與稽核設定:

Setting 價值
稽核常駐程式 auditd 已啟用。
日誌儲存 持久 journald 儲存體。