Your Logo
Documentation made easier

AUDIT2ALLOW

ИМЯ
ОБЗОР
ПАРАМЕТРЫ
ОПИСАНИЕ
ПРИМЕР
АВТОРЫ

ИМЯ

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>.