Выпуск систСмного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° systemd 248

ПослС Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСдставлСн Ρ€Π΅Π»ΠΈΠ· систСмного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° systemd 248. Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС обСспСчСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±Ρ€Π°Π·ΠΎΠ² для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ систСмных ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ /etc/veritytab, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ systemd-cryptenroll, разблокирования LUKS2 ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‡ΠΈΠΏΠΎΠ² TPM2 ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² FIDO2, запуска unit-ΠΎΠ² Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ пространствС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² IPC, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° B.A.T.M.A.N. для mesh-сСтСй, бэкСнда nftables для systemd-nspawn. Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ systemd-oomd.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния:

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° концСпция ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ систСмы (System Extension), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² /usr/ ΠΈ /opt/, ΠΈ добавлСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π΄Π°ΠΆΠ΅ Ссли ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния. ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±Ρ€Π°Π·Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ систСмы Π΅Π³ΠΎ содСрТимоС накладываСтся Π½Π° ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ /usr/ ΠΈ /opt/ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ OverlayFS.

    Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, просмотра ΠΈ обновлСния ΠΎΠ±Ρ€Π°Π·ΠΎΠ² систСмных Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° новая ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° systemd-sysext. Для автоматичСского ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡƒΠΆΠ΅ установлСнных ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ сСрвис systemd-sysext.service. Π’ Ρ„Π°ΠΉΠ» os-release Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «SYSEXT_LEVEL=» для опрСдСлСния уровня ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ систСмы.

  • Для unit-ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° настройка ExtensionImages, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для привязки ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ систСмы ΠΊ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ пространства ΠΈΠΌΡ‘Π½ Π€Π‘ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сСрвисов.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ /etc/veritytab для настройки Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π±Π»ΠΎΡ‡Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ модуля dm-verity. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ /etc/crypttab — «ΠΈΠΌΡ_Ρ€Π°Π·Π΄Π΅Π»Π° устройство_для_Π΄Π°Π½Π½Ρ‹Ρ… устройство_для_Ρ…ΡΡˆΠ΅ΠΉ Ρ…ΡΡˆ_ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ_корня ΠΎΠΏΡ†ΠΈΠΈ». Для настройки повСдСния dm-verity для ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ устройства Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ядра systemd.verity.root_options.
  • Π’ systemd-cryptsetup Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ извлСчСния URI Ρ‚ΠΎΠΊΠ΅Π½Π° PKCS#11 ΠΈ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… LUKS2 Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свСдСния ΠΎΠ± ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ устройства Π² само устройство Π±Π΅Π· привлСчСния Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ².
  • Π’ systemd-cryptsetup прСдоставлСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° разблокирования ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² LUKS2 ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‡ΠΈΠΏΠΎΠ² TPM2 ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² FIDO2, ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² PKCS#11. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° libfido2 осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· dlopen(), Ρ‚.Π΅. Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ провСряСтся Π½Π° Π»Π΅Ρ‚Ρƒ, Π° Π½Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Тёстко привязанной зависимости.
  • Π’ /etc/crypttab для systemd-cryptsetup Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ «no-write-workqueue» ΠΈ «no-read-workqueue» для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ синхронной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, связанного с ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΎΠΉ.
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ systemd-repart Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‡ΠΈΠΏΠΎΠ² TPM2, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для создания ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° /var ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° systemd-cryptenroll для привязки Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² TPM2, FIDO2 ΠΈ PKCS#11 ΠΊ Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌ LUKS, Π° Ρ‚Π°ΠΊΠΆΠ΅ для открСплСния ΠΈ просмотра Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², привязки запасных ΠΊΠ»ΡŽΡ‡ΠΊΠΉ ΠΈ задания пароля для доступа.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ PrivateIPC, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π² unit-Ρ„Π°ΠΉΠ»Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ запуск процСссов Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ пространствС IPC со своими ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΡŽ сообщСний. Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ unit-Π° ΠΊ ΡƒΠΆΠ΅ созданному пространству ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² IPC ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° опция IPCNamespacePath.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ настройки ExecPaths ΠΈ NoExecPaths, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ noexec ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ частям Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.
  • Π’ systemd-networkd Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° mesh-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° B.A.T.M.A.N. («Better Approach To Mobile Adhoc Networking), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ сСти, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… связан Ρ‡Π΅Ρ€Π΅Π· сосСдниС ΡƒΠ·Π»Ρ‹. Для настройки ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ сСкция [BatmanAdvanced] Π² .netdev , ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ BatmanAdvanced Π² Ρ„Π°ΠΉΠ»Π°Ρ… .network ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ устройства «batadv».
  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° рСализация ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ€Π°Π½Π½Π΅Π³ΠΎ рСагирования Π½Π° Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΡƒ памяти Π² систСмС systemd-oomd. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция DefaultMemoryPressureDurationSec для настройки Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания освобоТдСния рСсурса ΠΏΠ΅Ρ€Π΅Π΄ воздСйствиСм Π½Π° unit. Systemd-oomd ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ подсистСму ядра PSI (Pressure Stall Information) ΠΈ позволяСт Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ возникновСния Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΈΠ·-Π·Π° Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ рСсурсов ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ рСсурсоёмких процСссов Π½Π° стадии, ΠΊΠΎΠ³Π΄Π° систСма Π΅Ρ‰Ρ‘ Π½Π΅ находится Π² критичСском состоянии ΠΈ Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ интСнсивно ΡƒΡ€Π΅Π·Π°Ρ‚ΡŒ кэш ΠΈ Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ€Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ядра — «root=tmpfs», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π» Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½ΠΎΠΌ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Tmpfs.
  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² /etc/crypttab, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° сокСты с Ρ‚ΠΈΠΏΠΎΠΌ AF_UNIX ΠΈ SOCK_STREAM. ΠšΠ»ΡŽΡ‡ Π² этом случаС Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ подсоСдинСнии ΠΊ сокСту, Ρ‡Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для создания сСрвисов, динамичСски ΠΎΡ‚Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΊΠ»ΡŽΡ‡ΠΈ.
  • ЗапасноС имя хоста (fallback) для использования систСмным ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ ΠΈ systemd-hostnamed Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ΠΎ двумя путями: Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ DEFAULT_HOSTNAME Π² os-release ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния $SYSTEMD_DEFAULT_HOSTNAME. Π’ systemd-hostnamed Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° указания «localhost» Π² ΠΈΠΌΠ΅Π½ΠΈ хоста ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ экспорта ΠΈΠΌΠ΅Π½ΠΈ хоста, Π° Ρ‚Π°ΠΊΠΆΠ΅ свойств «HardwareVendor» ΠΈ «HardwareModel» Ρ‡Π΅Ρ€Π΅Π· DBus.
  • Π‘Π»ΠΎΠΊ с выставляСмыми ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ окруТСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ настроСн Ρ‡Π΅Ρ€Π΅Π· Π½ΠΎΠ²ΡƒΡŽ ΠΎΠΏΡ†ΠΈΡŽ ManagerEnvironment Π² system.conf ΠΈΠ»ΠΈ user.conf, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ядра ΠΈ настройки unit-Ρ„Π°ΠΉΠ»ΠΎΠ².
  • На стадии компиляции прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования для запуска процСссов систСмного Π²Ρ‹Π·ΠΎΠ²Π° fexecve() вмСсто execve() для сокращСния Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ контСкста бСзопасности ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ.
  • Для unit-Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ условныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ConditionSecurity=tpm2 ΠΈ ConditionCPUFeature для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ наличия устройств TPM2 ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй CPU (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ConditionCPUFeature=rdrand ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ процСссором ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ RDRAND).
  • Для доступных ядСр Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° автоматичСская гСнСрация Ρ‚Π°Π±Π»ΠΈΡ† систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² seccomp.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ подстановки Π½ΠΎΠ²Ρ‹Ρ… привязок монтирования (bind mounts) Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ пространства Ρ‚ΠΎΡ‡Π΅ΠΊ монтирования (mount namespace) сСрвисов, Π±Π΅Π· пСрСзапуска сСрвисов. ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ‘systemctl bind <unit> <path>…’ ΠΈ ‘systemctl mount-image <unit> <image>…’.
  • Π’ настройки StandardOutput ΠΈ StandardError Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° указания ΠΏΡƒΡ‚Π΅ΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ΅ «truncate:<path>» для очистки ΠΏΠ΅Ρ€Π΅Π΄ использованиСм.
  • Π’ sd-bus Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ установки соСдинСния с сСансом Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Π½ΡƒΡ‚Ρ€ΠΈ локального ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. НапримСр «systemctl —user -M lennart@ start quux».
  • Π’ Ρ„Π°ΠΉΠ»Π°Ρ… systemd.link Π² сСкции [Link] Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
    • Promiscuous — позволяСт пСрСвСсти устройство Π² Ρ€Π΅ΠΆΠΈΠΌ «promiscuous» для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ всСх сСтСвых ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½Π΅ адрСсованныС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ систСмС;
    • TransmitQueues ΠΈ ReceiveQueues для настройки числа ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ TX ΠΈ RX;
    • TransmitQueueLength для настройки Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ TX; GenericSegmentOffloadMaxBytes ΠΈ GenericSegmentOffloadMaxSegment для задания Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² примСнСния Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ GRO (Generic Receive Оffload).
  • Π’ Ρ„Π°ΠΉΠ»Ρ‹ systemd.network Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ настройки:
    • [Network] RouteTable для Π²Ρ‹Π±ΠΎΡ€Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ;
    • [RoutingPolicyRule] Type для Ρ‚ΠΈΠΏΠ° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ («blackhole, «unreachable», «prohibit»);
    • [IPv6AcceptRA] RouteDenyList ΠΈ RouteAllowList для списков Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½Π½Ρ‹Ρ… анонсов ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ²;
    • [DHCPv6] UseAddres для игнорирования Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ DHCP адрСса;
    • [DHCPv6PrefixDelegation] ManageTemporaryAddress;
    • ActivationPolicy для опрСдСлСния ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ активности интСрфСйса (всСгда ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π² состоянии UP ΠΈΠ»ΠΈ DOWN ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΌΠ΅Π½ΡΡ‚ΡŒ состояния ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «ip link set dev»).
  • Π’ Ρ„Π°ΠΉΠ»Ρ‹ systemd.netdev Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ [VLAN] Protocol, IngressQOSMaps, EgressQOSMaps ΠΈ [MACVLAN] BroadcastMulticastQueueLength для настройки ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² VLAN.
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΎ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /dev/ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ noexec, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρƒ ΠΏΡ€ΠΈ использовании исполняСмого Ρ„Π»Π°Π³Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ /dev/sgx. Для возвращСния старого повСдСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ настройку NoExecPaths=/dev.
  • ΠŸΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ /dev/vsock ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° 0o666, Π° Ρ„Π°ΠΉΠ»Ρ‹ /dev/vhost-vsock ΠΈ /dev/vhost-net ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ kvm.
  • Π‘Π°Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² оборудования Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π° USB-устройствами для чтСния ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΎΠ² ΠΏΠ°Π»ΡŒΡ†Π΅Π², ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² спящий Ρ€Π΅ΠΆΠΈΠΌ.
  • systemd-resolved Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Π΄Π°Ρ‡ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π° DNSSEC-запросы Ρ‡Π΅Ρ€Π΅Π· stub-Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ DNSSEC-Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ самих сСбя, Π° внСшниС ΠΏΡ€ΠΎΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ DNS-сСрвСру.
  • Π’ resolved.conf Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция CacheFromLocalhost, ΠΏΡ€ΠΈ установкС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ systemd-resolved Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ для ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ DNS-сСрвСру ΠΏΠΎ адрСсу 127.0.0.1 (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… запросов ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ).
  • Π’ systemd-resolved Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° RFC-5001 NSID Π² локальном DNS-Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ взаимодСйствиС с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€ΠΎΠΌ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ сСрвСром DNS.
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ resolvectl Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Π° свСдСний ΠΎΠ± источникС поступлСния Π΄Π°Π½Π½Ρ‹Ρ… (Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ кэш, запрос ΠΏΠΎ сСти, ΠΎΡ‚Π²Π΅Ρ‚ локального ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°) ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Для управлСния процСссом опрСдСлСния ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ —cache, —synthesize, —network, —zone, —trust-anchor ΠΈ —validate.
  • Π’ systemd-nspawn Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° настройки мСТсСтСвого экрана ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ nftables Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ iptables. Π’ настройкС IPMasquerade Π² systemd-networkd Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования бэкСнда Π½Π° основС nftables.
  • Π’ systemd-localed Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Π·ΠΎΠ²Π° locale-gen для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΡ… Π»ΠΎΠΊΠ°Π»Π΅ΠΉ.
  • Π’ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ —pager/—no-pager/—json= для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π΅ΠΆΠΈΠΌΠ° постраничного просмотра ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ установки числа ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Ρ†Π²Π΅Ρ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния SYSTEMD_COLORS («16» ΠΈΠ»ΠΈ «256»).
  • ΠžΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ сборка с Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ иСрархиями ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² (Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ / ΠΈ /usr) ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° cgroup v1.
  • Основная Π²Π΅Ρ‚ΠΊΠ° Π² Git ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π° ΠΈΠ· ‘master’ Π² ‘main’.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru