Nemesida WAF можно интегрировать с внешними SIEM-системами. Для этого первым этапом настраиваем, с помощью Rsyslog, сбор событий со всех серверов, где установлен Nemesida WAF.

Rsyslog – это мощная, безопасная и высокопроизводительная система обработки логов, принимающая данные из различных источников (систем и приложений). Работает по модели «клиент-серевер», поэтому ее можно настроить как клиент или сервер для централизованного ведения журналов других серверов, сетевых устройств и удаленных приложений. Сегодня мы настроим взаимодействие двух серверов (клиента и сервера) на централизованное хранение логов модулей Nemesida WAF.

Сервер с IP-адресом 10.0.0.1 используется для примера в качестве сервера централизованного хранения событий.

Настройка сервера централизованного сбора событий

Чтобы настроить rsyslog как сетевой централизованный сервер ведения логов, нужно в файле /etc/rsyslog.conf установить протоколы (UDP, TCP или оба), которые будут использоваться для приема удаленных сообщений, системных логов, а также прослушиваемые порты.
Для прослушивания UDP:

module(load="imudp")
input(type="imudp" port="514")

Для прослушивания TCP:

module(load="imtcp")
input(type="imtcp" port="514")

Указываем расположение файла, куда будут сохраняться события, собранные с удаленного сервера:

$template RemoteLogs,"/var/log/rsyslog/%HOSTNAME%/%PROGRAMNAME%.log"
local6.* ?RemoteLogs
& ~

Параметры %HOSTNAME% и %PROGRAMNAME%.log позволяют создавать директории с логами под каждый удаленный сервер, с которого поступают события.

Настройка удаленного сервера отправки данных

В файле /etc/rsyslog.confRsyslog во время работы.
Для прослушивания UDP:

module(load="imudp")
input(type="imudp" port="514")

Для прослушивания TCP:

module(load="imtcp")
input(type="imtcp" port="514")

Nginx

Для сбора событий с уровнями CRITICAL и ALERT из журналов ошибок Nginx (файлы /var/log/nginx/*error.log) добавляем следующие строки в файл виртуального хоста Nginx:

server {
...
error_log syslog:server=10.0.0.1:514,facility=local6,tag=nginx;
...
}

В Nginx, для журналов error.log, не поддерживается вывод событий в syslog с необходимым уровнем приоритета, можно указать только пороговый, начиная с которого события будут передаваться в syslog. По умолчанию установлен уровень ERROR.

Nemesida AI MLA

Для модуля Nemesida AI MLA создаем конфигурационный файл /etc/rsyslog.d/nwaf/mla.conf, куда добавляем следующие строки:

$ModLoad imfile
$InputFileName /var/log/nwaf/mla.log
$InputFileTag mla:
$InputFileStateFile mla_log
$InputFileSeverity error
$InputFileFacility local6
$InputRunFileMonitor
10.0.0.1

local6.* @@10.0.0.1:514

Nemesida WAF Update

Для сервиса Nemesida WAF Update создаем конфигурационный файл /etc/rsyslog.d/nwaf/update.conf, куда добавляем следующие строки:

$ModLoad imfile
$InputFileName /var/log/nwaf/nwaf_update.log
$InputFileTag update:
$InputFileStateFile update_log
$InputFileSeverity error
$InputFileFacility local6
$InputRunFileMonitor
10.0.0.1

local6.* @@10.0.0.1:514

Nemesida AI MLC

Для модуля Nemesida AI MLC создаем конфигурационный файл /etc/rsyslog.d/nwaf/mlc.conf, куда добавляем следующие строки:

$ModLoad imfile
$InputFileName /var/log/nwaf/mlc.log
$InputFileTag mlc:
$InputFileStateFile mlc_log
$InputFileSeverity error
$InputFileFacility local6
$InputRunFileMonitor
10.0.0.1

local6.* @@10.0.0.1:514

Nemesida WAF Scanner

Для модуля Nemesida WAF Scanner создаем конфигурационный файл /etc/rsyslog.d/nwaf/nws.conf, куда добавляем следующие строки:

$ModLoad imfile
$InputFileName /var/log/nwaf/nws.log
$InputFileTag nws:
$InputFileStateFile nws_log
$InputFileSeverity error
$InputFileFacility local6
$InputRunFileMonitor
10.0.0.1

local6.* @@10.0.0.1:514

Все созданные файлы необходимо задействовать в основном конфигурационном файле /etc/rsyslog.conf:

$IncludeConfig /etc/rsyslog.d/nwaf/*.conf

Для настройки отправки событий на удаленный сервер необходимо указать IP-адрес и порт назначения, используя конструкцию: @@10.0.0.1:514.