Яка різниця між cgroups і SELinux?
Простори імен ядра забезпечують ізоляцію процесу, а контрольні групи використовуються для контролю системних ресурсів. SELinux використовується для забезпечення розділення між хостом і контейнером, а також між окремими контейнерами.
SELinux — це обов’язковий механізм контролю доступу, вищий рівень контролю доступу, ніж дискреційний контроль доступу Linux. SELinux працює за моделлю найменших привілеїв. SELinux надає доступ, лише якщо адміністратор напише для цього спеціальну політику.
cgroup (винайдена Google) є незалежною від systemd (винайдена Red Hat) і старша. Сьогодні системи Linux корпоративного рівня підтримують контрольну групу версії 2 за замовчуванням за допомогою systemd. Fedora, Arch, Ubuntu 21.10+ і Debian 11 є єдиними дистрибутивами Linux, які на даний момент за замовчуванням запускають Cgroup Version 2.
cgroups обмежує ресурси, які може використовувати процес або набір процесів. Ці ресурси можуть бути процесором, пам’яттю, мережевим вводом/виводом або доступом до файлової системи, тоді як простір імен обмежує видимість групи процесів для решти системи.
SELinux розроблено для надання політик безпеки контролю доступу. iptables призначений для забезпечення контролю мережевих пакетів: такі речі, як маршрутизація, пересилання пакетів, заборона пакетів тощо. Обидва необхідні для забезпечення кращої безпеки.
Запущено SELinux займає додатковий час, потребує набагато більше практичної участі, ніж інші дистрибутиви Linux, і вимагає глибоких знань архітектури Linux. Насправді, якщо ви налаштуєте його випадково, ви накликаєте на проблеми.