Π’ Fedora 40 ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ систСмных сСрвисов

Π’ выпускС Fedora 40 ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ настройки изоляции для Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ систСмных сСрвисов systemd, Π° Ρ‚Π°ΠΊΠΆΠ΅ сСрвисов с Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ прилоТСниями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ PostgreSQL, Apache httpd, Nginx ΠΈ MariaDB. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ дистрибутива Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ даст Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСизвСстныС уязвимости Π² систСмных сСрвисах. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ° Π½Π΅ рассмотрСно ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ΠΎΠΌ FESCo (Fedora Engineering Steering Committee), ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΌ Π·Π° Ρ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ дистрибутива Fedora. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΎ Π² процСссС рСцСнзирования сообщСством.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹Π΅ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ настройки:

  • PrivateTmp=yes — прСдоставлСниС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ со Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.
  • ProtectSystem=yes/full/strict — ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π€Π‘ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния (Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ «full» — /etc/, Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ strict — всСх Π€Π‘, ΠΊΡ€ΠΎΠΌΠ΅ /dev/, /proc/ ΠΈ /sys/).
  • ProtectHome=yes — Π·Π°ΠΏΡ€Π΅Ρ‚ доступа ΠΊ домашним ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.
  • PrivateDevices=yes — оставлСниС доступа Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ /dev/null, /dev/zero ΠΈ /dev/random
  • ProtectKernelTunables=yes — доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния ΠΊ /proc/sys/, /sys/, /proc/acpi, /proc/fs, /proc/irq ΠΈ Ρ‚.ΠΏ.
  • ProtectKernelModules=yes — Π·Π°ΠΏΡ€Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ядра.
  • ProtectKernelLogs=yes — Π·Π°ΠΏΡ€Π΅Ρ‚ доступа ΠΊ Π±ΡƒΡ„Π΅Ρ€Ρƒ с Π»ΠΎΠ³Π°ΠΌΠΈ ядра.
  • ProtectControlGroups=yes — доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния ΠΊ /sys/fs/cgroup/
  • NoNewPrivileges=yes — Π·Π°ΠΏΡ€Π΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· Ρ„Π»Π°Π³ΠΈ setuid, setgid ΠΈ capabilities.
  • PrivateNetwork=yes — ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ пространство ΠΈΠΌΡ‘Π½ сСтСвого стСка.
  • ProtectClock=yes — Π·Π°ΠΏΡ€Π΅Ρ‚ измСнСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
  • ProtectHostname=yes — Π·Π°ΠΏΡ€Π΅Ρ‚ измСнСния ΠΈΠΌΠ΅Π½ΠΈ хоста.
  • ProtectProc=invisible — скрытиС Ρ‡ΡƒΠΆΠΈΡ… процСссов Π² /proc.
  • User= — смСна ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рассмотрСно Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ настроСк:

  • CapabilityBoundingSet=
  • DevicePolicy=closed
  • KeyringMode=private
  • LockPersonality=yes
  • MemoryDenyWriteExecute=yes
  • PrivateUsers=yes
  • RemoveIPC=yes
  • RestrictAddressFamilies=
  • RestrictNamespaces=yes
  • RestrictRealtime=yes
  • RestrictSUIDSGID=yes
  • SystemCallFilter=
  • SystemCallArchitectures=native

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