SELinux може здатися моторошним і дуже важким для впровадження в більшості сучасних систем. Однак налаштування SELinux має величезні переваги як у забезпеченні безпеки, так і у вирішенні проблем.
Цей підручник обговорить різні концепції, реалізовані SELinux, та дослідить різні практичні методи впровадження SELinux.
ПРИМІТКА: Перш ніж ми почнемо, добре використовувати команди в цьому підручнику як кореневий користувач або користувач у групі sudoers.
Встановіть пакети SELinux
Давайте встановимо різні пакети SELinux, що, у свою чергу, допоможе працювати з політиками SELinux.
Перш ніж перейти до встановлення пакетів SELinux, добре перевірити, які встановлені в поточній системі.
У більшості інсталяцій дистрибутивів REHL деякі пакети встановлюються за замовчуванням. Ці пакети включають:
- setools - цей пакет використовується для моніторингу журналів, політик запитів та управління контекстними файлами.
- policycoreutils-python - надає основні утиліти python для управління SELinux
- policycoreutils - цей пакет також надає утиліти для управління SELinux.
- mcstrans - mcstrans надає демон перекладу SELinux, який переводить різні рівні в прості формати, які легко зрозуміти.
- setools-console - схожий на setools.
- Політика Selinux - вона містить посилання для налаштування політики SELinux
- Орієнтована на політику Selinux - подібно до політики SELinux
- Libselinux-utils - утиліти SELinux libselinux, які допомагають управляти SELinux
- Setroubleshoot-server - інструменти для усунення неполадок SELinux
Щоб перевірити, які пакети вже встановлені у вашій системі, ви можете скористатися командою rpm -qa та конвеювати результат для grep для SELinux як:
об / хв -qa | grep selinuxlibselinux-utils-2.9-4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-policy-target-3.14.3-54.el8_3.2.ноарх
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.ноарх
libselinux-2.9-4.el8_3.x86_64
Це має дати результат усіх пакунків, встановлених для підтримки SELinux
Якщо у вашій системі встановлені не всі пакети SELinux, використовуйте yum, щоб встановити їх, як показано в команді нижче:
yum встановити policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-target libselinux-utils setroubleshoot-server setools setools-console mcstransРежими та стани SELinux
Почнемо зараз грати в SELinux, зокрема, в режимах SELinux.
Режими SELinux
Якщо увімкнено, SELinux може мати три можливі режими:
- Застосування
- Дозвільний
- Інваліди
Примусовий режим
Якщо застосовувати режим SELinux, це гарантуватиме, що жоден користувач або процеси не відмовляють у несанкціонованому доступі до системи. Примусовий режим також веде журнали будь-яких спроб несанкціонованого доступу.
Дозвільний режим
Дозвільний режим діє як частково ввімкнений стан SELinux. У цьому режимі доступ заборонено, оскільки SELinux не застосовує свої політики в цьому режимі. Однак дозвільний режим веде журнал будь-яких спроб порушення політики. Цей режим дуже ефективний для тестування, перш ніж увімкнути його повністю, оскільки користувачі та компоненти все ще можуть взаємодіяти з системою, але все ще збирають журнали. Це дозволяє вам точно налаштувати систему так, як вважаєте за потрібне.
Відключений режим
Відключений режим також можна розглядати як відключений стан, при якому SELinux відключений і не забезпечує жодної безпеки.
Держави SELinux
Після встановлення SELinux в системі. Він може мати двійкові стани: увімкнений і вимкнений. Щоб переглянути стан SELinux, використовуйте команду:
getenforceІнваліди
Наведений вище результат вказує на те, що на даний момент SELinux відключений.
Ви також можете використовувати команду sestatus, як показано нижче:
сестатусСтан SELinux: вимкнено
Увімкнення та вимкнення SELinux
Стани та конфігурація SELinux обробляються файлом конфігурації, що знаходиться в / etc / selinux / config. Ви можете використовувати команду cat, щоб переглянути її вміст.
cat / etc / selinux / config# Цей файл контролює стан SELinux в системі.
# SELINUX = може приймати одне з цих трьох значень:
# примусово - застосовується політика безпеки SELinux.
# permissive - SELinux друкує попередження замість того, щоб застосовувати.
#disabled - Не завантажено жодної політики SELinux.
SELINUX = забезпечення
# SELINUXTYPE = може приймати одне з цих трьох значень:
# цільовий - цільові процеси захищені,
# мінімум - Зміна цільової політики. Захищені лише вибрані процеси.
# mls - Багаторівневий захист безпеки.
SELINUXTYPE = цільовий
З вищенаведеного результату ми ввімкнули дві основні директиви. Директива SELINUX визначає режим налаштування SELinux. Директива SELINUXTYPE визначає набір політик SELinux. За замовчуванням SELinux використовує цільову політику, яка дозволяє налаштовувати дозволи на контроль доступу. Інша політика - це багаторівнева безпека або MLS.
Ви можете знайти мінімальну політику в деяких версіях.
cd / etc / selinux /[ls -l
всього 4
-rw-r - r-- 1 кореневий корінь 548 16 лютого 22:40 конфігурація
drwxr-xr-x 1 кореневий корінь 4096 16 лютого 22:43 mls
-rw-r - r-- 1 кореневий корінь 2425 21 липня 2020 семанаге.конф
drwxr-xr-x 1 кореневий корінь 4096 16 лютого 22:40 націлено
Давайте тепер подивимося, як увімкнути SELinux в системі. Ми рекомендуємо спочатку встановити режим SELINUX на дозвільний та не застосовуваний.
nano / etc / selinux / configТепер відредагуйте директиву SELINUX як:
SELINUX = дозвільнийПісля збереження файлу виконайте перезавантаження системи.
перезавантажитиПРИМІТКА. Ми настійно рекомендуємо встановити дозвільну директиву SELINUX перед застосуванням SELinux.
Після перезавантаження системи перевірте наявність журналів, про які повідомляє SELinux у / var / log / messages.
Потім переконайтеся, що у вас немає помилок, і застосуйте SELinux, встановивши директиву для застосування в / etc / selinux / config
Нарешті, ви можете переглянути статус SELinux за допомогою команди sestatus:
Стан SELinux: увімкненоМонтаж SELinuxfs: / sys / fs / selinux
Кореневий каталог SELinux: / etc / selinux
Завантажена назва політики: цільова
Поточний режим: примусовий
Режим із конфігураційного файлу: помилка (успіх)
Статус MLS політики: увімкнено
Політика deny_unknown status: дозволено
Перевірка захисту пам'яті: фактична (захищена)
Максимальна версія політики ядра: 31
Ви також можете використовувати команду setenforce для перемикання між різними режимами SELinux. Наприклад, щоб встановити режим на дозвільний, використовуйте команду:
setenforce дозвільнийЦей режим є тимчасовим і буде відновлений до одного у файлі конфігурації після перезавантаження.
sestatus SELinux статус: увімкненоМонтаж SELinuxfs: / sys / fs / selinux
Кореневий каталог SELinux: / etc / selinux
Завантажена назва політики: цільова
Поточний режим: дозвільний
Режим із конфігураційного файлу: примусовий
Статус MLS політики: увімкнено
Політика deny_unknown status: дозволено
Перевірка захисту пам'яті: фактична (захищена)
Максимальна версія політики ядра: 31
Політика та контекст SELinux
Щоб уникнути плутанини для початківців SELinux, ми не заглиблюємось глибоко в те, як реалізуються політики SELinux, а просто торкаємось цього, щоб дати вам уявлення.
SELinux працює, впроваджуючи політики безпеки. Політика SELinux посилається на правило, яке використовується для визначення прав доступу для кожного об'єкта в системі. Об'єкти стосуються користувачів, процесів, файлів та ролей.
Кожен контекст визначається у формі користувача: роль: тип: рівень.
Наприклад, створіть каталог у своєму домашньому каталозі та перегляньте його контекст безпеки SELinux, як показано в командах нижче:
mkdir ~ / linuxhint_dirls -Z ~ / | grep linuxhint
Це відобразить вихід, як показано нижче:
unconfined_u: object_r: user_home_t: s0 linuxhint_dirВи також можете знайти інші каталоги з контекстами безпеки як:
system: _u: object_r: user_home_t: s0Ви можете зрозуміти, що вищевикладений результат відповідає синтаксису користувача: role: type: level.
Висновок
Це був підручник для початківців SELinux за допомогою CentOS 8. Незважаючи на те, що підручник розроблений для початківців, цього більш ніж достатньо, щоб запустити ноги в SELinux і усунути залякуючий характер SELinux.
Дякую за читання.