[ SYSTEM_CORE_LOADED ] > EXEC_MODULE: AUDIT_AND_LOGGING

Логирование и аудит

Практическое руководство по системным журналам, управлению сервисами rsyslog, ротации логов с помощью logrotate и мониторингу активности аутентификации.

Часть 1: journald

SYSTEM: SYSTEMD-JOURNALD

Journald (systemd-journald) — это встроенная служба системы инициализации systemd, отвечающая за сбор и централизованное хранение логов. Она сохраняет данные в бинарном формате, что позволяет очень быстро и удобно фильтровать события.

Journald также ограничивает частоту сообщений логов и сбрасывает все сообщения от сервиса, если они превышают определенные лимиты. Эти лимиты можно настроить с помощью RateLimitBurst и RateLimitIntervalSec, которые по умолчанию равны 10000 и 30с соответственно.

cat /etc/systemd/journald.conf | grep RateLimit

Функция ограничения скорости (rate limiting) очень полезна, когда у вас есть службы, генерирующие огромное количество логов. journalctl — основной инструмент для взаимодействия с журналом.

Часть 2: rsyslog

SYSTEM: RSYSLOGD

Rsyslog — это мощный сервис для обработки и маршрутизации текстовых логов (эволюция классического syslog). Он собирает сообщения от ядра системы и приложений, фильтрует их и распределяет по текстовым файлам или отправляет по сети.

Правила Rsyslog обычно содержат категорию (facility) и уровень (level). Комбинация facility.level определяет приоритет сообщения лога. Подробнее о категориях: TrendMicro Documentation.

Часть 3: Logrotate

SYSTEM: LOGROTATE

Logrotate — это системная утилита, которая защищает жесткий диск от переполнения логами. Она регулярно "ротирует" файлы: архивирует старый лог, сжимает его, создает пустой файл и удаляет самые старые логи.

Предположим, у нас есть лог-файл /var/log/lab.log, который необходимо периодически ротировать (архивировать и очищать), чтобы он не занимал все место на диске.

ПРИМЕЧАНИЕ: Вы можете протестировать конфигурацию без фактической ротации файлов:
logrotate -s logstatus /etc/lab-rotate.d/lablog
Если ротируется лог активного сервиса, рекомендуется перезапустить сервис после ротации с помощью блока postrotate.

Часть 4: Мониторинг аутентификации

SYSTEM: AUTH.LOG

События входа в систему и попытки получения привилегий сохраняются в лог-файле /var/log/auth.log. Отслеживание неудачных попыток — ключевой шаг в обнаружении атак (например, брутфорса).

Автоматизация мониторинга

Создадим скрипт, который автоматически извлекает неудачные аутентификации и пишет их в отдельный файл логов.