Команда Linux auditd

Linux 命令大全Энциклопедия команд Linux


auditd — это демон аудита в системах Linux и основной компонент системы аудита Linux. Его основные функции включают мониторинг и запись системной активности, в том числе:

  • Доступ к файлам и каталогам
  • Системные вызовы
  • Вход/выход пользователя
  • Выполнение привилегированных команд
  • Изменения конфигурации системы

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


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

Демон auditd

Непрерывно работающий демон, отвечающий за сбор и хранение событий аудита.

Инструмент auditctl

Инструмент командной строки, используемый для настройки правил аудита и управления системой аудита.

Инструмент ausearch

Инструмент командной строки, используемый для запроса журналов аудита.

Инструмент aureport

Создает сводные отчеты по журналам аудита.


Установка и запуск auditd

Установка auditd

В большинстве дистрибутивов Linux auditd обычно предустановлен. Если требуется ручная установка:

Пример

# Ubuntu/Debian
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> Загрузить правила из файла

Типы правил

Правила файловой системы: отслеживание доступа к файлам/каталогам

Пример

# Отслеживать чтение, запись и изменения атрибутов /etc/passwd
auditctl -w /etc/passwd -p rwxa -k passwd_access
  • -w: Путь для мониторинга
  • -p: Права (r=чтение, w=запись, x=выполнение, a=изменение атрибута)
  • -k: Ключ (для фильтрации логов)

Правила системных вызовов: Отслеживание конкретных системных вызовов

Пример

# Отслеживать все команды, использующие sudo
auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k sudo_cmds
  • -a: Действие и список (always,exit записывает при выходе из системного вызова)
  • -F: Условия фильтрации
  • -S: Имя системного вызова

Правила пользователя: Отслеживание поведения конкретного пользователя

Пример

# Отслеживание удаления файлов пользователями с UID больше 500
auditctl -a always,exit -S unlink -S unlinkat -S rename -S renameat -F auid&gt;=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: Мониторинг конфиденциальных файлов

Пример

# Мониторинг файла /etc/shadow
auditctl -w /etc/shadow -p wa -k shadow_mod

# Просмотр связанных журналов
ausearch -k shadow_mod | less

Пример 2: Мониторинг повышения привилегий пользователя

Пример

# Мониторинг всех команд, использующих sudo или su
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

Пример

# Мониторинг успешных и неудачных входов по 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'

Лучшие практики

Правильно настройте ротацию журналов: Убедитесь, что журналы не заполнят диск

Пример

# Редактировать /etc/audit/auditd.conf
max_log_file = 50
num_logs = 10

Управляйте правилами аудита централизованно: Сохраните правила в файл

Пример

# Создайте файл правил /etc/audit/rules.d/my.rules
-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

Защитите журналы аудита: Предотвратите подделку журналов

Пример

chmod 600 /var/log/audit/audit.log
chown root:root /var/log/audit/audit.log

Устранение распространённых проблем

Проблема 1: Служба auditd не запускается

Решение:

  1. Проверьте синтаксис файла конфигурации:auditd -f /etc/audit/auditd.conf
  2. Проверьте системные журналы:journalctl -u auditd

Проблема 2: Журналы аудита не создаются

Решение:

  1. Убедитесь, что служба запущена:systemctl status auditd
  2. Проверьте, загружены ли правила:auditctl -l
  3. Проверьте поддержку ядра:grep "audit" /boot/config-$(uname -r)

Проблема 3: слишком большие файлы журналов

Решение:

  1. Настройте размер и количество журналов: измените/etc/audit/auditd.confinmax_log_fileиnum_logs
  2. Включите сжатие журналов: добавьтеcompress = yesв файл конфигурации

Итог

auditd — мощный инструмент аудита для Linux-систем. При правильной настройке вы можете:

  • Отслеживать доступ к критически важным файлам и каталогам
  • Отслеживать использование привилегированных команд
  • Записывать входы пользователей и системную активность
  • Соответствовать требованиям комплаенса

Освоение auditd необходимо системным администраторам и специалистам по безопасности; оно помогает лучше понимать и защищать вашу систему Linux.


Linux 命令大全Энциклопедия команд Linux

Другие расширения