Кто изменил файл? Кто трогал
/etc/passwd, кто переписал конфиг, кто удалил файл, и когда это произошло.Если обычные логи тут не помогают, то на помощь идет
auditd - подсистема аудита в linux, которая умеет фиксировать действия с файлами, процессами, системными вызовами и пользователями. Для админа это один из самых полезных инструментов, когда нужно не гадать, а точно увидеть факт доступа или изменения.▪️ Что умеет auditd:
отслеживать чтение, запись, удаление и изменение файлов;
показывать, какой пользователь это сделал;
фиксировать время события;
сохранять, какой процесс выполнил действие;
помогать в расследованиях "кто это сломал".
▪️ Установка обычно такая:
apt install auditd audispd-plugins
или:
yum install audit
▪️ Работа с auditd. После установки сервис нужно запустить и добавить в автозагрузку:
systemctl enable --now auditd
Теперь самое полезное - можно поставить правило на конкретный файл или каталог. Например, хотим отслеживать изменения файла
/etc/ssh/sshd_config:
auditctl -w /etc/ssh/sshd_config -p wa -k sshd_config_watch
-w - watch, следить за файлом-p wa - отслеживать запись (w) и изменение атрибутов (a)-k sshd_config_watch - удобный ключ для поиска событийПосле этого все изменения файла начнут попадать в
audit log.Посмотреть события можно так:
ausearch -k sshd_config_watch
Если нужен более читаемый вывод:
ausearch -k sshd_config_watch -i
Здесь можно увидеть, например, что файл менял vim, sed, ansible, echo >>, или какой-нибудь скрипт деплоя.
Если нужно следить не за одним файлом, а за каталогом:
auditctl -w /etc/nginx/ -p wa -k nginx_conf_watch
Теперь можно быстро искать все события по конфигам Nginx:
ausearch -k nginx_conf_watch -i
▪️ Еще полезный инструмент -
aureport. Например, краткий отчет по событиям:
aureport -f -i
Он показывает сводку по файловым операциям. Здесь важно учесть: правила через auditctl обычно неперсистентны. То есть после перезагрузки они исчезнут. Чтобы сохранить их постоянно, добавляют правила в конфиг auditd, например:
/etc/audit/rules.d/audit.rules
или отдельным файлом в rules.d, например:
-w /etc/ssh/sshd_config -p wa -k sshd_config_watch
-w /etc/nginx/ -p wa -k nginx_conf_watch
А потом загружают правила:
augenrules --load
или перезапускают auditd.
#linux #auditd
🧑💻 NetworkAdmin