Product SiteDocumentation Site

Глава 73. Механизм аудита

73.1. Команда auditd
73.2. Файл конфигурации auditd.conf
73.3. Команда auditctl
73.4. Команда aureport
73.5. Команда ausearch
73.6. Команда autrace
73.7. Настройка ротации журналов аудита
73.8. Определение правил аудита
73.8.1. Установка правил с помощью auditctl
73.8.2. Установка постоянных правил в файле /etc/audit/audit.rules
73.8.3. Файлы журнала аудита
73.8.4. Примеры
Механизм аудита состоит из нескольких компонентов:
  • модуль ядра — перехватывает системные вызовы (syscalls) и выполняет регистрацию событий;
  • служба auditd — записывает зарегистрированное событие в файл;
  • служба audispd — осуществляет пересылку сообщений (выступает в роли диспетчера) к другому приложению;
  • ряд вспомогательных программ:
    • auditctl — программа, управляющая поведением системы аудита и позволяющая контролировать текущее состояние системы, создавать или удалять правила;
    • aureport — программа, генерирующая суммарные отчёты о работе системы аудита;
    • ausearch — программа, позволяющая производить поиск событий в журнальных файлах;
    • autrace — программа, выполняющая аудит событий, порождаемых указанным процессом.
Программы отсылают записи, предназначенные для журналирования, системному демону auditd, который идентифицирует тип каждой пришедшей записи и обрабатывает запись способом, определенным для данного типа.
Для каждого из регистрируемых событий в журналах указывается следующая информация:
  • дата и время;
  • субъект, осуществляющий регистрируемое действие;
  • тип события (если регистрируется запрос на доступ, то указываются объект и тип доступа);
  • успешность осуществления события (обслужен запрос на доступ или нет).
Конфигурация аудита хранится в файле /etc/audit/auditd.conf, правила аудита, загружаемые при запуске службы, хранятся в файле /etc/audit/audit.rules.
Для просмотра журналов используются команды ausearch и aureport. Команда auditctl позволяет настраивать правила аудита. Кроме того, при загрузке загружаются правила из файла /etc/audit.rules. Некоторые параметры самой службы можно изменить в файле auditd.conf.

73.1. Команда auditd

Служба auditd — это прикладной компонент системы аудита. Она ведёт журнал аудита на диске.
Синтаксис команды:
auditd [-f] [-l] [-n] [-s disable|enable|nochange] [-c <config_file>]
Опции:
  • -f — не переходить в фоновый режим (для отладки). Сообщения программы будут направляться в стандартный вывод для ошибок (stderr), а не в файл;
  • -l — включить следование по символическим ссылкам при поиске конфигурационных файлов;
  • -n — не создавать дочерний процесс (для запуска из inittab или system);
  • -s=ENABLE_STATE — указать, должен ли auditd при старте изменять текущее значение флага ядра — enabled. Допустимые значения ENABLE_STATE: disable, enable и nochange. Значение по умолчанию enable (disable, когда auditd остановлен). Значение флага может быть изменено во время жизненного цикла auditd с помощью команды: auditctl -e;
  • -c — указать альтернативный каталог конфигурационного файла (по умолчанию: /etc/audit/). Этот же каталог будет передан диспетчеру.
Сигналы:
  • SIGHUP — перезагрузить конфигурацию — загрузить файл конфигурации с диска. Если в файле не окажется синтаксических ошибок, внесённые в него изменения вступят в силу. При этом в журнал будет добавлена запись о событии DAEMON_CONFIG. В противном случае действия службы будут зависеть от параметров space_left_action, admin_space_left_action, disk_full_action, disk_error_action в файле auditd.conf;
  • SIGTERM — прекратить обработку событий аудита и завершить работу, о чем предварительно занести запись в журнал;
  • SIGUSR1 — произвести ротацию файлов журналов auditd. Создать новый файл журнала, перенумеровав старые файлы или удалив часть из них, в зависимости от параметра max_log_size_action;
  • SIGUSR2 — попытаться возобновить ведение журналов auditd (необходимо после приостановки ведения журнала);
  • SIGCONT — выгрузить отчёт о внутреннем состоянии auditd в /var/run/auditd.state.
Файлы:
  • /etc/audit/auditd.conf — файл конфигурации службы аудита;
  • /etc/audit/audit.rules — правила аудита (загружается при запуске службы);
  • /etc/audit/rules.d/ — каталог, содержащий отдельные наборы правил, которые будут скомпилированы в один файл утилитой augenrules.
Для того чтобы сделать возможным аудит всех процессов, запущенных до службы аудита, необходимо добавить в строку параметров ядра (в конфигурации загрузчика) параметр audit=1. В противном случае аудит некоторых процессов будет невозможен.
Демон аудита может получать события — сообщения от других приложений через плагин audispd: audisp-remote. Демон аудита может быть связан с tcp_wrappers, чтобы контролировать, какие машины могут подключаться. В этом случае можно добавить запись в hosts.allow и отказать в соединении.