PostgreSQL: настройка источника

Данное руководство описывает процесс настройки сбора и отправки событий СУБД PostrgeSQL в R-Vision SIEM.

Настройка PostgreSQL

В настоящем руководстве рассматривается передача событий с помощью службы rsyslog. Предполагается, что rsyslog на станции с ОС Linux уже установлен.

Настройка журналирования PostgreSQL

Для настройки аудита выберите один из подходящих вариантов: Вариант А (встроенный аудит PostgreSQL) или Вариант Б (универсальный pgaudit).

Вариант А: Настройка встроенного аудита PostgreSQL

  1. В файле postgresql.conf настройте параметры безопасности и вывода:

    log_destination = 'syslog'
    logging_collector = on
    log_min_messages = warning
    log_min_error_statement = error
    log_checkpoints = on
    log_connections = on
    log_disconnections = on
    log_error_verbosity = verbose
    log_line_prefix = '%m %p %u %r '
    log_statement = 'all'
    
    syslog_facility = 'LOCAL0'
    syslog_ident = 'postgres'
    
    syslog_split_messages = off

Вариант Б: Настройка модуля pgaudit

Этот вариант обеспечивает детальный аудит SQL-запросов в формате .csv.

  1. Установите модуль pgaudit (название модуля будет отличаться в зависимости от версии PostgreSQL и ОС):

    yum install -y pgaudit16_14
  2. В конфигурационном файле postgresql.conf отредактируйте параметры:

    log_destination = 'syslog'
    log_connections = on
    log_disconnections = on
    log_line_prefix = '%m %p %u %r '
    log_min_messages = warning
    log_statement = 'NONE'
    
    syslog_facility = 'LOCAL0'
    syslog_ident = 'postgres'
    
    syslog_split_messages = off
    
    # Подключение модуля.
    shared_preload_libraries = 'pgaudit'
    
    pgaudit.log = 'all'
    pgaudit.log_catalog = on
    pgaudit.log_parameter = on
    pgaudit.log_relation = on
  3. Перезапустите сервис PostgreSQL для применения настроек:

    systemctl restart postgresql-14
  4. Только для Варианта Б (pgaudit) включите расширение в базе данных:

    sudo -u postgres psql -c "CREATE EXTENSION pgaudit;"
    sudo -u postgres psql -c "ALTER SYSTEM SET pgaudit.log = 'all';"
    sudo -u postgres psql -c "SELECT pg_reload_conf();"

Отправка событий PostgreSQL

Вариант 1. Настройка через rsyslog

Чтобы настроить отправку событий PostgreSQL:

  1. Создайте файл /etc/rsyslog.d/60-postgres.conf со следующим содержимым:

    if $programname == 'postgres' or $syslogtag == 'postgres' then {
      action(type="omfwd" Target="<target>" Port="<port>" Protocol="<protocol>")
      stop
    }

    Здесь: * <target> — IP-адрес или полное доменное имя (FQDN) коллектора SIEM. * <port> — порт точки входа Syslog в конвейере SIEM. * <protocol> — сетевой протокол: tcp или udp.

  2. Перезапустите службу rsyslog.service с помощью команды:

    systemctl restart rsyslog.service

Вариант 2. Настройка через syslog-ng

  1. Создайте файл /etc/syslog-ng/conf.d/60-postgres.conf со следующим содержимым:

    filter f_postgres { program("postgres"); };
    
    destination d_siem {
        network("<target>" port(<port>) transport("<protocol>") flags(no-multi-line));
    };
    
    log {
        source(s_src);
        filter(f_postgres);
        destination(d_siem);
    };

    Здесь: * <target> — IP-адрес или полное доменное имя (FQDN) коллектора SIEM. * <port> — порт точки входа Syslog в конвейере SIEM. * <protocol> — сетевой протокол: tcp или udp.

  2. Перезапустите службу syslog-ng с помощью команды:

    systemctl restart syslog-ng

Настройка интеграции с R-Vision SIEM

Для настройки сбора событий от источника в R-Vision SIEM выполните следующие шаги:

  1. В веб-интерфейсе R-Vision SIEM перейдите в раздел Ресурсы → Коллекторы и создайте новый конвейер в коллекторе.

  2. Добавьте на конвейер элемент Точка входа со следующими параметрами:

    • Название: введите произвольное, понятное название.

    • Тип точки входа: выберите вариант Syslog.

    • Порт точки входа: введите значение в соответствии с настройками на стороне PostgreSQL.

    • Протокол: выберите вариант в соответствии с настройками на стороне PostgreSQL.

  3. Добавьте на конвейер элемент Нормализатор с правилом PostgreSQL (идентификатор правила: RV-N-189).

  4. Соедините нормализатор с точкой входа.

  5. Добавьте на конвейер элемент Конечная точка типа Хранилище событий.

  6. Соедините конечную точку с нормализатором.

  7. Сохраните и установите конфигурацию конвейера.

Пример конфигурации конвейера:

postgresql pipeline

После настройки передачи событий, если настройка выполнена корректно, в хранилище начнут поступать события PostgreSQL.

Найти события PostgreSQL в хранилище можно по следующему фильтру:

device_product = "postgresql"

postgresql events search

Была ли полезна эта страница?

Обратная связь