Антивирус Dr.Web для Linux
(Desktop Security Suite)
v. 6.0.2
Замечания по установке в операционных системах, оснащенных системой
безопасности SELinux
=============================================================================
Материалы, приведенные в данном документе, являются собственностью компании
<Доктор Веб> и могут быть использованы исключительно для личных целей
приобретателя продукта. Никакая часть данного документа не может быть
скопирована, размещена на сетевом ресурсе или передана по каналам связи и в
средствах массовой информации или использована любым другим образом, кроме
использования для личных целей, без ссылки на источник.
Dr.Web является зарегистрированным товарным знаком компании <Доктор Веб>.
Linux - зарегистрированный товарный знак Линуса Торвальдса на территории
Соединенных Штатов Америки и других стран.
Иные зарегистрированные товарные знаки, логотипы и наименования компаний,
упомянутые в данном документе, являются собственностью их владельцев.
В программное обеспечение могут вноситься изменения, не отраженные в
данной документации. Исправленные и дополненные редакции документа
оперативно размещаются на веб-сайте компании http://www.drweb.com.
=============================================================================
(C) ООО <Доктор Веб>, 1992-2013.
Россия, Москва - Санкт-Петербург.
http://www.drweb.com/
Если используемый вами дистрибутив Linux оснащен подсистемой безопасности
SELinux (Security-Enhanced Linux - Linux с улучшенной безопасностью), то для
того, чтобы антивирусные компоненты (сканирующий демон Dr.Web Daemon, консоль-
ный сканер Dr.Web Console Scanner и монитор Dr.Web SpIDer Guard) работали
корректно после установки компонентов приложения, вам потребуется внести измене-
ния в политики безопасности, используемые SELinux.
Обратите внимание, что в случае если после установки Антивируса Dr.Web для Linux
вы не выполните настройку политик безопасности SELinux, возможно возникновение
ситуации, когда будет заблокирована возможность аутентификации пользователей в
системе (включая суперпользователя root), а также удаленный доступ к ней по SSH.
Кроме того, при включенном SELinux установка продукта из универсальных пакетов
(.run) может окончиться неудачей, поскольку будет заблокирована попытка создания
пользователя drweb, от имени которого работают модули Антивируса Dr.Web для
Linux.
Перед началом установки рекомендуется проверить режим работы SELinux, для этого
выполните команду getenforce. Эта команда выводит на экран текщуий режим зашиты:
* Permissive - защита активна, но используется разрешающая стратегия: действия,
нарушающие политики безопасности, не запрещаются, а только фиксируются в
журнале аудита.
* Enforced - защита активна, используется запрещающая стратегия: действия,
нарушающие политики безопасности, регистрируются в журнале аудита и
блокируются.
* Disabled - SELinux установлен, но неактивен.
Если SELinux работает в режиме Enforced, следует временно (на период установки
продукта и последующей настройки политик безопасности) перевести ее в режим
Permissive. Для этого выполните команду setenforce 0, которая временно (до
первой перезагрузки системы) переведет SELinux в режим Permissive. Чтобы вернуть
систему в режим Enforced, следует выполнить команду setenforce 1.
Обратите внимание, что, какой бы режим защиты вы не установили при помощи
команды setenforce, после перезагрузки операционной системы SELinux вернется в
режим защиты, заданный в ее настройках (обычно файл настроек SELinux находится
в каталоге /etc/selinux).
В общем случае, при использовании в системе демона audit, файл журнала аудита
располагается в /var/log/audit/audit.log. В противном случае сообщения о запрете
операции записываются в общий файл журнала /var/log/messages.
Чтобы при работающем SELinux антивирусные компоненты могли успешно функциониро-
вать, необходимо скомпилировать специальные политики безопасности сразу после
установки программного продукта, по завершении работы инсталлятора или
установщика нативных пакетов.
Пожалуйста, обратите внимание, что в некоторых дистрибутивах Linux указанные
ниже утилиты могут быть по умолчанию не установлены. В этом случае вам возможно
потребуется дополнительно установить содержащие их пакеты.
Чтобы создать необходимые политики:
1. Создайте новый файл с исходным кодом политики SELinux (.te файл). Данный файл
определяет ограничения, относящиеся к описываемому модулю. Исходный файл
политики может быть создан двумя способами:
1) С помощью утилиты audit2allow. Это наиболее простой способ. Данная утили-
та генерирует разрешающие правила на основе сообщений об отказе в доступе
в файлах системных журналов. Возможно задать автоматический поиск сообще-
ний в файлах журналов или указать путь к файлу журнала вручную.
Утилита audit2allow находится в пакете policycoreutils-python или
policycoreutils-devel (для ОС RedHat Enterprise Linux, CentOS, Fedora, в
зависимости от версии) или в пакете python-sepolgen (для Debian, Ubuntu).
Пример использования:
# audit2allow -M drweb -i /var/log/audit/audit.log
ИЛИ
# cat /var/log/audit/audit.log | audit2allow -M drweb
В данном примере утилита audit2allow производит поиск сообщений об отказе
в доступе в файле audit.log.
# audit2allow -a -M drweb
В данном примере утилита audit2allow ищет сообщения об отказе в доступе в
файлах журналов автоматически.
В обоих случаях в результате работы утилиты создаются два файла: исходный
файл политики drweb.te и готовый к установке модуль политики drweb.pp.
В большинстве случаев вам не потребуется вносить изменения в созданный
утилитой файл политики. Поэтому рекомендуется сразу переходить к пункту 4
для установки полученного модуля политики drweb.pp.
Обратите внимание, что по умолчанию утилита audit2allow в качестве
результата своей работы выводит на экран готовый вызов команды semodule.
Скопировав его в командную строку и выполнив, вы выполните пункт 4.
Перейдите к пункту 2, только если вы хотите внести изменения в политики,
автоматически сформированные для компонентов Антивируса Dr.Web для Linux.
2) С помощью утилиты policygentool. Для этого укажите в качестве параметров
имя модуля, работу с которым вы хотите настроить, и полный путь к его
исполняемому файлу.
Обратите внимание, что утилита policygentool, входящая в состав пакета
selinux-policy для RedHat Enterprise Linux и CentOS Linux, может работать
некорректно. В таком случае воспользуйтесь утилитой audit2allow.
Пример создания политик при помощи policygentool:
- Для модуля Dr.Web Console Scanner:
# policygentool drweb-scanner /opt/drweb/drweb.real
- Для сканирующего демона Dr.Web Daemon:
# policygentool drweb-daemon /opt/drweb/drwebd.real
Вам будет предложено указать несколько общих характеристик домена, после
чего для каждого модуля будут созданы три файла, определяющих политику:
[module_name].te, [module_name].fc и [module_name].if.
2. При необходимости отредактируйте сгенерированный исходный файл политики
[module_name].te, а затем, используя утилиту checkmodule, создайте бинарное
представление (.mod файл) исходного файла локальной политики.
Обратите внимание, что для успешной работы этой команды в системе должен быть
установлен пакет checkpolicy.
Пример использования:
# checkmodule -M -m -o drweb.mod drweb.te
3. Создайте устанавливаемый модуль политики (.pp файл) с помощью утилиты
semodule_package.
Пример:
# semodule_package -o drweb.pp -m drweb.mod
4. Для установки созданного модуля политики воспользуйтесь утилитой semodule.
Пример:
# semodule -i drweb.pp
5. Для корректной работы монитор Dr.Web SpIDer Guard использует специальную
библиотеку libdw_notify.so. Во избежание ошибок работы этой библиотеке
требуется присвоить корректную файловую метку SELinux, для чего в качестве
последнего шага необходимо выполнить переиндексацию файловой системы с
автоматическим переназначением меток файлов.
Чтобы принудить SELinux выполнить переиндексацию меток, создайте в корневом
каталоге файловой системы специальный файл .autorelabel и выполните перезаг-
рузку операционной системы, например, выполнив подряд две следующие команды:
# touch /.autorelabel
# reboot
После перезагрузки операционной системы подсистема безопасности SELinux будет
настроена для корректной работы Антивируса Dr.Web для Linux.
Для получения дополнительной информации о принципах работы и настройки SELinux
обратитесь к документации по используемому вами дистрибутиву Linux.