Блог "Дети ОИТа"
/поиск

01. Используем auditd

`auditd` (Audit Framework) — это мощная подсистема в Linux для сбора информации о событиях системы: кто, когда и что делал с файлами, запускал программы, менял настройки. *В контексте поиска неисправн

auditd (Audit Framework) — это мощная подсистема в Linux для сбора информации о событиях системы: кто, когда и что делал с файлами, запускал программы, менял настройки.

В контексте поиска неисправностей он особенно ценен, когда нужно понять, кто, когда и что изменил в системе.

Может не везде стоять но возможно везде стоит поставить

Просмотр и анализ логов

Логи пишутся в /var/log/audit/audit.log, но читать их вручную тяжело. Для этого есть ausearch.

Найти все события по ключу passwd_changes:
sudo ausearch -k passwd_changes

Найти события от конкретного пользователя (UID):
sudo ausearch -ua 1000 Где 1000 - UID пользователя

Найти события за последние 10 минут:
sudo ausearch -ts recent

Найти конкретную попытку неудачного входа (лог USER_LOGIN с результатом fail):
sudo ausearch -m USER_LOGIN --success no

Основные компоненты

  • auditd — сам демон, который пишет логи.
  • auditctl — утилита для управления правилами в реальном времени (пока работает демон).
  • /etc/audit/rules.d/ — директория с файлами правил (обычно audit.rules), которые загружаются при старте.
  • ausearch — утилита для поиска событий в логах.
  • aureport — утилита для генерации отчетов по логам.
  • /var/log/audit/audit.log — основной файл логов.

Без правил auditd не знает, за чем следить. Правила делятся на три типа: Watch (наблюдение за файлами/папками), Syscall (наблюдение за системными вызовами) и Control (управление).

Как временно добавить правило

Посмотреть текущие активные правила sudo auditctl -l

Типовые примеры правил

Следить за изменениями в важном конфигурационном файле:
sudo auditctl -w /etc/passwd -p wa -k passwd_changes

  • -w /etc/passwd — следить за файлом.
  • -p wa — какие права отслеживать: w (запись), a (изменение атрибута), r (чтение), x (исполнение).
  • -k passwd_changes — ключ (метка) для удобного поиска.

Следить за всей директорией /etc на запись:
sudo auditctl -w /etc/ -p wa -k etc_modify

Осторожно: это может создать очень много записей в логах.

Отслеживать запуск бинарного файла (например, chmod):
sudo auditctl -w /usr/bin/chmod -p x -k chmod_execution

Наблюдение за системным вызовом (продвинутый уровень):
Допустим, мы хотим ловить все попытки изменения времени (системный вызов settimeofday), которые не отлавливаются просто слежением за файлами.

sudo auditctl -a always,exit -S settimeofday -k time_change

  • -a always,exit — добавить правило в список, срабатывающее при завершении syscall.
  • -S settimeofday — имя системного вызова.