Логирование

Логирование сервисов настраивается в подсистеме system logging. Существует возможность экспортировать логи в файл, терминал и на удалённый хост.

Настройки глобального журнала

В ARMA Стена все логи хранятся в бинарном виде. Это необходимо для локального просмотра логов в интерфейсе CLI. По умолчанию для глобальных логов отведено место на диске в размере 10 Гб. После заполнения отведённого места старые логи будут перезаписываться.

Для изменения максимального размера локального хранилища всех журналов необходимо ввести следующую команду:

set system logging global max-size <size>

где <size> – размер хранилища в гигабайтах. Возможно указание значения в диапазоне от «1» до «100».

Для просмотра фактического объема, занимаемого всеми журналами, необходимо ввести следующую команду:

admin@ngfwos:~$ show logging global size

Для очистки всех журналов необходимо ввести следующую команду:

admin@ngfwos:~$ clear logging

Просмотр глобального журнала

Для просмотра всех событий системы в локальном консольном интерфейсе необходимо ввести команду:

admin@ngfwos:~$ show logging

Для вывода событий отфильтрованных по сервису следует ввести команду:

admin@ngfwos:~$ show logging <service-name>

где <service-name> – имя сервиса. Список сервисов, используемых для фильтрации событий, указан в таблице «Сервисы».

Таблица «Сервисы»

Сервис

Сервис

Сервис

Сервис

arma-endpoint

conntrack

conntrack-sync

console-server

dhcp

dhcpv6

dns

firewall

https-api

https

idps

ipoe-server

kernel

lldp

login

nat

ntp

pppoe

pppoe-server

snmp

ssh

systemd

users

vpn

vrrp

webproxy

date

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

admin@ngfwos:~$ show logging <service-name|all> class <class-name|all> [user <user-name|all>] [date <date|all>] [time <time|all>]

где:

  • <service-name|all> - имя сервиса. Список сервисов, используемых для фильтрации событий, указан в таблице «Сервисы». Если указано значение «all», фильтрация по сервису не осуществляется;

  • <class-name|all> - имя класса. Если указано значение «all», фильтрация по классу не осуществляется. Для инвертирования значения используется знак «!»;

  • <user-name|all> - имя пользователя. Если указано значение «all», фильтрация по имени пользователя не осуществляется. Для инвертирования значения используется знак «!»;

  • <date|all> - дата события. Возможно указать значение в формате:

    • «yyyy-mm-dd» - выводятся записи лога, строго соответствующие указанной дате;

    • «yyyy-mm» - выводятся записи лога за каждый день указанного месяца и года;

    • «yyyy-mm-dd/yyyy-mm-dd» - выводятся записи лога с первой по вторую даты включительно;

    • «all» - фильтрация по дате не осуществляется;

  • <time|all> - время события. Возможно указать значение в формате:

    • «hh24:mm:ss» - выводятся записи лога, строго соответствующие указанному времени;

    • «hh24:mm» - выводятся записи лога, соответствующие указанному часу и минуте;

    • «hh» - выводятся записи лога, соответствующие указанному часу;

    • «hh24:mm:ss/hh24:mm:ss» - выводятся записи лога в указанный промежуток времени, включая пограничные метки времени;

    • «all» - фильтрация по времени не осуществляется.

Для всех сервисов, кроме «firewall», «kernel», «nat» и «users», возможно дополнительно указать уровень события:

admin@ngfwos:~$ show logging <service-name> level <event_levels>

где <event_levels> - имя уровня события. Возможно указать значения, представленные в таблице «Уровни событий»:

Таблица «Уровни событий»

Уровень событий

Уровень событий

alert

critical

debug

emergency

error

informational

notice

warning

В случае фильтрации событий по сервису NAT возможно дополнительно указать направление трафика:

admin@ngfwos:~$ show logging nat <source|static|destination>

Для сервиса VPN допустимо указать дополнительные фильтры:

admin@ngfwos:~$ show logging vpn [<filter>] [level <event_levels>]

где:

  • <filter> - имя фильтра. Возможно указать следующие значения:

    • «ipsec»;

    • «l2tp»;

    • «openconnect»;

    • «openvpn»;

    • «pptp»;

    • «sstp»;

    • «wireguard»;

  • <event_levels> - уровень события. Возможно ввести значение указанное в таблице «Уровни событий».

Для сервиса DNS предусмотрены дополнительные фильтры «dynamic» и «forwarding», которые возможно классифицировать по уровням событий, приведённых в таблице «Уровни событий»:

