Учёт сетевого трафика

ARMA Стена предоставляет механизм по сбору статистики и предоставлению отчётов о сетевом трафике как IPv4, так и IPv6. Данные учёта могут быть выведены как локально, так и экспортированы на удалённый сервер сбора и анализа данных.

ARMA Стена поддерживает учёт данных в формате NetFlow (версии 5, 9 и 10/IPFIX) и sFlow.

NetFlow

NetFlow предоставляет администраторам доступ к информации о потоках IP в сети передачи данных. Поток данных определяется как однонаправленная последовательность пакетов с неким общим набором свойств, проходящих через сетевое устройство.

Для сбора информации о трафике по протоколу NetFlow требуются следующие компоненты:

  • экспортер – собирает статистику по проходящему через него трафику, объединяет пакеты в потоки и экспортирует записи потоков в один или несколько коллекторов (сборщиков) потоков;

  • коллектор – собирает получаемые от экспортёра данные и помещает их в хранилище;

  • анализатор – анализирует собранные коллектором данные и формирует пригодные для чтения человеком отчёты.

Для сетевых протоколов без установления соединения таких как ICMP и UDP, сетевой поток считается завершённым если в течение указанного интервала ожидания не принят ни один пакет, относящийся к данному потоку.

Включение учёта сетевого трафика осуществляется отдельно для каждого интерфейса. Все пакеты, полученные на интерфейсе, будут учтены и представлены в статистических данных для интерфейса. При этом следует учитывать, что просмотр всех пакетов потребует значительных вычислительных ресурсов. В качестве альтернативы, позволяющей снизить нагрузку на систему, возможно учитывать каждый n-ный пакет (n – частота выборки), и производить оценку на основе выбранных пакетов. Это позволит снизить потребляемые ресурсы по сравнению с учётом всех пакетов, при этом обеспечивая приемлемую точность.

Примечание

Использование технологии NetFlow в ARMA Стена с большим потоком трафика может привести к повышенной нагрузке на центральный процессор, что приводит к снижению производительности устройства. В этой ситуации рекомендуется использовать технологию sFlow.

Команды настройки NetFlow

  1. Указание интерфейса, для которого производится учёт входящего трафика:

set system flow-accounting interface <interface>

где <interface> – интерфейс, для которого осуществляется учёт входящего трафика. Интерфейс должен быть заранее настроен. Возможно настроить несколько интерфейсов, которые будут участвовать в учёте входящего трафика.

  1. Включить учёт исходящего трафика:

set system flow-accounting enable-egress
  1. Отключить использование локальной таблицы во внутренней памяти:

set system flow-accounting disable-imt

По умолчанию записанные потоки сохраняются во внутренней памяти и могут быть перечислены с помощью команды CLI.

  1. Увеличить буфер обмена данными между основным процессом и плагином:

set system flow-accounting buffer-size <size>

где <size> – размер буфера в мебибайтах. Возможно указать значение в диапазоне от «0» до «4294967295». По умолчанию используется значение «10».

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

set system flow-accounting syslog-facility <facility>

где <facility> – источник сообщений, от имени которого сообщения, связанные с учётом трафика, будут регистрироваться в журнале. Возможно указать следующие значения:

  • «auth» – проверка подлинности и авторизация;

  • «authpriv» – несистемная авторизация;

  • «cron» – служба cron;

  • «daemon» – системные службы;

  • «kern» – ядро;

  • «lpr» – буфер построчного принтера;

  • «mail» – подсистема электронной почты;

  • «mark» – сообщения mark;

  • «news» – подсистема USENET;

  • «protocols» – протоколы маршрутизации (local7);

  • «security» – подсистема безопасности;

  • «syslog» – системная регистрация;

  • «user» – прикладные процессы;

  • «uucp» – подсистема UUCPP;

  • «local0» – локальный сервис 0;

  • «local1» – локальный сервис 1;

  • «local2» – локальный сервис 2;

  • «local3» – локальный сервис 3;

  • «local4» – локальный сервис 4;

  • «local5» – локальный сервис 5;

  • «local6» – локальный сервис 6;

  • «local7» – локальный сервис 7;

  • «all» – все типы источников сообщений.

  1. Указание формата NetFlow, в котором будут экспортированы данные учёта:

set system flow-accounting netflow version <version>

где <version> – номер версии NetFlow, в формате которой будут экспортированы данные учёта. Допускается указать следующие значения: «5», «9», «10». По умолчанию используется значение «9».

  1. Указание сервера сбора данных об учёте трафика (коллектора) для экспорта данных NetFlow:

set system flow-accounting netflow server <address> port <number>

