Provided by: policycoreutils-python-utils_2.9-2_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>.