admin@ngfwos:~$ show logging dns <dynamic|forwarding> [level <event_levels>]

Для отслеживания актуальных событий системы в локальном консольном интерфейсе необходимо ввести команду:

admin@ngfwos:~$ monitor log [<filter_name>]

где <filter_name> – фильтр событий глобального журнала. Список фильтров указан в таблице «Фильтры глобального журнала».

Таблица «Фильтры глобального журнала»

Фильтр

Фильтр

Фильтр

Фильтр

certbot

conntrack-sync

console-server

container

dhcp

dhcpv6

dns

flow-accounting

idps

ipoe-server

ipsec

kernel

l2tp

macsec

mdns

ndp-proxy

nhrp

ntp

openconnect

openvpn

pppoe

pppoe-server

pptp

protocol

router-advert

snmp

ssh

sstp

sstpc

systemd

vpn

vrrp

webproxy

Экспорт журнала

Экспорт журнала в файл

Для экспорта журналов в файл необходимо ввести следующую команду:

set system logging file <name> log <service-name>

где:

  • <name> – имя файла;

  • <service-name> – сервис, указываемый для фильтрации событий (см. Таблица «Сервисы»).

Для всех сервисов, кроме «firewall», «kernel», «nat» и «users», возможно дополнительно установить уровни событий, указанные в таблице «Уровни событий».

Пример команды для экспорта журнала в файл «Log1» с фильтрацией событий сервиса «ssh» по уровню «alert»:

set system logging file Log1 log ssh level alert

В случае настройки экспорта журнала действий пользователей «users» возможно дополнительно указать класс пользователей или имя пользователя:

set system logging file <name> log users class <name_class>
set system logging file <name> log users name <user>

где:

  • <name_class> – класс пользователей;

  • <user> – имя пользователя.

В параметрах <name_class> и <user> допустимо указать несколько значений, разделенных запятыми без пробелов. Для инвертирования значения или значений необходимо использовать знак «!».

В случае настройки экспорта журнала NAT возможно дополнительно указать направление трафика:

set system logging file <name> log nat destination
set system logging file <name> log nat source
set system logging file <name> log nat static

Примечание

В случае настройки по направлениям «destination» и «static», будет выполняться логирование только первого пакета.

Для журнала VPN предусмотрены следующие дополнительные фильтры: «ipsec», «12tp», «openconnect», «openvpn», «pptp», «sstp», «wireguard». Фильтры возможно классифицировать в зависимости от уровня событий, указанным в таблице «Уровни событий», например:

set system logging file ipsec_alert log vpn sstp level alert

где:

  • «ipsec_alert» – имя файла, в который будут записываться все события соответствующие уровню alert протокола sstp;

  • «vpn sstp» – применённый фильтр событий;

  • «alert» – уровень логирования.

Для журнала DNS предусмотрены дополнительные фильтры «dynamic» и «forwarding», которые возможно классифицировать по уровням событий, указанным в таблице «Уровни событий»).

Ротация журналов

Ротация журналов возможна по количеству и размеру файлов.

Для настройки ротации по количеству файлов необходимо ввести следующую команду:

set system logging file <name> rotation file <number>

где <number> – количество файлов. По умолчанию используется значение «5».

Для настройки ротации по размеру файлов необходимо ввести следующую команду:

set system logging file <name> rotation size <number>

где <number> – размер файлов в мегабайтах. По умолчанию используется значение «5».

Экспорт на удалённый сервер

ARMA Стена позволяет выполнять экспорт событий на удалённый сервер, в том числе сервер Syslog.

Для передачи событий на удалённый сервер необходимо в режиме конфигурирования ввести следующую команду:

set system logging host <hostname> log <service-name>

где:

  • <hostname> – доменное имя (FQDN) или IPv4-адрес удалённого сервера;

  • <service-name> – сервис для отправки (см. Таблица «Сервисы»).

Все дополнительные фильтры сервисов, которые возможно использовать при экспорте журналов на удалённый сервер, описаны в разделе «Экспорт журнала в файл».

Команды для настройки дополнительных параметров отправки событий на удалённый сервер:

set system logging host <hostname> protocol <protocol>
set system logging host <hostname> port <portnumber>
set system logging host <hostname> format <RFC3164|CEF>

