WindowsMacПрограммное обес..НастройкиБезопасностьПродуктивностьЛинуксАндроид (Androi.. Все

Как защитить Fedora с помощью SELinux

Отредактировано 3 Несколько недель назад от ExtremeHow Редакционная команда

FedoraБезопасностьSELinuxОперационная системаБрандмауэрКонфигурацияСетьНовичкиОпытные пользователиКомпьютеры

Как защитить Fedora с помощью SELinux

Перевод обновлен 3 Несколько недель назад

Security-Enhanced Linux (SELinux) — это архитектура безопасности, интегрированная в ядро Linux, которая предоставляет универсальный механизм обязательного контроля доступа (MAC). Fedora, являясь одним из самых популярных дистрибутивов Linux, использует SELinux для повышения безопасности за счет контроля доступа к программам и файлам. В этом подробном руководстве мы рассмотрим, как защитить системы Fedora с помощью SELinux, как управлять его политиками, как обрабатывать распространенные сценарии и как максимально использовать его преимущества в области безопасности.

Понимание режима SELinux

SELinux работает в трех различных режимах, каждый из которых обеспечивает разные уровни безопасности. Давайте рассмотрим их:

Проверка статуса SELinux

Прежде чем вносить какие-либо изменения, важно проверить текущий статус SELinux в вашей системе Fedora. Это можно сделать с помощью следующей команды в терминале:

$ sestatus

Эта команда предоставит информацию о текущем режиме, версии политики и других деталях состояния SELinux. Понимание того, находится ли ваша система в режиме принуждения, разрешения или отключения, поможет вам в дальнейшем.

Переключение режимов SELinux

Переключение между режимами SELinux просто, но требует прав администратора (root). Чтобы изменить режимы, отредактируйте файл, расположенный по адресу /etc/selinux/config, и обновите строку SELINUX= на enforcing, permissive или disabled.

# Этот файл управляет состоянием SELinux в системе.
# SELINUX= может принимать одно из трех значений:
#     enforcing - политика безопасности SELinux применяется.
#     permissive - SELinux выводит предупреждения вместо применения.
#     disabled - SELinux полностью отключен.
SELINUX=enforcing
# SELINUXTYPE= может принимать одно из двух значений:
#     targeted - защищаются целевые процессы,
#     minimum - модификация целевой политики.
#     MLS - защита многоуровневой безопасности.
SELINUXTYPE=targeted

После внесения изменений перезагрузите систему, чтобы применить их. Вы также можете использовать команду setenforce, чтобы временно переключаться между режимами принуждения и разрешения без перезагрузки:

# Установить SELinux в режим принуждения
$ sudo setenforce 1
# Установить SELinux в режим разрешения
$ sudo setenforce 0

Типы политик SELinux

SELinux использует набор политик для определения контроля доступа. Два основных типа политик — это целевая и многоуровневая безопасность (MLS). Fedora, как правило, использует целевую политику, которая обеспечивает целевую безопасность для ключевых процессов:

Управление булевыми переменными SELinux

Булевые переменные SELinux — это переключатели, которые включают или отключают определенные правила политики SELinux без изменения самой политики. Это позволяет добиться большей гибкости за счет временных изменений. Чтобы просмотреть все доступные булевые переменные, используйте команду:

$ semanage boolean -l

Каждая булевая переменная имеет описание, текущее значение и значение по умолчанию. Чтобы изменить значение булевой переменной, используйте команду setsebool:

# Включить булеву переменную
$ sudo setsebool httpd_enable_homedirs on
# Отключить булеву переменную
$ sudo setsebool httpd_enable_homedirs off

Чтобы гарантировать сохранение изменений после перезагрузки, добавьте опцию -P:

$ sudo setsebool -P httpd_enable_homedirs on

Контекст и метки в SELinux

Глобальная безопасность в SELinux вращается вокруг контекстов и меток. Файлы, каталоги и процессы в Fedora имеют уникальный контекст, состоящий из пользователя, роли, типа и уровня. Важно правильно понимать контексты и маркировать их, чтобы поддерживать безопасность SELinux. Вы можете посмотреть контекст файлов с помощью команды ls -Z:

$ ls -Z /var/www/html

Если вам нужно изменить привязку файла, используйте команду chcon:

$ sudo chcon -t httpd_sys_content_t /var/www/html/index.html

Важно отметить, что ручные изменения контекстов с помощью chcon могут быть отменены в ходе операций переназначения. Для постоянных изменений используйте политики и команду semanage fcontext.

Устранение неполадок SELinux

Работа с SELinux иногда может приводить к ошибкам разрешений. Это часто является признаком правильного применения правил политики, но может нарушать рабочий процесс, если это неожиданный результат. Вот как можно решить проблемы с разрешениями SELinux:

  1. Проверить логи: SELinux регистрирует большинство отказов в доступе в /var/log/audit/audit.log. Вы можете использовать ausearch для анализа:
  2. $ ausearch -m avc -ts recent
  3. Создать отчет: Используйте команду sealert из средства устранения неполадок SELinux для подробной диагностики:
  4. $ sudo sealert -a /var/log/audit/audit.log
  5. Изменить режим принуждения: Чтобы проверить, испытывает ли приложение проблемы из-за SELinux, временно переключитесь в разрешительный режим и наблюдайте за системными логами.

Создание пользовательских политик SELinux

Хотя политики по умолчанию в Fedora охватывают множество сценариев, продвинутые пользователи могут создавать пользовательские политики SELinux для уникальных случаев использования. Для этого вы напишете файлы политик (часто с расширением .te) и скомпилируете их с помощью инструментов checkmodule и semodule_package:

# Запишите вашу политику в файле .te
module mycustom 1.0;
require {
    type user_home_t;
    type httpd_t;
    class file { read write };
}
# Разрешить процессу httpd читать и записывать файлы домашнего каталога пользователя
allow httpd_t user_home_t:file { read write };

Далее, скомпилируйте и установите ваш пользовательский модуль:

$ checkmodule -M -m -o mycustom.mod mycustom.te
$ semodule_package -o mycustom.pp -m mycustom.mod
$ semodule -i mycustom.pp

Восстановление стандартного контекста SELinux

Если контекст файла или директории неверен, это может вызвать проблемы с доступом. Вы можете использовать команду restorecon для восстановления контекста SELinux по умолчанию:

$ sudo restorecon -Rv /path/to/directory

Эта команда рекурсивно сбрасывает контекст, чтобы он соответствовал политике по умолчанию для этого пути.

Заключение

SELinux добавляет важный уровень безопасности в любую систему Fedora. Независимо от того, обеспечиваете ли вы защиту вашей домашней установки или управляете безопасностью на уровне организации, понимание возможностей SELinux имеет первостепенное значение. Ознакомившись с режимами, политиками, булевыми переменными, контекстами и созданием политик SELinux, вы сможете использовать этот мощный инструмент безопасности для обеспечения надежной защиты вашей системы Fedora от атак и несанкционированного доступа.

Если вы найдете что-то неправильное в содержании статьи, вы можете


Комментарии