Всім привіт, давайте трохи поговоримо про SELinux, але перед цим трохи визначення для тих, хто не чув що це взагалі таке. SELinux скорочення від анг. слова Security-Enhanced Linux що означає Linux з поліпшеною безпекою. Іншими словами це реалізація системи примусового контролю доступу, яка здатна функціонувати паралельно з класичною виборчою системою контролю доступу. Різниця в тому, що в SELinux допомогою певних політик визначаються права доступу самою системою, в свою чергу виборча система контролю доступу виконує поділ доступу процесів до ресурсів, ґрунтуючись на правах користувача, для простого розуміння це права rwx на трьох рівнях – власник, група-власник і інші користувачі.
Після невеликого опису давайте спробуємо розглянути деякі параметри SELinux. Наші приклади будуть демонструватися на операційній системі Linux CentOS 6. Мабуть, перше і мабуть саме затребуване це команди для перевірки статусу SELinux.
/usr/sbin/getenforce
або
/usr/sbin/sestatus
Значення, що повертаються для команди getenforce
Enforcing – вказує на те, що SELinux активований та правила політики примусові;
Permissive – вказує на те, що SELinux активований, але правила політики не примусові enforced і використовуються тільки правила DAC;
Disabled – вказує на те, що SELinux відключений.
Значення, що повертаються для команди sestatus
Ця команда повертає крім статусу SELinux так само використовується політику SELinux, приклад:
$ /usr/sbin/sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 23
Policy from config file: targeted
SELinux status: enabled – позначає що SELinux включений;
Current mode: enforcing – позначає що SELinux включений в примусовому enforced режимі;
Policy from config file: targeted – позначає що використовується політика SELinux targeted.
Включення SELinux
Включається / відключається SELinux в операційній системі у файлі конфігурації
/etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted – Targeted processes are protected,
# mls – Multi Level Security protection.
SELINUXTYPE=targeted
Опція SELINUX=disabled означає, що SELinux відключений. Перед тим як запустити SELinux необхідно виконати деякі маніпуляції.
1. Перевірити інсталяцію пакетів SELinux
rpm -qa | grep selinux
rpm -q policycoreutils
rpm -qa | grep setroubleshoot
Так само убедитеть в тому, що встановлені наступні пакети: selinux-policy-targeted, selinux-policy, libselinux, libselinux-python, libselinux-utils, policycoreutils, setroubleshoot, setroubleshoot-server, setroubleshoot-plugins. Пакети policycoreutils-gui, setroubleshoot, selinux-policy-devel, і mcstrans опціональні.
Відсутні пакети можна встановити за допомогою команди (під користувачем root)
yum install package-name
2. Кожен файл файлової системи повинен бути промаркований контекстом SELinux перед запуском. До цього моменту обмеженим доменів може бути відмовлено в доступі, що може привести до некоректної завантаженні операційної системи. Ситуація виправляється виставленням опції SELINUX=permissive в конфігураційному файлі /etc/selinux/config.
3. Маркування файлів відбудеться під час наступного перезавантаження системи. Мітки для всіх файлів виставляються в контексті SELinux в ході процесу. В останньому рядку кожен символ * позначає 1000 промаркованих файлів. Тривалість процесу залежить від кількості файлів в системі, а так само швидкості роботи дисків.
*** Warning — SELinux targeted policy relabel is required.
*** Relabeling could take a very long time, depending on file
*** system size and speed of hard drives.
****
4. У разі коли політика SELinux примусово не призначена, і робота відбувається у розширеному режимі, то заборони пишуться в лог як дії, які були б заборонені в примусовому режимі. Переконайтеся, що SELinux не забороняє дії під час останнього завантаження системи, для цього виконайте команду
grep “SELinux is preventing” /var/log/messages
Висновок повинен бути порожній, це означає що все в порядку, і SELinux не забороняє дії.
5. Після того як ви переконалися що повідомлень про заборони в логах немає, встановіть параметр SELINUX в enforcing (файл /etc/selinux/config):
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
# targeted – Targeted processes are protected,
# mls – Multi Level Security protection.
SELINUXTYPE=targeted
6. Після цього операційну систему слід перезапустити. Після перезапуску потрібно перевірити обчислене значення Enforcing командою getenforce.
$ /usr/sbin/getenforce
Enforcing
7. Для перегляду відображень між SELinux і користувачами системи, виконайте команду
/usr/sbin/semanage login –l
Висновок команди повинен бути такого плану:
Login Name SELinux User MLS/MCS Range
__default__ unconfined_u s0-s0:c0.c1023
root unconfined_u s0-s0:c0.c1023
system_u system_u s0-s0:c0.c1023
Є деякі особливості, які слід враховувати. При відключеному SELinux створені користувачами файли не маркуються, внаслідок чого, при перекладі в стан enforcing можуть з’являтися проблеми. Маркування файлів відбудеться за зміни опції з disabled на permissive/enforcing режим, таким чином, буде відвернена проблема з появою немаркованих файлів.
Додав: htmaker, 22.10.2017 р.
(Ще не оцінили)
Завантаження…
Діліться з друзями:
См. також:
Оновлення пакетів в CentOS
Рубрика: Linux
Bash: mail: command not found
Рубрика: Linux
Виставляємо тимчасову зону в CentOS 7
Рубрика: Linux
Змінюємо пароль root в MySQL 5.7
Рубрика: Linux, MySQL
Установка і настройка mSMTP на Linux
Рубрика: Linux
Установка GIT на CentOS 7
Рубрика: Linux
Як відключити IPv6 в CentOS 7?
Рубрика: Linux
Ротація логів в Linux
Рубрика: Apache, Linux
Ставимо nginx останньої версії Linux
Рубрика: Linux, Nginx