Утилита auditctl#

Утилита auditctl используется для настройки системы аудита, обеспечиваемой ядром. Правила аудита определяют, какие действия будут отслеживаться и записываться в журнал аудита.

С помощью auditctl можно настроить отслеживание системных вызовов, входов и выходов из системы, а также других действий. Правила могут быть установлены для отслеживания всех системных вызовов, определенных системных вызовов или конкретных процессов.

Синтаксис утилиты:

auditctl <options>

Где:

<options> - опции.

Часто используемые опции утилиты приведены в таблице ниже.

Опция

Описание

-D

Удаляет все правила и наблюдения. Обычно используется с опцией -k

-b <backlog>

Устанавливает максимальное количество <backlog> доступных буферов аудита (значение по умолчанию в ядре равно 64). Если все буферы заполнены, ядро укажет флаг ошибки

-f <[0..2]>

Устанавливает режим реакции ядра на критические ошибки. Возможные значения: 0 - режим silent; 1 - режим printk; 2 - режим panic. Значение по умолчанию - 1. К числу критических ошибок относятся, например, ошибка передачи сообщений для демона аудита; превышение заданного лимита буферов, которые ожидают обработки; исчерпание памяти ядра; превышение лимита скорости формирования сообщений

-w <path>

Устанавливает наблюдение за элементом файловой структуры. Элементом может быть как отдельный файл, так и каталог, путь к которым указывается в <path>

-W <path>

Останавливает наблюдение за элементом файловой структуры

-p <[r|w|x|a]>

Устанавливает виды доступа к элементу файловой системы, которые будут вызывать срабатывание системы наблюдения. Значения: r - чтение; w - запись; x - выполнение; a - изменение атрибутов

-a <list>,<action>

Добавляет правило в конец списка правил <list> с указанием действия <action>. Параметры разделяются запятой, которая является частью синтаксиса. Допустимо указывать параметры и в обратном порядке. Часто используемые значения параметров <list> и <action> приведены в таблицах ниже

-A <list>,<action>

Аналогично опции -a, но правило будет добавлено в начало соответствующего списка

-S

Устанавливает системный вызов, для которого будут формироваться события аудита. Для того чтобы обрабатывались события всех системных вызовов, используйте в качестве значения all

-F

Задает поле сравнения для правила. Система аудита будет генерировать запись, если во всех полях, которых может быть до 64 в одной команде, сравнение будет успешным. Формат поля: <n><operation><v>, где <n> - объект (имя, идентифицирующее системный объект); <operation> - один из 8 предустановленных операторов сравнения; <v> - значение для сравнения

-k <key>

Устанавливает ключ фильтрации для правила. Ключ - строка длиной до 31 символа

-l

Выводит список правил. Может использоваться с ключом -k

-s

Выводит сообщение о статусе системы аудита

-e [0..2]

Устанавливает флаг режима работы системы аудита. Значение 0 позволяет временно отключить систему аудита; значение 1 означает обычный режим работы; значение 2 переводит систему аудита в режим запрета изменений. После ввода команды с таким параметром изменение конфигурации будет невозможно. Обычно такая команда ставится последней в блоке

Значения параметра <action> для опции -a:

Значение параметра

Описание

always

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

never

Записи не будут фиксироваться в журнале аудита

Часто используемые значения параметра <list> для опции -a:

Значение параметра

Описание

exit

Правило будет добавлено в список событий выхода из системных вызовов

entry

Правило будет добавлено в список событий входа в системные вызовы

exclude

Правило будет добавлено к списку фильтрации (исключения). Для правил, входящих в этот список, записи в журнал аудита не будут добавляться. События могут быть исключены по PID, UID, GID, идентификатору входа пользователя, типу сообщения, контексту субъекта или имени исполняемого файла. Обратите внимание, что при использовании exclude значение параметра <action> не анализируется и команда выполняется так, как если бы значением поля <action> было never

Пример использования#

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

auditctl -a always,exit -S all -F pid=1005

Правило будет помещено в конец списка exit. В соответствии с правилом будут генерироваться записи системы аудита для всех системных вызовов процесса, имеющего pid 1005.