發布帶有 UKI(統一核心映像)支援的 systemd 系統管理器 252

經過五個月的開發,系統管理器 systemd 252 版本已經發布。新版本的關鍵變更是整合了對升級的啟動過程的支持,這不僅允許驗證核心和引導程序,還允許使用數位簽章驗證基本系統環境的元件。

Предложенный метод подразумевает использование при загрузке унифицированного образа ядра UKI (Unified Kernel Image), объединяющего обработчик для загрузки ядра из UEFI (UEFI boot stub), образ ядра Linux и загружаемое в память системное окружение initrd, применяемое для начальной инициализации на стадии до монтирования корневой ФС. UKI-образ оформляется в виде одного исполняемого файла в формате PE, который может быть загружен при помощи традиционных загрузчиков или напрямую вызван из прошивки UEFI. При вызове из UEFI предоставляется возможность проверки целостности и достоверности по цифровой подписи не только ядра, но и содержимого initrd.

新增了一個實用程式 systemd-measure,用於計算用於監控 UKI 映像完整性的 TPM PCR(可信任平台模組平台配置暫存器)暫存器的參數,並產生數位簽章。簽章中使用的公鑰以及 PCR 的相關資訊可以直接嵌入到 UKI 啟動映像中(金鑰和簽章儲存在 PE 檔案的「.pcrsig」和「.pcrkey」欄位中),並可透過外部或內部實用程式從中提取。

特別是,systemd-cryptsetup、systemd-cryptenroll 和 systemd-creds 實用程式已適應使用此信息,借助這些信息,可以確保將加密磁碟區綁定到數位簽章的核心(在這種情況下,只有當 UKI 映像透過基於 TPM 中放置的參數的數位簽章驗證後,才提供對加密分割區的存取)。

此外,還包括 systemd-pcrphase 實用程序,它允許您管理各個啟動階段與放置在支援 TPM 2.0 規範的加密處理器內存中的參數的綁定(例如,您可以使 LUKS2 分區解密密鑰僅在 initrd 映像中可用,並阻止在以後的啟動階段對其進行訪問)。

