Scroll to navigation

AUDIT2ALLOW(1) NSA AUDIT2ALLOW(1)

НАЗВАНИЕ

audit2allow - создает разрешающие правила политики SELinux из файлов журналов, содержащих сообщения о запрете операций

СИНТАКСИС

audit2allow [options]

ОПЦИИ

Прочесть входную информацию из журналов message и audit. Не используется вместе с опцией -i
Прочесть входную информацию из вывода команды /bin/dmesg. Обратите внимание, что когда работает auditd, не все сообщения аудита доступны через dmesg. Вместо этого используйте "ausearch -m avc | audit2allow" или "-a".
Добавить Файл Контекстов в генерируемый пакет модуля. Требует опцию -M.
Вывести краткую справку по использованию
прочесть входную информацию из <inputfile>
прочесть только часть входной информации, начиная с момента последней перезагрузки политики
Генерировать модуль. Требуется вывод <modulename>
Генерировать загружаемый пакет модуля. Опция конфликтует с -o
дописать вывод в <outputfile>
Генерировать вывод в синтаксисе загружаемого модуля.
Генерировать эталонную политику (reference policy), используя установленные макросы. Требуется пакет selinux-policy-devel.
Указывает, что выходной файл является te-файлом (type enforcement). Может использоваться для конвертации старого формата политик в новый формат.
Включить подробный вывод

ОПИСАНИЕ

Эта утилита сканирует журналы в поиске сообщений, появляющихся когда система не дает разрешения на операцию. Далее утилита генерирует ряд правил, которые, будучи загруженными в политику, могли бы разрешить эти операции. Однако, данная утилита генерирует только разрешающие правила Type Enforcement (TE). Некоторые отказы в использовании разрешений могут потребовать других изменений политики. Например, добавление атрибута в определение типа, для разрешения существующего ограничения (constraint), добавления разрешающего правила для роли или модификации ограничения (constraint). В случае сомнений для диагностики можно попробовать использовать утилиту audit2why(8).

Следует с осторожностью работать с выводом данной утилиты, убедившись, что разрешаемые операции не представляют угрозы безопасности. Обычно бывает лучше определить новый домен и/или тип или произвести другие структурные изменения. Лучше избирательно разрешить оптимальный набор операций вместо того, чтобы вслепую применить иногда слишком широкие разрешения, рекомендованные этой утилитой. Некоторые запреты на использование разрешений бывают не принципиальны для приложения. В таких случаях вместо использования разрешительного правила ('allow' rule) лучше просто подавить журналирование этих запретов при помощи правила 'dontaudit'.

ПРИМЕР

ЗАМЕЧАНИЕ: Этот пример подходит для системы, использующей пакет audit.
Если вы не используете пакет audit, сообщения AVC будут появляться
в /var/log/messages. В этом случае замените /var/log/audit/audit.log,
используемый в примере, на /var/log/messages.
Использование audit2allow для генерации монолитной (не модульной) политики
$ cd /etc/selinux/$SELINUXTYPE/src/policy
$ cat /var/log/audit/audit.log | audit2allow >> domains/misc/local.te
$ cat domains/misc/local.te
allow cupsd_config_t unconfined_t:fifo_file { getattr ioctl };
<просмотрите domains/misc/local.te и при желании измените>
$ make load
Использование audit2allow для генерации модульной политики
$ cat /var/log/audit/audit.log | audit2allow -m local > local.te
$ cat local.te
module local 1.0;
require {

role system_r;
class fifo_file { getattr ioctl };
type cupsd_config_t;
type unconfined_t;
}; allow cupsd_config_t unconfined_t:fifo_file { getattr ioctl }; <просмотрите local.te и при желании измените> Создание модуля политики вручную # Скомпилируйте модуль $ checkmodule -M -m -o local.mod local.te # Создайте пакет $ semodule_package -o local.pp -m local.mod # Загрузите модуль в ядро $ semodule -i local.pp Использование audit2allow для генерации и создания модуля политики $ cat /var/log/audit/audit.log | audit2allow -M local Создается новый type enforcment файл: local.te Компиляция политики: checkmodule -M -m -o local.mod local.te Создание пакета: semodule_package -o local.pp -m local.mod ******************** В А Ж Н О *********************** Для того, чтобы загрузить только что созданный пакет политики в ядро, вам необходимо выполнить команду semodule -i local.pp

АВТОРЫ

Эта страница руководства написана Manoj Srivastava <srivasta@debian.org> для системы Debian GNU/Linux. Обновлена Dan Walsh <dwalsh@redhat.com>

Перевод руководства - Andrey Markelov <andrey@markelov.net>, 2007г.

Разработчиками утилиты audit2allow являются несколько человек, включая Justin R. Smith , Yuichi Nakamura и Dan Walsh

Январь 2005 Security Enhanced Linux