SELinux - Linux с
улучшенной
безопасностью
от NSA (SELinux)
Linux с
улучшенной
безопасностью
от NSA - это
реализация
гибкой
архитектуры
мандатного
управления
доступом в
операционной
системе Linux.
Архитектура
SELinux
предоставляет
общую
поддержку
использования
различных
видов
политик
мандатного
управления
доступом,
включая
основанные
на
концепциях
Type Enforcement®
(принудительное
присвоение
типов), Role-Based Access Control
(управление
доступом
на основе
ролей) и Multi-Level Security
(многоуровневая
безопасность).
Дополнительная
информация
и
техническая
документация
по SELinux
доступна
по адресу
https://github.com/SELinuxProject.
Файл
конфигурации
/etc/selinux/config
позволяет
управлять
включением
и
отключением
SELinux и, если SELinux
включён,
устанавливать
режим его
работы -
разрешительный
или
принудительный.
Переменной
SELINUX можно
задать
значение
отключённой,
разрешительной
или
принудительной,
чтобы
выбрать
один из
этих
вариантов.
Если
выбрать
отключение
режима, код
ядра и
приложения
SELinux будет
полностью
отключён,
система
будет
работать
без
какой-либо
защиты SELinux.
При
установке
разрешительного
режима код
SELinux включён,
но не
выполняет
отказы в
доступе, а
только
журналирует
те
действия,
которые
были бы
запрещены
при
принудительном
режиме. При
установке
принудительного
режима код
SELinux включён,
выполняет
отказы в
доступе и
журналирует
соответствующие
попытки
доступа.
Набор
отказов в
доступе в
разрешительном
режиме
может
отличаться
от этого
набора в
принудительном
режиме как
по причине
того, что
принудительный
режим
предотвращает
дальнейшее
выполнение
операции
после
первого
отказа, так
и из-за того,
что после
получения
отказа в
доступе
часть кода
приложения
вернётся к
работе в
менее
привилегированном
режиме.
Файл
конфигурации
/etc/selinux/config также
управляет
тем, какая
политика
активна в
системе. SELinux
позволяет
установить
в системе
несколько
политик, но
одновременно
можно
использовать
только
одну из них.
В
настоящее
время
имеется
несколько
видов
политики SELinux,
например,
целевая
политика (targeted),
политика
многоуровневой
безопасности
(mls). Целевая
политика
позволяет
большинству
процессов
пользователя
выполняться
без
ограничений,
помещая в
отдельные
домены
безопасности,
ограниченные
политикой,
только
отдельные
службы.
Например,
процессы
пользователя
выполняются
в никак не
ограниченном
домене, в то
время как
именованная
управляющая
программа
или
управляющая
программа
apache будет
выполняться
в
отдельном
специально
настроенном
домене.
Если
используется
политика MLS
(Multi-Level Security), все
процессы
будут
разделены
по
детально
настроенным
доменам
безопасности
и
ограничены
политикой. MLS
также
поддерживает
модель
Белла —
Лападулы, в
которой
процессы
ограничиваются
не только
по типу, но и
по уровню
данных.
Чтобы
определить,
какая
политика
будет
выполняться,
следует
установить
переменную
среды
SELINUXTYPE в
/etc/selinux/config. Чтобы
применить
к системе
изменение
типа
политики,
необходимо
перезагрузить
систему и,
возможно,
повторно
проставить
метки. В
каталогах
/etc/selinux/{SELINUXTYPE}/
необходимо
установить
для каждой
такой
политики
соответствующую
конфигурацию.
Дальнейшую
настройку
отдельной
политики SELinux
можно
выполнить
с помощью
набора
настраиваемых
при
компиляции
параметров
и набора
логических
переключателей
среды
выполнения
политики.
system-config-selinux
позволяет
настроить
эти
логические
переключатели
и
настраиваемые
параметры.
Многие
домены,
которые
защищены SELinux,
также
содержат
man-страницы SELinux
с
информацией
о
настройке
соответствующей
политики.
Всем
файлам,
каталогам,
устройствам
... назначены
контексты
безопасности/метки.
Эти
контексты
хранятся в
расширенных
атрибутах
файловой
системы.
Проблемы с
SELinux часто
возникают
из-за
неправильного
проставления
меток в
файловой
системе.
Это может
быть
вызвано
загрузкой
компьютера
с ядром,
отличным
от SELinux.
Появление
сообщения
об ошибке,
содержащего
file_t, обычно
означает
серьёзную
проблему с
проставлением
меток в
файловой
системе.
Лучшим
способом
повторного
проставления
меток в
файловой
системе
является
создание
файла
флага
/.autorelabel и
последующая
перезагрузка.
system-config-selinux также
имеет эту
функциональность.
Кроме того,
для
повторного
проставления
меток для
файлов
можно
использовать
команды
restorecon/
fixfiles.
/etc/selinux/config
booleans(8),
setsebool(8),
sepolicy(8),
system-config-selinux(8),
togglesebool(8),
restorecon(8),
fixfiles(8),
setfiles(8),
semanage(8),
sepolicy(8)
Для каждой
ограниченной
службы в
системе
имеется
man-cтраница
следующего
формата:
<servicename>_selinux(8)
Например,
для службы
httpd имеется
страница
httpd_selinux(8).
man -k selinux
Выведет
список
всех
man-страниц SELinux.
Эта
страница
руководства
была
написана Dan Walsh
<
[email protected]>.
Перевод на
русский
язык
выполнила
Герасименко
Олеся <
[email protected]>.