Обзор
auditctl динамически управляет правилами системы аудита Linux. Эти правила определяются на уровне ядра и могут быть настроены для записи различных событий, таких как доступ к определенным файлам, системные вызовы, действия пользователей и т. д. Журналы аудита обычно хранятся в файле /var/log/audit/audit.log.
Основные функции
- Добавление и удаление правил аудита
- Просмотр списка активных правил аудита
- Отслеживание доступа к файлам и каталогам
- Отслеживание определенных системных вызовов
- Настройка правил аудита на основе пользователей и групп
Установка
auditctl является частью пакета 'audit' или 'auditd'. Если он не установлен по умолчанию в вашем дистрибутиве Linux, вы можете установить его с помощью следующих команд.
Debian/Ubuntu
sudo apt update
sudo apt install auditd
Установка auditctl в системах на базе Debian или Ubuntu.
RHEL/CentOS/Fedora
sudo yum install audit
# или
sudo dnf install audit
Установка auditctl в системах на базе RHEL, CentOS или Fedora.
После установки необходимо запустить и включить службу auditd: `sudo systemctl enable auditd --now`
Основные опции
Команда auditctl использует различные опции для определения и управления правилами аудита.
Управление правилами
Определение правил
Сгенерированная команда:
Комбинируйте команды.
Описание:
`auditctl` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Различные примеры настройки правил аудита с помощью auditctl.
Вывести все текущие правила аудита
sudo auditctl -l
Проверяет все правила аудита, загруженные в настоящее время в ядро.
Отслеживание изменений файла /etc/passwd
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
Отслеживает все операции записи (w) и изменения атрибутов (a) для файла /etc/passwd и назначает ключ 'passwd_changes'.
Отслеживание попыток чтения файла /etc/shadow
sudo auditctl -w /etc/shadow -p r -k shadow_read
Отслеживает попытки чтения (r) файла /etc/shadow и назначает ключ 'shadow_read'.
Отслеживание создания/удаления файлов в каталоге /var/log
sudo auditctl -a always,exit -F dir=/var/log -F perm=wa -S creat,unlink -k log_dir_changes
Отслеживает системные вызовы создания (creat) и удаления (unlink) файлов в каталоге /var/log. Назначает ключ 'log_dir_changes'.
Отслеживание попыток удаления файлов определенным пользователем (UID)
sudo auditctl -a always,exit -F arch=b64 -S unlink -F auid=1000 -k user_file_delete
Отслеживает системный вызов удаления (unlink) файлов пользователем с UID 1000. Указывает архитектуру системы 64-бит.
Удалить все правила аудита
sudo auditctl -D
Удаляет все правила аудита, загруженные в настоящее время. (Внимание: используйте с осторожностью.)
Удалить правило с определенным ключом
sudo auditctl -w /etc/passwd -p wa -k passwd_changes -d
Удаляет правило с ключом 'passwd_changes'. Необходимо использовать те же опции, что и при добавлении правила.
Советы и предостережения
Полезные советы и предостережения при использовании auditctl.
Постоянное сохранение правил
Правила, добавленные с помощью auditctl, исчезают после перезагрузки системы. Чтобы сохранить правила постоянно, добавьте их в файл /etc/audit/rules.d/audit.rules и примените с помощью команды 'augenrules --load' или 'systemctl restart auditd'.
- Файл правил: /etc/audit/rules.d/audit.rules
- Применение правил: sudo augenrules --load
Влияние на производительность
Настройка слишком большого количества правил аудита или отслеживание обширных каталогов может повлиять на производительность системы. Рекомендуется настраивать только минимально необходимые правила и сосредоточиться на критически важных путях.
Проверка файлов журналов
События аудита записываются в файл /var/log/audit/audit.log. Для эффективной проверки этих журналов рекомендуется использовать команды ausearch и aureport.
Указание архитектуры (-F arch=b64/b32)
При отслеживании системных вызовов рекомендуется явно указывать '-F arch=b64' для 64-битных систем и '-F arch=b32' для 32-битных систем. Это связано с тем, что номера системных вызовов могут различаться в зависимости от архитектуры.