Файл политики безопасности linux

Файл политики безопасности linux

Настройка политик безопасности для SELinux

Если используемый вами дистрибутив Linux оснащен подсистемой безопасности SELinux ( Security-Enhanced Linux – Linux с улучшенной безопасностью), то для того, чтобы служебные компоненты продукта (такие как сканирующее ядро) работали корректно после установки компонентов приложения, вам, возможно, потребуется внести изменения в политики безопасности, используемые SELinux.

1. Проблемы при установке универсального пакета

При включенном SELinux установка продукта в виде универсального пакета из установочного файла (.run) может окончиться неудачей, поскольку будет заблокирована попытка создания в системе специального пользователя drweb, с полномочиями которого работают модули Dr.Web для Linux.

В случае если попытка установки продукта из установочного файла (.run) была прервана из-за невозможности создания пользователя drweb, проверьте режим работы SELinux, для чего выполните команду getenforce. Эта команда выводит на экран текущий режим зашиты:

• Permissive – защита активна, но используется разрешающая стратегия: действия, нарушающие политики безопасности, не запрещаются, а только фиксируются в журнале аудита.

• Enforced – защита активна, используется запрещающая стратегия: действия, нарушающие политики безопасности, регистрируются в журнале аудита и блокируются.

• Disabled – SELinux установлен, но неактивен.

Если SELinux работает в режиме Enforced, следует временно (на период установки продукта) перевести ее в режим Permissive. Для этого выполните команду setenforce 0, которая временно (до первой перезагрузки системы) переведет SELinux в режим Permissive.

Какой бы режим защиты вы ни установили при помощи команды setenforce, после перезагрузки операционной системы SELinux вернется в режим защиты, заданный в ее настройках (обычно файл настроек SELinux находится в каталоге /etc/selinux).

После успешной установки продукта из установочного файла, но до его запуска и активации верните режим Enforced , для чего выполните команду setenforce 1.

Читайте также:  Распаковка boot img linux

2. Проблемы функционирования продукта

В некоторых случаях при работающем SELinux отдельные вспомогательные компоненты Dr.Web для Linux (такие, как drweb-se и drweb-filecheck, используемые Сканером ) не смогут запуститься, вследствие чего сканирование объектов и мониторинг файловой системы станут невозможны. Признаком того, что эти вспомогательные модули не могут быть запущены, является появление сообщений об ошибках 119 и 120 на главном окне Dr.Web для Linux и в системном журнале syslog (обычно расположен в каталоге /var/log/ ).

Ошибки 119 и 120 также могут сигнализировать о том, что вы пытаетесь запустить Dr.Web для Linux в 64-битной версии операционной системы при отсутствии библиотеки поддержки исполнения 32-битных приложений (см. раздел Системные требования ).

В случае срабатывания системы безопасности SELinux информация об отказах фиксируется также в системном журнале аудита. В общем случае, при использовании в системе демона audit, журнал аудита располагается в файле /var/log/audit/audit.log. В противном случае сообщения о запрете операции записываются в общий файл журнала /var/log/messages.

Если установлено, что вспомогательные модули не функционирую из-за того, что они блокируются SELinux , необходимо скомпилировать для них специальные политики безопасности.

В некоторых дистрибутивах Linux указанные ниже утилиты могут быть по умолчанию не установлены. В этом случае вам, возможно, потребуется дополнительно установить содержащие их пакеты.

Создание политик безопасности SELinux:

1. Создайте новый файл с исходным кодом политики SELinux (файл с расширением .te). Данный файл определяет ограничения, относящиеся к описываемому модулю. Исходный файл политики может быть создан двумя способами:

1) С помощью утилиты audit2allow. Это наиболее простой способ, поскольку данная утилита генерирует разрешающие правила на основе сообщений об отказе в доступе в файлах системных журналов. Возможно задать автоматический поиск сообщений в файлах журналов или указать путь к файлу журнала вручную.

Читайте также:  Ssh key linux no password

Обратите внимание, что этот способ можно использовать только в том случае, когда в системном журнале аудита уже зарегистрированы инциденты нарушения политик безопасности SELinux компонентами Dr.Web для Linux. В случае если это не так, следует или дождаться таких инцидентов в процессе работы продукта Dr.Web для Linux , или создать разрешающие политики принудительно, воспользовавшись утилитой policygentool (см. ниже).

Утилита audit2allow находится в пакете policycoreutils-python или policycoreutils-devel (для ОС RedHat Enterprise Linux, CentOS, Fedora, в зависимости от версии) или в пакете python-sepolgen (для ОС Debian, Ubuntu ).

Обратите внимание, что для ОС Fedora версии 20 дополнительно обязательно требуется установить пакет checkpolicy, иначе вызов утилиты audit2allow завершится ошибкой.

Пример использования audit2allow :

# grep drweb-se.real /var/log/audit/audit.log | audit2allow -M drweb-se

В данном примере утилита audit2allow производит поиск в файле audit.log сообщений об отказе в доступе для модуля drweb-se.

В результате работы утилиты создаются два файла: исходный файл политики drweb-se.te и готовый к установке модуль политики drweb-se.pp.

Если подходящих инцидентов в системном журнале не обнаружено, утилита вернет сообщение об ошибке.

В большинстве случаев вам не потребуется вносить изменения в файл политики, созданный утилитой audit2allow . Поэтому рекомендуется сразу переходить к пункту 4 для установки полученного модуля политики drweb-se.pp. Обратите внимание, что по умолчанию утилита audit2allow в качестве результата своей работы выводит на экран готовый вызов команды semodule. Скопировав его в командную строку и выполнив, вы выполните пункт 4 . Перейдите к пункту 2 , только если вы хотите внести изменения в политики, автоматически сформированные для компонентов Dr.Web для Linux .

2) С помощью утилиты policygentool. Для этого укажите в качестве параметров имя модуля, работу с которым вы хотите настроить, и полный путь к его исполняемому файлу.

Читайте также:  Есть автокликеры на linux

Обратите внимание, что утилита policygentool, входящая в состав пакета selinux-policy для ОС RedHat Enterprise Linux и CentOS Linux, может работать некорректно. В таком случае воспользуйтесь утилитой audit2allow.

Пример создания политик при помощи policygentool:

# policygentool drweb-se /opt/drweb.com/bin/drweb-se.real

o Для модуля drweb-filecheck:

# policygentool drweb-filecheck /opt/drweb.com/bin/drweb-filecheck.real

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

2. При необходимости отредактируйте сгенерированный исходный файл политики .te, а затем, используя утилиту checkmodule, создайте бинарное представление (файл с расширением .mod) исходного файла локальной политики.

Обратите внимание, что для успешной работы этой команды в системе должен быть установлен пакет checkpolicy.

# checkmodule -M -m -o drweb-se.mod drweb-se.te

3. Создайте устанавливаемый модуль политики (файл с расширением .pp) с помощью утилиты semodule_package.

# semodule_package -o drweb-se.pp -m drweb-se.mod

4. Для установки созданного модуля политики воспользуйтесь утилитой semodule.

Для получения дополнительной информации о принципах работы и настройки SELinux обратитесь к документации по используемому вами дистрибутиву Linux.

Источник

Оцените статью
Adblock
detector