AUDIT2ALLOW(1)

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

СИНТАКСИС
audit2allow [options]

ОПЦИИ

-a | --all
    Прочесть входную информацию из журналов message и audit. Не используется вместе с опцией -i

-d | --dmesg
    Прочесть входную информацию из вывода команды /bin/dmesg. Обратите внимание, что когда работает auditd, не все сообщения аудита доступны через dmesg. Вместо этого используйте "ausearch -m avc | audit2allow" или "-a".

-f | --fcfile <File Context File>
    Добавить Файл Контекстов в генерируемый пакет модуля. Требует опцию -M.

-h | --help
    Вывести краткую справку по использованию

-i  <inputfile> | --input <inputfile>
    прочесть входную информацию из <inputfile>

-l | --lastreload
    прочесть только часть входной информации, начиная с момента последней перезагрузки политики

-m <modulename> | --module <modulename>
    Генерировать модуль. Требуется вывод <modulename>

-M <modulename>
    Генерировать загружаемый пакет модуля. Опция конфликтует с -o

-o <outputfile> | --output <outputfile>
    дописать вывод в <outputfile>

-r | --requires
    Генерировать вывод в синтаксисе загружаемого модуля.

-R | --reference
    Генерировать эталонную политику (reference policy), используя установленные макросы. Требуется пакет selinux-policy-devel.

-t  | --tefile
    Указывает, что выходной файл является te-файлом (type enforcement). Может использоваться для конвертации старого формата политик в новый формат.

-v | --verbose
    Включить подробный вывод

ОПИСАНИЕ

Эта утилита сканирует журналы в поиске сообщений, появляющихся когда система не дает разрешения на операцию. Далее утилита генерирует ряд правил, которые, будучи загруженными в политику, могли бы разрешить эти операции. Однако, данная утилита генерирует только разрешающие правила 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