其他一些變化:

  • 確保預設使用 C.UTF-8 語言環境,除非在設定中指定了其他語言環境。
  • 實現了在首次啟動時執行完整服務預設(“systemctl preset”)的功能。啟用啟動預設需要使用“-Dfirst-boot-full-preset”選項進行構建,但計劃在未來的版本中預設為啟用。
  • 使用者管理單元使用 CPU 資源控制器,該控制器允許將 CPUWeight 設定應用於用於分區系統的所有切片單元(app.slice、background.slice、session.slice),以便在競爭 CPU 資源的不同使用者服務之間進行資源隔離。 CPUWeight 也支援「idle」值,以啟動適當的資源配置模式。
  • 在臨時單元和 systemd-repart 實用程式中,可以透過在 /etc/systemd/system/name.d/ 目錄中建立插入檔案來覆蓋設定。
  • 根據 /etc/os-release 檔案中新的「SUPPORT_END=」參數的值,系統映像現在被標記為「支援結束」。
  • 新增了「ConditionCredential=」和「AssertCredential=」設置,當系統中不存在某些憑證時,可用於忽略或使單元崩潰。
  • 在 system.conf 和 user.conf 中新增了「DefaultSmackProcessLabel=」和「DefaultDeviceTimeoutSec=」設置,以定義預設的 SMACK 安全等級和單元啟動逾時。
  • 在「ConditionFirmware=」和「AssertFirmware=」設定中,新增了指定單一 SMBIOS 欄位的功能。例如,如果要僅在 /sys/class/dmi/id/board_name 欄位包含值「Custom Board」時啟動單元,可以指定「ConditionFirmware=smbios-field(board_name = "Custom Board")」。
  • 初始化過程(PID 1)現在除了透過 qemu_fwcfg 定義憑證外,還可以從 SMBIOS 欄位(類型 11,「OEM 供應商字串」)匯入憑證,從而更容易提供憑證。 虛擬機 這樣就無需使用 cloud-init 和 ignition 等第三方工具了。
  • 關機時,卸載虛擬FS(proc,sys)的邏輯已更改,並且有關阻止卸載檔案系統的進程的資訊已保存在日誌中。
  • SystemCallFilter 預設允許存取 riscv_flush_icache 系統呼叫。
  • В загрузчике sd-boot добавлена возможность загрузки в смешанном режиме, в котором 64-разрядное ядро Linux запускается из 32-разрядной прошивки UEFI. Добавлена экспериментальная возможность автоматического применения ключей SecureBoot из файлов, найденных в ESP (EFI system partition).
  • bootctl 實用程式中新增了新選項:「--all-architectures」用於為所有支援的 EFI 架構安裝二進位文件,「--root=」和「--image=」用於處理目錄或磁碟映像,「--install-source=」用於指定安裝來源,「--efi-boot-option-description=」用於控制啟動條目的名稱。
  • systemctl 實用程式現在新增了「list-automounts」命令,用於顯示自動掛載目錄的列表,以及「--image=」選項,用於針對指定的磁碟映像執行命令。 “show”和“status”指令現在新增了“--state=”和“--type=”選項。
  • 在 systemd-networkd 中,新增了以下選項:「TCPCongestionControlAlgorithm=」用於選擇 TCP 擁塞控制演算法,「KeepFileDescriptor=」用於保存 TUN/TAP 介面的檔案描述符,「NetLabel=」用於設定 NetLabel 標籤,「RapidCommit=」用於透過 DHCPv6 (RFC 3315) 來加速配置。 “RouteTable=”參數現在允許指定路由表的名稱。
  • systemd-nspawn 允許在「--bind=」和「--overlay=」選項中使用相對檔案路徑。為「--bind=」選項新增了對「rootidmap」參數的支持,以將容器中的 root 使用者 ID 綁定到主機系統上掛載目錄的擁有者。
  • systemd-resolved 使用 OpenSSL 作為預設加密後端(gnutls 支援保留為可選)。不支援的 DNSSEC 演算法現在將被視為不安全演算法,而不是傳回錯誤 (SERVFAIL)。
  • systemd-sysusers、systemd-tmpfiles 和 systemd-sysctl 實現了透過憑證儲存機制傳遞設定的能力。
  • systemd-analyze 實用程式現在新增了「compare-versions」指令,用於比較字串和版本號(類似於「rpmdev-vercmp」和「dpkg --compare-versions」)。 “systemd-analyze dump”指令現在支援透過遮罩篩選單元。
  • 當選擇多階段睡眠模式(掛起然後休眠)時,掛起模式下的時間量現在根據估計的剩餘電池壽命確定。當電池電量低於 5% 時,將進入即時睡眠模式。
  • ‘journalctl’ 中新增了新的輸出模式“-o short-delta”,顯示不同日誌訊息之間的時間差。
  • systemd-repart 現在支援使用 Squashfs FS 建立分割區和為 dm-verity 建立分割區,包括具有數位簽章的分割區。
  • 在 systemd-logind 新增了「StopIdleSessionSec=」設置,以在指定逾時後終止空閒會話。
  • 向 systemd-cryptenroll 新增了「--unlock-key-file=」選項,以從檔案中提取解密金鑰,而不是提示使用者。
  • 已經確保能夠在沒有 udev 的環境中執行 systemd-growfs 實用程式。
  • systemd-backlight 改進了對多顯示卡系統的支援。
  • 文件中提供的程式碼範例的授權已從 CC0 變更為 MIT-0。

破壞相容性的變更:

  • 使用 ConditionKernelVersion 指令檢查內核版本號時,'=' 和 '!=' 運算子現在使用簡單的字串比較;如果未指定任何比較運算符,則可以使用 '*'、'?' 和 '['、']' 字元進行全域遮罩比較。對於 stverscmp() 樣式的版本比較,應使用 '<'、'>'、'<=' 和 '>=' 運算子。
  • Метка SELinux, применяемая для проверки доступа из unit-файла, теперь читается на этапе загрузки файла, а не в момент проверки доступа.
  • 「ConditionFirstBoot」條件現在僅在啟動階段系統首次啟動時觸發,並在啟動完成後呼叫單元時傳回「false」。
  • systemd 計劃於 2024 年移除對 cgroup v1 資源節流機制的支持,該機制已在 systemd 248 版本中棄用。建議管理員考慮提前將依賴 cgroup v2 的服務移轉到 cgroup v1。 cgroup v2 與 v1 之間的主要區別在於,所有類型的資源都使用通用的 cgroup 層級結構,而不是為 CPU 資源分配、記憶體節流和 I/O 設定單獨的層級結構。單獨的層級結構會導致難以組織處理程序之間的交互,並且在為不同層級結構中引用的程序應用規則時會佔用額外的核心資源。
  • 計劃在 2023 年下半年取消對單獨目錄層次結構的支持,其中 /usr 與根目錄分開掛載,或 /bin 和 /usr/bin、/lib 和 /usr/lib 分開掛載。

來源: opennet.ru

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster