No history yet

Конфигурация Sagan

Установка и базовая настройка

Поскольку вы уже знакомы с основами Sagan, мы не будем останавливаться на установке пакета через менеджер пакетов, например apt или yum. Вместо этого сосредоточимся на сердце системы — главном конфигурационном файле sagan.yaml.

Этот файл определяет все аспекты работы Sagan: от того, где хранить лог-файлы, до того, как обрабатывать входящие события. Правильная настройка sagan.yaml — ключ к эффективной работе SIEM. Основные параметры, на которые стоит обратить внимание в первую очередь, включают пути к файлам PID и журналам, а также расположение директорий с правилами.

sagan_log_file: /var/log/sagan/sagan.log
sagan_pid_file: /var/run/sagan.pid

# Пути к директориям с правилами
# Sagan будет рекурсивно искать файлы .rules
rule_paths:
  - /etc/sagan/rules/
  - /etc/sagan/rules/syslog/

# Уровень логирования работы самого Sagan
# Возможные значения: 'debug', 'info', 'warn', 'error', 'crit'
log_level: 'info'

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

Настройка источников данных

Sagan может получать данные из множества источников. Наиболее распространенные — это локальные файлы (например, /var/log/auth.log) и Syslog (удаленный сбор логов по сети). Настройка источников выполняется в секции log_processors файла sagan.yaml. Каждый процессор отвечает за свой источник.

Lesson image

Вы можете определить несколько процессоров, которые будут работать одновременно. Например, один будет отслеживать изменения в файле, а другой — слушать сетевой порт для приема Syslog-сообщений.

log_processors:
  # Процессор для чтения логов из локального файла
  - type: 'file'
    file_path: '/var/log/auth.log' # Путь к файлу журнала
    tag: 'auth' # Метка для идентификации источника в правилах

  # Процессор для приема Syslog-сообщений по UDP
  - type: 'syslog'
    listen_ip: '0.0.0.0' # Слушать на всех интерфейсах
    listen_port: 514 # Стандартный порт Syslog
    protocol: 'udp' # Используемый протокол (udp или tcp)

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

Интеграция и оптимизация

Эффективность SIEM во многом зависит от ее интеграции с другими инструментами и способности справляться с нагрузкой. Sagan предлагает механизмы для отправки оповещений в различные системы и оптимизации производительности.

Основной способ интеграции — через alert_processors. Они определяют, что делать с событием после того, как для него сработало правило.

Вы можете настроить отправку email, запись в базу данных или отправку данных в системы вроде Elasticsearch. Для этого используются соответствующие процессоры оповещений.

alert_processors:
  # Процессор для отправки оповещений на email
  - type: 'email'
    to: 'admin@example.com'
    from: 'sagan@example.com'
    smtp_server: 'smtp.example.com'
    
  # Процессор для отправки данных в Elasticsearch
  - type: 'elasticsearch'
    es_hosts: ['127.0.0.1:9200'] # Адреса узлов Elasticsearch
    index_prefix: 'sagan' # Префикс для индекса

При работе с большими объемами данных производительность становится критически важной. Один из способов оптимизации Sagan — использование sagan-rules-update для поддержания правил в актуальном состоянии и отключение неиспользуемых правил.

Другой важный аспект — настройка sagan-pcre-jit. Эта утилита предварительно компилирует PCRE (Perl Compatible Regular Expressions), используемые в правилах, в нативный код. Это значительно ускоряет сопоставление с образцом, особенно при высоких потоках событий. Для этого достаточно запустить команду sagan-pcre-jit после обновления правил. Это может снизить нагрузку на процессор на 20-30%.

Для высоконагруженных систем также рекомендуется выносить Sagan и его зависимости (например, базу данных для оповещений или Elasticsearch) на разные серверы, чтобы распределить нагрузку.

Quiz Questions 1/5

Какой файл является основным конфигурационным файлом для Sagan?

Quiz Questions 2/5

В какой секции файла sagan.yaml настраиваются источники данных, такие как локальные файлы или Syslog?

Теперь, когда вы знакомы с ключевыми аспектами настройки Sagan, вы готовы к более сложным сценариям развертывания.