где:

  • <address> – IP-адрес коллектора для экспорта данных NetFlow. Формат ввода IP-адреса: <x.x.x.x> – для IPv4, <h:h:h:h:h:h:h:h> – для IPv6;

  • <number> – порт, на котором коллектор NetFlow принимает отчёты. Допустимые значения в диапазоне от «1025» до «65535».

  1. Указание IP-адреса источника пакетов NetFlow:

set system flow-accounting netflow source-ip <address>

где <address> – IP-адрес источника пакетов NetFlow. Формат ввода IP-адреса: <x.x.x.x> – для IPv4, <h:h:h:h:h:h:h:h> – для IPv6.

  1. Указание идентификатора системы, который будет включён в данные NetFlow:

set system flow-accounting netflow engine-id <id>

где <id> – идентификатор системы, который указывается в данных NetFlow, позволяющий идентифицировать маршрутизатор, отправивший отчёт. Возможно указать следующие значения:

  • для NetFlow v5 – допустимые значения в диапазоне от «0» до «255». Допускается указать множественное значение разделённое знаком «:» (0-255:0-255);

  • для NetFlow v9/IPFIX – допустимые значения в диапазоне от «0» до «4294967295».

  1. Указание частоты регистрации событий для NetFlow, с которой сетевые пакеты будут учитываться в статистике:

set system flow-accounting netflow sampling-rate <rate>

где <rate> – частота, с которой будут отбираться пакеты. Учитывается каждый n-ный пакет, где n – значение sampling-rate, настроенное для узла. Допустимые значения в диапазоне от «0» до «4294967295». По умолчанию используется значение «1».

  1. Указание интервала, через который будут отправляться отчёты коллектору данных NetFlow:

set system flow-accounting netflow timeout expiry-interval <interval>

где <interval> – интервал времени, в секундах, через который будут отправляться отчёты коллектору NetFlow. Возможно указать значение в диапазоне от «0» до «2147483647». По умолчанию используется значение «60».

  1. Указание тайм-аута сетевого потока для трафика IP:

set system flow-accounting netflow timeout flow-generic <timeout>

где <timeout> – тайм-аут для сетевого потока, в секундах, для общего трафика IP. Действует для трафика IP за исключением трафика протоколов TCP, UDP и ICMP. Возможно указать значение в диапазоне от «0» до «2147483647».

  1. Указание тайм-аута сетевого потока для трафика ICMP:

set system flow-accounting netflow timeout flow-generic <timeout>

где <timeout> – тайм-аут сетевого потока, в секундах, для трафика ICMP. Возможно указать значение в диапазоне от «0» до «2147483647».

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

set system flow-accounting netflow timeout max-active-life <interval>

где <interval> – интервал времени, в секундах, определяющий максимальное время учёта трафика, относящегося к сетевому потоку любого типа. Возможно указать значение в диапазоне от «0» до «2147483647».

  1. Указание тайм-аута сетевого потока TCP после получения пакета TCP с флагом FIN:

set system flow-accounting netflow timeout tcp-fin <timeout>

где <timeout> – тайм-аут сетевого потока, в секундах, после получения пакета TCP с флагом FIN. Возможно указать значение в диапазоне от «0» до «2147483647».

  1. Указание тайм-аута сетевого потока TCP:

set system flow-accounting netflow timeout tcp-generic <timeout>

где <timeout> – тайм-аут для потока TCP, в секундах. Возможно указать значение в диапазоне от «0» до «2147483647».

  1. Указание тайм-аута сетевого потока TCP после получения пакета TCP с флагом RST:

set system flow-accounting netflow timeout tcp-rst <timeout>

где <timeout> – тайм-аут сетевого потока, в секундах, после получения пакета TCP RST. Возможно указать значение в диапазоне от «0» до «2147483647».

  1. Указание тайм-аута сетевого потока для трафика UDP:

set system flow-accounting netflow timeout udp <timeout>

где <timeout> – тайм-аут сетевого потока для трафика UDP, в секундах. Возможно указать значение в диапазоне от «0» до «2147483647».

  1. Указание максимального количества потоков, отслеживаемых одновременно:

set system flow-accounting netflow max-flows <number>

где <number> – задаёт максимальное количество потоков системы NetFlow. Возможно указать значение в диапазоне от «0» до «4294967295».

  1. Вывести информацию об учёте потока для данного интерфейса:

admin@ngfwos:~$ show flow-accounting interface <ethN>

где <ethN> – имя интерфейса.

  1. Вывести информацию об учёте потока для данного интерфейса только для определённого хоста:

admin@ngfwos:~$ show flow-accounting interface <ethN> host <address>

где <address> – IP-адреса в формате: <x.x.x.x> – для IPv4, <h:h:h:h:h:h:h:h> – для IPv6.

