Auditd

Материал из sysadm
Перейти к навигации Перейти к поиску

Сервис auditd предназначен для аудита, можно логировать вызовы ядра, обращения к файлам и др.

Предупреждение ! сервис может повесить систему при некорректной настройке.

Важные параметры /etc/audit/rules.d/audit.rules

-f { 0 | 1 | 2 }
# определяет действие в случае критических событий (ошибки передачи данных в пользовательское пространство сервиса аудита, превышение backlog limit, переполнение памяти в ядре, превышение rate limit)
# подробнее man auditctl
  0 - silent 
  1 - printk
  2 - panic

-b 8192
# максимальное количество не обработанных буферов backlog, для загруженных систем рекомендуется увеличивать (по умолчанию в ядре 64 буфера)

Очередь с задержкой сохраняется в памяти, поэтому увеличение предела задержки увеличит потребление памяти по мере роста очереди. Обычно размер каждого сообщения составляет чуть менее 9000 байт. Вы не хотите, чтобы предел задержки был слишком низким, но вы также не хотите устанавливать безумно высокое значение, которое может съесть значительную часть вашей системной памяти.

Важные параметры /etc/audit/audit.conf

# подробнее man auditd.conf

flush =  { none | incremental | incremental_async | data | sync }
# режим сброса на диск записей аудита
#   none              - ничего не предпринимать для гарантии сброса записей на диск (нужно проверить, возможно совсем перестанет писать аудит)
#   incremental       - сбрасывать на диск записи аудита блоками. Количество записей в блоке определяется параметром freq.
#   incremental_async - тоже что incremental, только данные сбрасываются асинхронно
#   data              - tells the audit daemon to keep the data portion of the  disk file  sync'd at all times.
#   sync              - tells the audit daemon to keep both the data and meta-data fully sync'd with every write to disk

freq = 500
# используется при flush = { incremental | incremental_async }
# определяет количество записей, которые будут сбрасываться на диск за один раз

# Ошибка: dispatch err (pipe full) event lost
disp_qos = { lossy | lossless }
  This  option controls whether you want blocking/lossless or non-blocking/lossy communication between the audit daemon and the dispatcher. There is a 128k buf‐
  fer between the audit daemon and dispatcher. This is good enough for most uses. If lossy is chosen, incoming events going to the dispatcher are discarded when
  this  queue  is full. (Events are still written to disk if log_format is not nolog.) Otherwise the auditd daemon will wait for the queue to have an empty spot
  before logging to disk. The risk is that while the daemon is waiting for network IO, an event is not being recorded to disk. Valid values are: lossy and loss‐
  less. Lossy is the default value.