Учёт сетевого трафика
ARMA Стена предоставляет механизм по сбору статистики и предоставлению отчётов о сетевом трафике как IPv4, так и IPv6. Данные учёта могут быть выведены как локально, так и экспортированы на удалённый сервер сбора и анализа данных.
ARMA Стена поддерживает учёт данных в формате NetFlow (версии 5, 9 и 10/IPFIX) и sFlow.
NetFlow
NetFlow предоставляет администраторам доступ к информации о потоках IP в сети передачи данных. Поток данных определяется как однонаправленная последовательность пакетов с неким общим набором свойств, проходящих через сетевое устройство.
Для сбора информации о трафике по протоколу NetFlow требуются следующие компоненты:
экспортер – собирает статистику по проходящему через него трафику, объединяет пакеты в потоки и экспортирует записи потоков в один или несколько коллекторов (сборщиков) потоков;
коллектор – собирает получаемые от экспортёра данные и помещает их в хранилище;
анализатор – анализирует собранные коллектором данные и формирует пригодные для чтения человеком отчёты.
Для сетевых протоколов без установления соединения таких как ICMP и UDP, сетевой поток считается завершённым если в течение указанного интервала ожидания не принят ни один пакет, относящийся к данному потоку.
Включение учёта сетевого трафика осуществляется отдельно для каждого интерфейса. Все пакеты, полученные на интерфейсе, будут учтены и представлены в статистических данных для интерфейса. При этом следует учитывать, что просмотр всех пакетов потребует значительных вычислительных ресурсов. В качестве альтернативы, позволяющей снизить нагрузку на систему, возможно учитывать каждый n-ный пакет (n – частота выборки), и производить оценку на основе выбранных пакетов. Это позволит снизить потребляемые ресурсы по сравнению с учётом всех пакетов, при этом обеспечивая приемлемую точность.
Примечание
Использование технологии NetFlow в ARMA Стена с большим потоком трафика может привести к повышенной нагрузке на центральный процессор, что приводит к снижению производительности устройства. В этой ситуации рекомендуется использовать технологию sFlow.
Команды настройки NetFlow
Указание интерфейса, для которого производится учёт входящего трафика:
set system flow-accounting interface <interface>где <interface> – интерфейс, для которого осуществляется учёт входящего трафика. Интерфейс должен быть заранее настроен. Возможно настроить несколько интерфейсов, которые будут участвовать в учёте входящего трафика.
Включить учёт исходящего трафика:
set system flow-accounting enable-egress
Отключить использование локальной таблицы во внутренней памяти:
set system flow-accounting disable-imtПо умолчанию записанные потоки сохраняются во внутренней памяти и могут быть перечислены с помощью команды CLI.
Увеличить буфер обмена данными между основным процессом и плагином:
set system flow-accounting buffer-size <size>где <size> – размер буфера в мебибайтах. Возможно указать значение в диапазоне от «0» до «4294967295». По умолчанию используется значение «10».
Указание типов сообщений, относящихся к учёту трафика, которые будут регистрироваться в журнале:
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» – все типы источников сообщений.
Указание формата NetFlow, в котором будут экспортированы данные учёта:
set system flow-accounting netflow version <version>где <version> – номер версии NetFlow, в формате которой будут экспортированы данные учёта. Допускается указать следующие значения: «5», «9», «10». По умолчанию используется значение «9».
Указание сервера сбора данных об учёте трафика (коллектора) для экспорта данных 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».
Указание 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.
Указание идентификатора системы, который будет включён в данные NetFlow:
set system flow-accounting netflow engine-id <id>где <id> – идентификатор системы, который указывается в данных NetFlow, позволяющий идентифицировать маршрутизатор, отправивший отчёт. Возможно указать следующие значения:
для NetFlow v5 – допустимые значения в диапазоне от «0» до «255». Допускается указать множественное значение разделённое знаком «:» (0-255:0-255);
для NetFlow v9/IPFIX – допустимые значения в диапазоне от «0» до «4294967295».
Указание частоты регистрации событий для NetFlow, с которой сетевые пакеты будут учитываться в статистике:
set system flow-accounting netflow sampling-rate <rate>где <rate> – частота, с которой будут отбираться пакеты. Учитывается каждый n-ный пакет, где n – значение sampling-rate, настроенное для узла. Допустимые значения в диапазоне от «0» до «4294967295». По умолчанию используется значение «1».
Указание интервала, через который будут отправляться отчёты коллектору данных NetFlow:
set system flow-accounting netflow timeout expiry-interval <interval>где <interval> – интервал времени, в секундах, через который будут отправляться отчёты коллектору NetFlow. Возможно указать значение в диапазоне от «0» до «2147483647». По умолчанию используется значение «60».
Указание тайм-аута сетевого потока для трафика IP:
set system flow-accounting netflow timeout flow-generic <timeout>где <timeout> – тайм-аут для сетевого потока, в секундах, для общего трафика IP. Действует для трафика IP за исключением трафика протоколов TCP, UDP и ICMP. Возможно указать значение в диапазоне от «0» до «2147483647».
Указание тайм-аута сетевого потока для трафика ICMP:
set system flow-accounting netflow timeout flow-generic <timeout>где <timeout> – тайм-аут сетевого потока, в секундах, для трафика ICMP. Возможно указать значение в диапазоне от «0» до «2147483647».
Указание максимального интервала времени, в течение которого будет учитываться трафик, относящийся к сетевому потоку:
set system flow-accounting netflow timeout max-active-life <interval>где <interval> – интервал времени, в секундах, определяющий максимальное время учёта трафика, относящегося к сетевому потоку любого типа. Возможно указать значение в диапазоне от «0» до «2147483647».
Указание тайм-аута сетевого потока TCP после получения пакета TCP с флагом FIN:
set system flow-accounting netflow timeout tcp-fin <timeout>где <timeout> – тайм-аут сетевого потока, в секундах, после получения пакета TCP с флагом FIN. Возможно указать значение в диапазоне от «0» до «2147483647».
Указание тайм-аута сетевого потока TCP:
set system flow-accounting netflow timeout tcp-generic <timeout>где <timeout> – тайм-аут для потока TCP, в секундах. Возможно указать значение в диапазоне от «0» до «2147483647».
Указание тайм-аута сетевого потока TCP после получения пакета TCP с флагом RST:
set system flow-accounting netflow timeout tcp-rst <timeout>где <timeout> – тайм-аут сетевого потока, в секундах, после получения пакета TCP RST. Возможно указать значение в диапазоне от «0» до «2147483647».
Указание тайм-аута сетевого потока для трафика UDP:
set system flow-accounting netflow timeout udp <timeout>где <timeout> – тайм-аут сетевого потока для трафика UDP, в секундах. Возможно указать значение в диапазоне от «0» до «2147483647».
Указание максимального количества потоков, отслеживаемых одновременно:
set system flow-accounting netflow max-flows <number>где <number> – задаёт максимальное количество потоков системы NetFlow. Возможно указать значение в диапазоне от «0» до «4294967295».
Вывести информацию об учёте потока для данного интерфейса:
admin@ngfwos:~$ show flow-accounting interface <ethN>где <ethN> – имя интерфейса.
Вывести информацию об учёте потока для данного интерфейса только для определённого хоста:
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».
Рисунок – Схема стенда для настройки 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» для установки и настройки коллектора необходимо выполнить следующие действия:
Ввести следующие команды:
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
Указать в файле конфигурации «ntopng.conf» следующие строки:
-i=tcp://127.0.0.1:5001 --local-networks="10.0.0.0/8"Сохранить изменения в файле.
Ввести следующие команды:
sudo systemctl restart ntopng sudo nano /etc/nprobe/nprobe.conf
Указать в файле конфигурации «nprobe.conf» следующие строки:
--zmq="tcp://*5001" -T="@NTOPNG@" -i=none -n=127.0.0.1:5001 --collector-port=9001Сохранить изменения в файле.
Ввести следующую команду:
sudo systemctl restart nprobe
Проверка настройки NetFlow
Для проверки необходимо выполнить следующие действия:
На ПК «Client» в веб-браузере перейти к каким-либо ресурсам.
На ПК «NetFlow collector» в веб-интерфейсе «ntopng» перейти по адресу «127.0.0.1:3000» и ознакомиться с появившейся информацией (см. Рисунок – Проверка настройки NetFlow).
Примечание
Отправка данных NetFlow может происходить с задержкой.
Рисунок – Проверка настройки NetFlow
sFlow
Система мониторинга sFlow включает следующие компоненты:
агент – обеспечивает интерфейс для настройки измерительного процесса, связанного с источником данных на устройстве, отвечает за поддержку сеансов измерения с коллекторами sFlow, собирает учётные данные в дейтаграммы sFlow для передачи коллекторам;
коллектор – получает дейтаграммы sFlow от одного или множества агентов sFlow.
Команды настройки sFlow
Указание IP-адреса агента sFlow:
set system flow-accounting sflow agent-address <address>где <address> – IP-адрес агента sFlow, который будет указан в пакетах, отправляемых коллектору sFlow. Возможно указать следующие значения:
auto – автоматически выбирается IP-адрес одного из настроенных интерфейсов;
<x.x.x.x> – IPv4-адрес.
Указание частоты выборки для статистики sFlow:
set system flow-accounting sflow sampling-rate <rate>где <rate> – частота, с которой будут отбираться пакеты. Учитывается каждый n-ный пакет, где n – значение sampling-rate, настроенное для узла. Допустимые значения в диапазоне от «0» до «4294967295».
Указание адреса коллектора 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».
Указание исходного 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-адрес, который используется для пинга адреса назначения.