Пример настройки NetFlow

В качестве примера для настройки NetFlow будет использоваться схема стенда, представленная на рисунке (см. Рисунок – Схема стенда для настройки NetFlow). На ПК «NetFlow collector» установлена ОС «Debian 12».

../../../../../_images/ngfw.r.cli.flow-accounting_1.2.1.png

Рисунок – Схема стенда для настройки NetFlow

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

set firewall group interface-group WAN interface eth0
set interfaces ethernet eth0 address dhcp
set interfaces ethernet eth1 address 192.168.1.1/24
set interfaces ethernet eth2 address 10.0.0.1/24
set nat source rule 10 outbound-interface group WAN
set nat source rule 10 translation address masquerade
commit
save

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

set system flow-accounting enable-egress
set system flow-accounting interface eth2
set system flow-accounting netflow sampling-rate 1
set system flow-accounting netflow server 192.168.1.100 port 9001
set system flow-accounting netflow source-address 192.168.1.1
commit
save

На ПК «NetFlow collector» для установки и настройки коллектора необходимо выполнить следующие действия:

  1. Ввести следующие команды:

sudo apt install wget -y
wget http://apt.ntop.org/buster/all/apt-ntop.deb
sudo dpkg -i apt-ntop.deb
sudo apt update -y
sudo apt install ntopng pfring-dkms nprobe n2disk cento -y
sudo nano /etc/ntopng/ntopng.conf
  1. Указать в файле конфигурации «ntopng.conf» следующие строки:

-i=tcp://127.0.0.1:5001
--local-networks="10.0.0.0/8"

Сохранить изменения в файле.

  1. Ввести следующие команды:

sudo systemctl restart ntopng
sudo nano /etc/nprobe/nprobe.conf
  1. Указать в файле конфигурации «nprobe.conf» следующие строки:

--zmq="tcp://*5001"
-T="@NTOPNG@"
-i=none
-n=127.0.0.1:5001
--collector-port=9001

Сохранить изменения в файле.

  1. Ввести следующую команду:

sudo systemctl restart nprobe

Проверка настройки NetFlow

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

  1. На ПК «Client» в веб-браузере перейти к каким-либо ресурсам.

  2. На ПК «NetFlow collector» в веб-интерфейсе «ntopng» перейти по адресу «127.0.0.1:3000» и ознакомиться с появившейся информацией (см. Рисунок – Проверка настройки NetFlow).

Примечание

Отправка данных NetFlow может происходить с задержкой.

../../../../../_images/ngfw.r.cli.flow-accounting_1.2.1.1.png

Рисунок – Проверка настройки NetFlow

sFlow

Система мониторинга sFlow включает следующие компоненты:

  • агент – обеспечивает интерфейс для настройки измерительного процесса, связанного с источником данных на устройстве, отвечает за поддержку сеансов измерения с коллекторами sFlow, собирает учётные данные в дейтаграммы sFlow для передачи коллекторам;

  • коллектор – получает дейтаграммы sFlow от одного или множества агентов sFlow.

Команды настройки sFlow

  1. Указание IP-адреса агента sFlow:

set system flow-accounting sflow agent-address <address>

где <address> – IP-адрес агента sFlow, который будет указан в пакетах, отправляемых коллектору sFlow. Возможно указать следующие значения:

  • auto – автоматически выбирается IP-адрес одного из настроенных интерфейсов;

  • <x.x.x.x> – IPv4-адрес.

  1. Указание частоты выборки для статистики sFlow:

set system flow-accounting sflow sampling-rate <rate>

где <rate> – частота, с которой будут отбираться пакеты. Учитывается каждый n-ный пакет, где n – значение sampling-rate, настроенное для узла. Допустимые значения в диапазоне от «0» до «4294967295».

  1. Указание адреса коллектора sFlow для экспорта данных учёта:

set system flow-accounting sflow server <address> port <number>

где:

  • <address> – IP-адреса коллектора для экспорта данных sFlow. Формат ввода IP-адреса: <x.x.x.x> – для IPv4, <h:h:h:h:h:h:h:h> – для IPv6;

  • <number> – порт, на котором коллектор sFlow принимает отчёты. Допустимые значения в диапазоне от «1025» до «65535».

  1. Указание исходного IP-адреса выходных пакетов sFlow:

set system flow-accounting sflow source-address <address>

где <address> – исходный IP-адрес отправленных sFlow пакетов. Формат ввода IP-адреса: <x.x.x.x> – для IPv4, <h:h:h:h:h:h:h:h> – для IPv6. По умолчанию исходный адрес выходных sFlow пакетов – это локальный IP-адрес, который используется для пинга адреса назначения.