MySQL

Настройка MySQL

Установка плагина для ведения журнала аудита

Для настройки аудита MySQL установите плагин для ведения журнала аудита, разработанный компанией Percona. Он поддерживает полный аудит в различных форматах, таких как XML, JSON и CSV, а также регистрирует события, связанные с аутентификацией.

Плагин поддерживает только MySQL версии 8.0 и выше.

Чтобы установить плагин аудита Percona, выполните следующие действия:

  1. Скачайте архив с плагином, выполнив следующую команду:

    wget https://downloads.percona.com/downloads/Percona-Server-8.0/Percona-Server-8.0.36-28/binary/tarball/Percona-Server-8.0.36-28-Linux.x86_64.glibc2.35.tar.gz
  2. Распакуйте архив с плагином:

    tar -xvf Percona-Server-8.0.36-28-Linux.x86_64.glibc2.35.tar.gz --wildcards --no-anchored '*audit_log.so*'
  3. Получите путь к директории, в которой располагаются плагины MySQL:

    1. Войдите в консоль MySQL:

      mysql -u root -p -h localhost
    2. Выполните следующий запрос:

      SHOW GLOBAL VARIABLES LIKE 'plugin_dir';
      Пример вывода запроса пути к директории плагинов
      +---------------+--------------------------+
      | Variable_name | Value                    |
      +---------------+--------------------------+
      | plugin_dir    | /usr/lib64/mysql/plugin/ |
      +---------------+--------------------------+
      1 row in set (0.00 sec)

      В примере директория плагинов — /usr/lib64/mysql/plugin/.

  4. Скопируйте плагин в директорию плагинов:

    cp Percona-Server-8.0.36-28-Linux.x86_64.glibc2.35/lib/plugin/audit_log.so <plugin-dir>

    Здесь:

    • <plugin-dir> — директория плагинов, полученная на шаге 3.

  5. Установите плагин:

    1. Войдите в консоль MySQL:

      mysql -u root -p -h localhost
    2. Выполните следующий запрос:

      INSTALL PLUGIN audit_log SONAME 'audit_log.so';

      Если плагин установлен успешно, отобразится сообщение:

      Query OK, 0 rows affected (0.02 sec)
  6. Добавьте настройки плагина в раздел _[mysqld]_ в файле my.cnf:

    [mysqld]
    audit_log_format = JSON
    audit_log_policy = ALL
    audit_log_handler = SYSLOG
  7. Перезапустите сервер MySQL:

    systemctl restart mysqld

Настройка службы rsyslog

Чтобы настроить службу rsyslog, выполните следующие действия:

  1. Создайте файл конфигурации rsyslog:

    sudo nano /etc/rsyslog.d/10-siem.conf
  2. Добавьте в созданный файл следующее правило:

    if $syslogtag == 'mysqld' or $syslogtag == 'percona-audit' then {
       action(type="omfwd" target="<target>" port="514" protocol="tcp")
       stop
    }

    Здесь:

    • <target> — IP-адрес или полное доменное имя (FQDN) централизованного syslog-сервера, с которого будет осуществляться отправка сообщений в SIEM.

  3. Перезапустите rsyslog для применения изменений:

    sudo systemctl restart rsyslog

Настройка syslog-сервера

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

  1. Откройте конфигурационный файл rsyslog (/etc/rsyslog.conf или /etc/rsyslog.d/).

  2. Добавьте в файл правило обработки CEF-сообщений:

    if $syslogtag == 'mysqld' or $syslogtag == 'percona-audit' then {
      action(type="omfwd" Target="<target>" Port="<port>" Protocol="tcp")
      stop
    }

    Здесь:

    • <target> — IP-адрес или полное доменное имя (FQDN) централизованного syslog-сервера, с которого будет осуществляться отправка сообщений в SIEM.

    • <port> — порт точки входа Syslog на конвейере SIEM — любой свободный порт в диапазоне 30000—​32767.

  3. Перезапустите rsyslog для применения изменений:

    sudo systemctl restart rsyslog

Настройка в R-Vision SIEM

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

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

    • Название: введите название точки входа.

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

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

    • Протокол: выберите вариант TCP.

  2. Добавьте на конвейер элемент Нормализатор с правилами Oracle MySQL (идентификатор правила: RV-N-82) и Oracle MySQL (идентификатор правила: RV-N-83).

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

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

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

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

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

oracle mysql pipeline

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

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

dproduct = "MySQL"

oracle mysql storage

Типы обрабатываемых событий

Событиями аудита являются выполняемые команды MySQL. С их перечнем можно ознакомиться в официальной документации MySQL.