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 採用分層模型。 每一層都是建立在底層的基礎上,從底層的硬體和韌體到頂層的工作負載。
核心層
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 儲存體。 |
相關內容
- 想了解更多關於 Azure Linux 的資訊,請參閱 Azure Linux 概覽。
- 要規劃更新策略,請檢視 發佈節奏與生命週期。