где:

  • <protocol> – тип транспортного протокола. Возможно указание значения «tcp» или «udp». По умолчанию используется протокол «tcp»;

  • <portnumber> – порт удалённого сервера. По умолчанию используется порт «514».

  • <RFC3164|CEF> - формат отправки событий на удалённый сервер. Возможно указать значение «RFC3164» или «CEF».

Для экспорта событий на удалённый сервер с шифрованием трафика необходимо в режиме конфигурирования ввести следующие команды:

set system logging host <hostname> encryption yes
set system logging host <hostname> protocol tcp
set system logging host <hostname> port 6514

В режиме шифрования рекомендуется использовать порт «6514».

Примечание

Шифрование трафика осуществляется исключительно по протоколу «tcp».

Для версий rsyslog младше 8.19.0, возможно, потребуется импортировать корневой сертификат (CA) в ARMA Стена. Для этого необходимо выполнить следующие действия:

  1. Скопировать корневой сертификат (CA) rsyslog в ARMA Стену в каталог «/config/».

  2. Ввести следующую команду в режиме эксплуатации:

admin@ngfwos:~$ import pki certificate <ca_name> file </config/ca.pem>

где:

  • <ca_name> - имя корневого сертификата;

  • </config/ca.pem> - место расположения скопированного корневого сертификата. Каталог указан в качестве примера.

  1. После выполнения команды программа сгенерирует команду, которую необходимо ввести в режиме конфигурации, а затем сохранить изменения:

admin@ngfwos:~$ import pki certificate ca_test3 file /home/admin/gnutls/ca.pem
You are not in configure mode, commands to install manually from configure mode:
set pki certificate ca_test3 certificate 'MIICYjCCAc2gAw......o='

admin@ngfwos:~$ conf
[edit]

admin@ngfwos# set pki certificate ca_test3 certificate 'MIICYjCCAc2gAw......o='
[edit]

admin@ngfwos# commit
[edit]
admin@ngfwos# save
[edit]
admin@ngfwos#
  1. Ввести команду для сохранения корневого сертификата в конфигурационный файл:

set system logging global ssl ca-certificate <ca_name>
  1. Сохранить изменения:

admin@ngfwos# commit
[edit]
admin@ngfwos# save
[edit]
admin@ngfwos#

Необходимо настроить сервер rsyslog для приема шифрованного трафика от ARMA Стена:

...
global(
DefaultNetstreamDriver="gtls"
DefaultNetstreamDriverCAFile="/path/to/contrib/gnutls/ca.pem"
DefaultNetstreamDriverCertFile="/path/to/contrib/gnutls/cert.pem"
DefaultNetstreamDriverKeyFile="/path/to/contrib/gnutls/key.pem"
)

module(
load="imtcp"
StreamDriver.Name="gtls"
StreamDriver.Mode="1"
StreamDriver.Authmode="anon"
)

input(
type="imtcp"
port="6514"
)
...

На сервере rsyslog требуется установить пакет rsyslog-gnutls. Проверить наличие пакета возможно с помощью команды:

dpkg -l | grep rsyslog-gnutls

Если пакет не установлен, его возможно установить с помощью команды:

sudo apt-get install rsyslog-gnutls

Экспорт в ARMA Management Console

В системе ARMA Стена необходимо создать и установить API ключ для выполнения HTTP-запросов. API-ключ - это отдельный пароль для локальных УЗ в системе ARMA Стена, использующийся для выполнения HTTP-запросов. Данный ключ предоставляет доступ к системе ARMA Стена посредством ARMA Management Console (МС) начиная с версии 1.8 и выше.

Для создания и установки API ключа необходимо ввести следующую команду в конфигурационном режиме:

set service https api keys user <УЗ> key <key>

где:

  • <УЗ> - имя локальной учётной записи в системе ARMA Стена;

  • <key> - пользовательский пароль (API-ключ) для локальной учётной записи <УЗ>. Данные параметры будут использоваться для взаимодействия с МС.

Примечание

При использовании API-ключа, созданного для учётной записи с ограниченными привилегиями в системе ARMA Стена (см. раздел «Назначение прав доступа пользовательским учётным записям» руководства администратора ARMA Стена), доступ к функциональным возможностям веб-интерфейса ARMA Стена в МС будет предоставлен в соответствии с уровнем прав, назначенных данной учётной записи. В случаях, когда доступ к определенному разделу отсутствует, в нижнем левом углу экрана будет отображаться сообщение об ошибке: «Request failed with status code 500».

Примечание

