Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills
25.08.2025

Що таке SELinux і як він може підвищити безпеку в Linux?

Коли мова заходить про захист Linux-серверів, більшість адміністраторів думають про найпростіше: оновлення пакетів, налаштування брандмауерів, обмеження доступу по SSH. Проте один з найпотужніших механізмів безпеки часто залишається поза увагою – SELinux (Security-Enhanced Linux). Це не просто надбудова, а система безпеки на рівні ядра, призначена для запобігання вторгненням до того, як вони розростуться. Як для VPS, так і для виділених серверів, SELinux може означати різницю між незначним інцидентом і повною компрометацією системи.

Що таке SELinux?

SELinux – це модуль безпеки ядра Linux, який забезпечує обов’язковий контроль доступу (MAC).

  • За традиційною моделлю DAC (Discretionary Access Control) доступ визначається власниками файлів, а root має необмежену владу.
  • За MAC (SELinux) доступ регулюється загальносистемними політиками безпеки. Навіть для користувача root діють обмеження.

Спочатку розроблений АНБ у співпраці з Red Hat, SELinux був інтегрований в ядро Linux на початку 2000-х років і зараз є стандартним для корпоративних дистрибутивів, таких як RHEL, CentOS, Fedora, AlmaLinux і Rocky Linux.

Проблема: де традиційна безпека Linux не відповідає вимогам

Класична модель дозволів UNIX (DAC) має критичні недоліки:

  • Root всемогутній. Будь-який експлойт, який ескалується до root, компрометує всю систему.
  • Компрометація служби = компрометація системи. Зламаний модуль Apache або PHP-скрипт може отримати доступ до конфіденційних даних.
  • Сучасні вектори атак обходять DAC. Поширеними є веб-оболонки, експлойти для підвищення привілеїв та контейнерні втечі.

Реальний сценарій:
Уразливість при завантаженні CMS дозволяє зловмиснику скинути веб-оболонку. Без SELinux зловмисник може прочитати config.php, витягти облікові дані бази даних і скомпрометувати весь стек. З SELinux процес веб-сервера (httpd_t) обмежений і не може отримати доступ до файлів за межами призначеного йому домену.

Як працює SELinux

Кожен процес, файл, порт і сокет має контекст безпеки (мітку).
Політики визначають, які контексти можуть взаємодіяти.

Приклад:

  • Apache працює у домені httpd_t.
  • Файли сайту мають мітку httpd_sys_content_t.
  • Політика дозволяє httpd_t читати тільки файли httpd_sys_content_t.

Якщо Apache намагається прочитати /etc/shadow (shadow_t), ядро відхиляє запит і реєструє порушення.

Режими роботи

  • Примусовий: політики застосовуються, порушення блокуються.
  • Дозвільний: порушення реєструються, але не блокуються (корисно для тестування).
  • Вимкнений: SELinux вимкнено (не рекомендується).

Найкраща практика: почніть з Дозвільного, перегляньте журнали, налаштуйте політики, а потім перейдіть до Примусового для виробництва.

Чому SELinux важливий для хостингу та DevOps

  • Ізоляція процесів: обмежує шкоду, коли один сервіс скомпрометовано.
  • Застосування з найменшими привілеями: навіть користувач root не може обійти обмеження політики.
  • Криміналістика та видимість: всі заборонені дії записуються в журнал (/var/log/audit/audit.log).
  • Безпека контейнерів: запобігає виходу контейнерів Docker/Podman за межі своїх кордонів.
  • Відповідність: необхідна в регульованих середовищах (PCI DSS, HIPAA, розгортання військового класу).

Типи політик

  • Цільова (за замовчуванням): обмежує лише сервіси, що працюють з мережею (Apache, Nginx, Postfix, Dovecot).
  • Сувора: застосовує MAC-адреси до всіх процесів.
  • MLS/MCS: розширені політики для багаторівневої або державної безпеки.

Для більшості робочих навантажень VPS і виділених серверів цільова політика є найкращим балансом між зручністю використання і захистом.

Практичні приклади

Перевірка статусу SELinux

getenforce sestatus

Відновлення файлових контекстів після переміщення веб-файлів

restorecon -Rv /var/www/html

Вивести список міток безпеки файлів

ls -Z /var/www/html

Дозволити вихідні з’єднання веб-сервісів (наприклад, виклики API)

setsebool -P httpd_can_network_connect 1

Перегляд відхилених дій в логах

ausearch -m avc -ts recent

Висновок

SELinux – це більше, ніж додаткова функція безпеки; це фундаментальна основа, яка переосмислює те, як Linux забезпечує контроль доступу. Обмежуючи процеси, зменшуючи вплив вразливостей та надаючи детальні аудиторські стежки, SELinux перетворює систему Linux на набагато більш стійке середовище. Хоча він вимагає ретельного налаштування і розуміння, переваги безпеки, які він надає сучасним серверним інфраструктурам, роблять його важливим компонентом для будь-якого виробничого розгортання.

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills