SELinux

SELinux для початківців, що використовують CentOS

SELinux для початківців, що використовують CentOS
Розроблена АНБ для запобігання зловмисному доступу та проникненню, Linux або SELinux з посиленою безпекою - це вдосконалена функція контролю доступу, яка постачається з більшістю сучасних дистрибутивів Linux. SELinux визначається як система обов'язкового контролю доступу (MAC), розроблена як заміна дискреційної системи контролю доступу (DAC).

SELinux може здатися моторошним і дуже важким для впровадження в більшості сучасних систем. Однак налаштування SELinux має величезні переваги як у забезпеченні безпеки, так і у вирішенні проблем.

Цей підручник обговорить різні концепції, реалізовані SELinux, та дослідить різні практичні методи впровадження SELinux.

ПРИМІТКА: Перш ніж ми почнемо, добре використовувати команди в цьому підручнику як кореневий користувач або користувач у групі sudoers.

Встановіть пакети SELinux

Давайте встановимо різні пакети SELinux, що, у свою чергу, допоможе працювати з політиками SELinux.

Перш ніж перейти до встановлення пакетів SELinux, добре перевірити, які встановлені в поточній системі.

У більшості інсталяцій дистрибутивів REHL деякі пакети встановлюються за замовчуванням. Ці пакети включають:

  1. setools - цей пакет використовується для моніторингу журналів, політик запитів та управління контекстними файлами.
  2. policycoreutils-python - надає основні утиліти python для управління SELinux
  3. policycoreutils - цей пакет також надає утиліти для управління SELinux.
  4. mcstrans - mcstrans надає демон перекладу SELinux, який переводить різні рівні в прості формати, які легко зрозуміти.
  5. setools-console - схожий на setools.
  6. Політика Selinux - вона містить посилання для налаштування політики SELinux
  7. Орієнтована на політику Selinux - подібно до політики SELinux
  8. Libselinux-utils - утиліти SELinux libselinux, які допомагають управляти SELinux
  9. Setroubleshoot-server - інструменти для усунення неполадок SELinux

Щоб перевірити, які пакети вже встановлені у вашій системі, ви можете скористатися командою rpm -qa та конвеювати результат для grep для SELinux як:

об / хв -qa | grep selinux
libselinux-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_dir
ls -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.

Дякую за читання.

Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...