Рекомендуется создать API-ключ для учётной записи, относящейся к классу «NGFW_Administrators», либо использовать встроенную учётную запись «admin». В случае если при инсталляции системы ARMA Стена для учётной записи «admin» был создан API-ключ, и данная учётная запись будет использоваться для подключения к МС, выполнять команду «set service https api keys …» не требуется. В этом случае будет использоваться ключ, указанный в процессе инсталляции.

Применить настройки командой commit:

admin@ngfwos# commit

WARNING: No certificate specified, using build-in self-signed
certificates. Do not use them in a production environment!

[ service https ]

WARNING: No certificate specified, using build-in self-signed
certificates. Do not use them in a production environment!

Сохранить конфигурацию командой save:

admin@ngfwos# save

Настройка ARMA Management Console

Для подключения ARMA Стена к МС необходимо выполнить следующие шаги:

  1. Авторизоваться в веб-интерфейсе МС.

  2. Выбрать раздел меню «Администрирование», затем – подраздел «Источники» (см. Рисунок – Источники).

../../../_images/ngfw.rp.logging_3.3.1.1.png

Рисунок – Источники

  1. В панели инструментов нажать кнопку «+ Добавить».

  2. В открывшейся карточке «Добавление источника» выбрать тип источника «NGFW» и указать значения следующих параметров (см. Рисунок – Добавление нового источника событий «NGFW»):

    • «Наименование» – отображаемое в МС имя устройства. Параметр может содержать только латинские и кириллические буквы, пробел, спецсимволы («.», «_», «-») и не может превышать 128 символов;

    • «IP-адрес» – IP-адрес подключаемой ARMA Стена;

    • «Логин пользователя» – ввести имя учётной записи (<УЗ>), используемой для создания API-ключа в системе ARMA Стена;

    • «API-Ключ» – ввести пароль (<key>), указанный при создании API-ключа для учётной записи (<УЗ>) в ARMA Стена;

    • «Порт» – значение порта входящих логов. Указываются порты в диапазоне от «1500» до «65535». Значение должно быть уникальным, не заданным ранее в источниках МС.

    При необходимости заполнить поле «Описание» дополнительной информацией об устройстве. Поле может содержать не более 250 символов.

    ../../../_images/ngfw.rp.logging_3.3.1.2.png

    Рисунок – Добавление нового источника событий «NGFW»

После сохранения настроек в столбе «Статус» таблицы «Источники» отобразится значение «Подключено». При укзании неверных учётных данных МС отобразит статус «Не авторизован». Статус «Ошибка» отображается, если произошла ошибка, которая может быть связана с аппаратным или программным обеспечением источника «NGFW», а также при использовании данных несуществующей локальной учётной записи в ARMA Стена.

Настройка ARMA Стена

Для передачи событий в МС необходимо выполнить следующие команды в конфигурационном режиме:

  1. Указать IP-адрес и порт МС:

    set system logging host <address> port <portnumber>
    

    где:

    • <address> – IPv4-адрес МС;

    • <portnumber> – номер порта, указанный в МС при добавлении источника «NGFW».

  2. Установить CEF формат отправки событий:

    set system logging host <address> format CEF
    
  3. Указать транспортный протокол UDP для отправки событий в МС:

    set system logging host <address> protocol udp
    
  4. Указать сервисы, события которых будут отправлены в МС:

    set system logging host <address> log <service-name>
    

    где <service-name> - имя сервиса, события которого будут передоваться в МС. Возможно указать следующие сервисы (см. Таблица «Сервисы»):

    Таблица «Сервисы»

    Сервис

    Сервис

    Сервис

    Сервис

    arma-endpoint

    conntrack

    conntrack-sync

    console-server

    dhcp

    dhcpv6

    dns

    firewall

    https-api

    https

    idps

    ipoe-server

    kernel

    lldp

    login

    nat

    ntp

    pppoe

    pppoe-server

    snmp

    ssh

    systemd

    users

    vpn

    vrrp

    webproxy

    date

    Дополнительные фильтры сервисов, которые возможно использовать при экспорте журналов в МС, описаны в разделе «Экспорт журнала в файл».

  5. Применить настройки - «commit» и сохранить конфигурацию - «save».

Экспорт в терминал пользователя

Для настройки экспорта журналов в терминал пользователя необходимо ввести следующую команду:

set system logging user-terminal <user-name> log <service-name>

где:

Все дополнительные фильтры сервисов, которые возможно использовать при экспорте журналов в терминал пользователя, описаны в разделе «Экспорт журнала в файл».