Команда Linux auditd
auditd — это демон аудита в системах Linux и основной компонент системы аудита Linux. Его основные функции включают мониторинг и запись системной активности, в том числе:
- Доступ к файлам и каталогам
- Системные вызовы
- Вход/выход пользователя
- Выполнение привилегированных команд
- Изменения конфигурации системы
Эти журналы аудита очень важны для мониторинга безопасности системы, проверок соответствия и устранения неполадок.
Основные компоненты auditd
Демон auditd
Непрерывно работающий демон, отвечающий за сбор и хранение событий аудита.
Инструмент auditctl
Инструмент командной строки, используемый для настройки правил аудита и управления системой аудита.
Инструмент ausearch
Инструмент командной строки, используемый для запроса журналов аудита.
Инструмент aureport
Создает сводные отчеты по журналам аудита.
Установка и запуск auditd
Установка auditd
В большинстве дистрибутивов Linux auditd обычно предустановлен. Если требуется ручная установка:
Пример
sudo apt-get install auditd
# CentOS/RHEL
sudo yum install audit
Запуск и включение службы auditd
Пример
sudo systemctl start auditd
# Включить автозапуск при загрузке
sudo systemctl enable auditd
# Проверить состояние службы
sudo systemctl status auditd
Файл конфигурации auditd
Основной файл конфигурации auditd расположен в/etc/audit/auditd.confи содержит следующие важные параметры:
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
log_file |
Путь к файлу журнала аудита | /var/log/audit/audit.log |
max_log_file |
Максимальный размер одного файла журнала (MB) | 8 |
num_logs |
Количество сохраняемых файлов журнала | 5 |
flush |
Режим записи журнала | INCREMENTAL |
freq |
Как часто синхронизировать, если flush=INCREMENTAL | 20 |
После изменения конфигурации перезапустите службу:
sudo systemctl restart auditd
Сведения о команде auditctl
auditctlявляется основным инструментом для настройки правил аудита.
Базовый синтаксис
auditctl [选项] [规则]
Общие параметры
| Опция | Описание |
|---|---|
-l |
Показать все текущие правила |
-D |
Удалить все правила |
-s |
Показать состояние системы аудита |
-R <file> |
Загрузить правила из файла |
Типы правил
Правила файловой системы: отслеживание доступа к файлам/каталогам
Пример
auditctl -w /etc/passwd -p rwxa -k passwd_access
-w: Путь для мониторинга-p: Права (r=чтение, w=запись, x=выполнение, a=изменение атрибута)-k: Ключ (для фильтрации логов)
Правила системных вызовов: Отслеживание конкретных системных вызовов
Пример
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k sudo_cmds
-a: Действие и список (always,exit записывает при выходе из системного вызова)-F: Условия фильтрации-S: Имя системного вызова
Правила пользователя: Отслеживание поведения конкретного пользователя
Пример
auditctl -a always,exit -S unlink -S unlinkat -S rename -S renameat -F auid>=500 -F auid!=4294967295 -k delete_files
Анализ журналов аудита
Команда ausearch
Используется для запроса журналов аудита.
Пример
ausearch -k passwd_access
# Поиск в журналах по конкретному времени
ausearch -ts today
ausearch -ts 10:00:00 -te 11:00:00
# Поиск журналов по конкретному пользователю
ausearch -ua 1000
aureport Команда
Создает сводные отчеты по журналам аудита.
Пример
aureport -l
# Создать отчёт о доступе к файлам
aureport -f
# Создать сводный отчёт по всем событиям
aureport --summary
Примеры практического применения
Пример 1: Мониторинг конфиденциальных файлов
Пример
auditctl -w /etc/shadow -p wa -k shadow_mod
# Просмотр связанных журналов
ausearch -k shadow_mod | less
Пример 2: Мониторинг повышения привилегий пользователя
Пример
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k priv_esc
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/su -k priv_esc
# Создать отчёт о повышении привилегий
aureport --start today --event --summary -i | grep priv_esc
Пример 3: Мониторинг входа по SSH
Пример
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/sbin/sshd -k sshd_login
# Просмотр записей входа по SSH
ausearch -k sshd_login | grep 'acct="user"' | grep 'res=success'
Лучшие практики
Правильно настройте ротацию журналов: Убедитесь, что журналы не заполнят диск
Пример
max_log_file = 50
num_logs = 10
Управляйте правилами аудита централизованно: Сохраните правила в файл
Пример
-w /etc/passwd -p wa -k passwd_changes
-w /etc/group -p wa -k group_changes
# Загрузить правила
auditctl -R /etc/audit/rules.d/my.rules
Регулярно проверяйте журналы: Настройте задание cron для регулярного анализа журналов
Пример
0 0 * * * /usr/sbin/aureport --summary --start yesterday --end now | mail -s "Ежедневный отчёт аудита" admin@example.com
Защитите журналы аудита: Предотвратите подделку журналов
Пример
chown root:root /var/log/audit/audit.log
Устранение распространённых проблем
Проблема 1: Служба auditd не запускается
Решение:
- Проверьте синтаксис файла конфигурации:
auditd -f /etc/audit/auditd.conf - Проверьте системные журналы:
journalctl -u auditd
Проблема 2: Журналы аудита не создаются
Решение:
- Убедитесь, что служба запущена:
systemctl status auditd - Проверьте, загружены ли правила:
auditctl -l - Проверьте поддержку ядра:
grep "audit" /boot/config-$(uname -r)
Проблема 3: слишком большие файлы журналов
Решение:
- Настройте размер и количество журналов: измените
/etc/audit/auditd.confinmax_log_fileиnum_logs - Включите сжатие журналов: добавьте
compress = yesв файл конфигурации
Итог
auditd — мощный инструмент аудита для Linux-систем. При правильной настройке вы можете:
- Отслеживать доступ к критически важным файлам и каталогам
- Отслеживать использование привилегированных команд
- Записывать входы пользователей и системную активность
- Соответствовать требованиям комплаенса
Освоение auditd необходимо системным администраторам и специалистам по безопасности; оно помогает лучше понимать и защищать вашу систему Linux.
Другие расширения
Энциклопедия команд Linux