Provided by: policycoreutils-python-utils_3.3-1_all bug

ИМЯ

       audit2allow - создаёт правила политики SELinux allow/dontaudit из журналов отклонённых операций

       audit2why - преобразовывает сообщения аудита SELinux в описание причины отказа в доступе (audit2allow -w)

ОБЗОР

       audit2allow [options]

ПАРАМЕТРЫ

       -a | --all
              Прочитать ввод из журнала аудита и сообщений, конфликтует с -i

       -b | --boot
              Прочитать ввод из сообщений аудита с момента последней загрузки, конфликтует с -i

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

       -D | --dontaudit
              Создать правила dontaudit (по умолчанию: allow)

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

       -i  <inputfile> | --input <inputfile>
              Прочитать ввод из <inputfile>

       -l | --lastreload
              Прочитать ввод только после последней перезагрузки политики

       -m <modulename> | --module <modulename>
              Создать модуль / запросить вывод <modulename>

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

       -p <policyfile> | --policy <policyfile>
              Файл политики, который следует использовать для анализа

       -o <outputfile> | --output <outputfile>
              Добавить вывод в конец <outputfile>

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

       -N | --noreference
              Не создавать эталонную политику, традиционные разрешительные правила.  Это поведение по умолчанию.

       -R | --reference
              Создать  эталонную  политику  с  помощью  установленных  макросов.   Будет   предпринята   попытка
              сопоставить отказы в доступе с интерфейсами, это сопоставление может быть неправильным.

       -x | --xperms
              Создать расширенные правила вектора доступа для разрешения

       -w | --why
              Преобразовать сообщения аудита SELinux в описание причин отказа в доступе

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

ОПИСАНИЕ

       Эта  утилита ищет в журналах сообщения, которые появляются, когда система не даёт разрешения на операции,
       и создаёт фрагмент кода правил политики, который (если бы был загружен в политику) мог бы позволить  этим
       операциям  успешно  завершиться.  Однако  эта  утилита  создаёт  только  разрешительные  (allow)  правила
       принудительного присвоения типов. При работе с некоторыми  отказами  в  разрешениях  может  потребоваться
       изменить  политику  как-то  иначе,  например,  добавить  атрибут  в  объявление  типа  для удовлетворения
       существующему ограничению, добавить разрешительное правило для роли  или  изменить  ограничение.  Утилиту
       audit2why(8) можно использовать для диагностики неясных причин отказов в разрешениях.

       Использовать  вывод  этой  утилиты  необходимо  с  осторожностью;  убедитесь, что разрешаемые операции не
       представляют угрозы безопасности. Часто лучше определить новые домены и/или  типы  или  выполнить  другие
       структурные  изменения,  чтобы  разрешить  успешное  выполнение только оптимальному набору операций, а не
       вслепую применять иногда слишком обширные изменения, которые рекомендуются утилитой. Некоторые запреты на
       использование разрешений не вызывают критических ошибок в  приложении;  в  этом  случае  предпочтительным
       может  быть  простое  подавление журналирования отказов с помощью правила 'dontaudit', а не использование
       разрешительного правила 'allow'.

ПРИМЕР

       ПРИМЕЧАНИЕ: эти примеры относятся к системам, использующим пакет аудита. Если вы
       не используете пакет аудита, сообщения кэша вектора доступа (AVC) будут находиться в каталоге /var/log/messages.
       Замените в примерах /var/log/messages на /var/log/audit/audit.log

       Использование audit2allow для создания модульной политики

       $ cat /var/log/audit/audit.log | audit2allow -m local > local.te
       $ cat local.te
       module local 1.0;

       require {
               class file {  getattr open read };

               type myapp_t;
               type etc_t;
        };

       allow myapp_t etc_t:file { getattr open read };
       <просмотреть local.te и настроить требуемым образом>

       Использование audit2allow для создания модульной политики с помощью эталонной политики

       $ cat /var/log/audit/audit.log | audit2allow -R -m local > local.te
       $ cat local.te
       policy_module(local, 1.0)

       gen_require(`
               type myapp_t;
               type etc_t;
        };

       files_read_etc_files(myapp_t)
       <просмотреть local.te и настроить требуемым образом>

       Сборка модульной политики с помощью Makefile

       # SELinux предоставляет среду разработки политики в
       # /usr/share/selinux/devel, включая все поставляемые
       # файлы интерфейса.
       # Можно создать файл .te и скомпилировать его, выполнив

       $ make -f /usr/share/selinux/devel/Makefile local.pp

       # Эта команда make скомпилирует файл local.te в текущем
       # каталоге. Если не был указан файл "pp", будут скомпилированы
       # все файлы "te" в текущем каталоге. После компиляции файла
       # .te в файл "pp" его потребуется установить с помощью
       # команды semodule.

       $ semodule -i local.pp

       Сборка модульной политики вручную

       # Скомпилировать модуль
       $ 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
       Создание файла принудительного присвоения типов: local.te

       Компиляция политики: checkmodule -M -m -o local.mod local.te
       Сборка пакета: semodule_package -o local.pp -m local.mod

       ******************** ВАЖНО ***********************

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

       semodule -i local.pp

       Использование 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

АВТОРЫ

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

       В  разработке  утилиты  audit2allow  участвовало  несколько  человек, в том числе Justin R. Smith, Yuichi
       Nakamura и Dan Walsh.  Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.

Security Enhanced Linux                           Октябрь 2010                                    AUDIT2ALLOW(1)