Анализ сетевого трафика в Noction Flow Analyzer

С появлением компьютерных сетей встала задача анализа сетевого трафика, которая никуда не ушла и по сей день. Я хочу вас познакомить с продуктом, который решает эту задачу просто, быстро, эффективно - Noction Flow Analyzer (NFA). Данный программный продукт может быть развернут на собственных вычислительных мощностях, в том числе в закрытых сегментах сети. Пример подобной установки и настройки я рассмотрю далее.

Введение

Noction Flow Analyzer - быстрый, многофункциональный и доступный инструмент анализа/мониторинга сетевого трафика. Анализатор принимает и обрабатывает данные NetFlow, sFlow, IPFIX, NetStream и BGP. Программное обеспечение помогает визуализировать/анализировать динамику трафика и состояние сети, контролировать использование полосы пропускания, быстро обнаруживать всплески/аномалии трафика и DDoS-атаки, просматривать детали BGP пиринга и многое другое.

С помощью NFA можно анализировать данные BGP. Определять подходящих кандидатов для BGP пиринга и принимать обоснованные решения о подключении/отключении провайдеров. Диагностировать проблемы конфигурации, нестабильность BGP маршрутов и др.

Разработчик программы, компания Noction, обычно ассоциируется у сетевых инженеров с платформой оптимизации сети BGP - Noction Intelligent Routing Platform. Однако, в данной статье речь идет о совершенно новом продукте, который был выпущен на рынок недавно.

NFA можно установить на собственный сервер. Есть deb и rpm пакеты под популярные дистрибутивы, а также репозитории для их удобной установки и обновления. В качестве хранилища используется Yandex ClickHouse, что позволяет получать результаты запросов в считанные секунды.

Важное преимущество данного анализатора трафика - простота установки и использования. Я самостоятельно в течении одного дня разобрался с продуктом, установил, настроил и написал данную статью. При этом специальными знаниями в работе с сетями не обладаю. Анализ NetFlow потоков вообще делаю впервые.

В качестве теста я взял шлюз на базе Mikrotik CHR, отдельную виртуальную машину для анализатора трафика NFA, а также две тестовые виртуальные машины для генерации трафика через шлюз.

Установка NFA

Приступаем к установке Noction Flow Analyzer. Я буду это делать на виртуальную машину под управлением Centos 8. Настройка будет идентична для всех форков RHEL 8: Rocky Linux, Alma Linux, Oracle Linux и т. д. Также в качестве поддерживаемой системы заявлена Ubuntu 20 и Centos 7.

  • Минимальные системные требования для NFA разработчики указали следующими:
    x86_64 architecture
  • Minimum 4x core CPU (8x core CPU recommended), SSE4.2 support
  • Minimum 32GB of RAM (64GB RAM recommended; 128GB RAM - optimal)
  • Minimum 250GB SSD storage (500GB SSD storage recommended) allocated to the /var partition

Нужно понимать, что в таких системах требования к железу напрямую зависят от нагрузки, которую будет генерировать сетевое оборудование. Я для теста взял виртуальную машину с 4 CPU, 8GB RAM и 50GB диска. Этого оказалось достаточно. Система работала стабильно и быстро.

Для нормальной работы NFA в Centos необходимо отключить SELinux.

# setenforce 0

Далее подключаем репозиторий продукта:

# rpm -Uvh http://repo-nfa.noction.com/nfa-repo-0.1.0-0.noc.noarch.rpm

Теперь можно выполнить непосредственно установку NFA:

# dnf install nfa

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

  • 80, 443 для работы веб интерфейса управления
  • 2055 для NetFlow

Остальные порты зависят от функционала, который будете использовать в системе. При необходимости стандартные порты можно переназначить в настройках. Я не буду в данной статье касаться настройки firewall, так как это выходит за рамки заданной темы. В случае тестовой установки можете полностью отключить firewalld или заняться настройкой iptables по моему руководству.

Теперь можно пойти в веб интерфейс по ip адресу сервера и https протоколу - https://10.20.1.34.

Учётная запись по умолчанию - admin / admin. При первом входе вам предложат установить лицензию. Для теста можно получить trial на 30 дней. Для этого надо зарегистрироваться в личном кабинете. Почта от бесплатных сервисов не принимается. Необходимо воспользоваться корпоративной.

В личном кабинете необходимо выбрать NFA - Free Trial License, в Payment Method выбрать No Payment Required и сделать заказ. Указывать реквизиты карты не нужно. Телефон, указанный ранее при регистрации, тоже нигде не понадобится. После заказа Trial License, вам придёт на указанную почту письмо, где будет руководство по установке продукта и лицензионный ключ в виде длинного цифробуквенного набора символов. Его нужно ввести в качестве лицензионного ключа в веб интерфейсе.

У вас активируется триальная подписка на 30 дней. Этого вполне хватит, чтобы познакомиться и протестировать продукт.

Базовая настройка

Дефолтных настроек Noction Flow Analyzer достаточно, чтобы сразу начать работу с программой. Так что я не буду на этом останавливаться. Отмечу лишь, что основные изменяемые параметры можно найти в веб интерфейсе: Management -> Configuration Settings. Там можно изменить стандартные порты и некоторые другие настройки (логирование, доступ к веб интерфейсу и т. д.). Также рекомендую сразу зайти в настройки профиля и указать подходящий вам формат даты и времени.

Перейдём сразу к практической части. После установки NFA сразу же готов к приёму логов через NetFlow. Отправим на него поток со шлюза Mikrotik. Для этого подключаемся к нему по Winbox, переходим в раздел IP -> Traffic Flow, активируем настройку и добавляем новый Target.

В данном случае 10.20.1.34 - ip адрес сервера с NFA. Всё, на шлюзе больше ничего делать не нужно. Переходим в веб интерфейс и добавляем туда новое устройство. Для этого переходим в раздел Management -> Inventory и жмём . Указываем параметры шлюза.

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

Для начала сбора данных о сетевом трафике этих настроек достаточно. Через 1-2 минуты в списке устройств напротив добавленного шлюза появится зелёная галочка, информирующая о том, что NetFlow поток с устройства начал поступать для анализа.

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

Работа с фильтрами

Думаю те, кому приходилось анализировать сетевой трафик тем или иным образом, знают, что это непростая задача из-за большого объема данных. Здесь важно иметь под рукой удобную фильтрацию и хорошее быстродействие, так как выборка будет строиться из большого потока данных.

В Noction Flow Analyzer все в порядке с фильтрацией. Я потратил немного времени на то, чтобы понять логику работы фильтров и их наложения. После этого получил возможность сделать практически любую выборку. Посмотрим, к примеру, кто использовал RDP подключения из внутренней сети во внешнюю.

Переходим в раздел Data Navigation -> Data Explorer и настраиваем фильтр.

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

Примененные фильтры можно сохранять и делать из них виджеты. Табличные результаты выборки можно экспортировать в CSV формат.

Для фильтрации доступны все основные характеристики трафика, такие как ip адреса, порты, протоколы, vlan, AS и т.д. Можно включать, исключать те или иные значения, группировать с условиями и, или. Полный список возможностей можно посмотреть в документации.

Приведу еще пару примеров. Группировка трафика на основе source ip и destination ports. При этом source ip будем брать только из нашей внутренней сети 192.168.88.0/24. То есть с какого локального ip на какой удаленный порт шли запросы:

Посмотрим RDP запросы с конкретного IP. Воспользуемся для этого сохранённым ранее фильтром.

В целом, работать с фильтрами удобно и просто, кроме одного момента, который меня напрягал. Постоянно слетает интервал времени, который ты выбираешь. Он возвращается на дефолтные 4 часа. Выбрать свой интервал времени, а не преднастроенный, неудобно. Он тоже постоянно слетает, а некоторые интервалы, некратные часам, у меня вообще не получилось указать. Это касается именно настройки фильтров. На графике любой интервал выбрать не проблема.

Обзор виджетов и дашбордов

Как я уже сказал ранее, любой настроенный фильтр можно не только сохранить для быстрого выбора, но и сделать из него виджет. А сами виджеты объединить в дашборды. По умолчанию, у вас уже настроен один дашборд с типовым набором виджетов. Лишние можно сразу же отключить. Например, я убрал все, что касается ipv6.

Сам дашборд выглядит следующим образом:

Я ранее не упоминал, что в NFA реализована система доступа на уровне пользователей. Каждый пользователь может формировать свои дашборды, доступные только ему. При этом он имеет возможность открыть доступ и для других пользователей.

Обращаю внимание на то, что все названия и описания могут быть только на английском языке. С русскими символами не будет возможности сохранить виджет или дашборд.

Любой график с виджета или обзора данных с фильтрами может быть сохранён в виде изображения. Поддерживаемые форматы - PNG, JPEG, SVG.

Настройка системы предупреждений

В программе Noction Flow Analyzer реализована система оповещений о тех или иных событиях, связанных с прохождением трафика. Я покажу на двух примерах, чтобы было сразу понятно, как она работает.

Первый пример будет с оповещением о прохождении конкретного сетевого пакета. Мы будем получать уведомление, если кто-то из локальной сети будет открывать RDP соединение по стандартному TCP порту 3389 с внешней сетью. Для этого идём в раздел Alerts и добавляем новый. Указываем необходимые условия.

На следующем этапе вы можете указать некоторые параметры работы предупреждения. Например, при каком условии оно будет считаться закрытым. Это может быть ручное закрытие, либо отсутствие событий, на которые оно настроено.

Здесь же можно указать email или аккаунт slack, на который будет отправляться оповещение. При срабатывании предупреждения, вы получите подобное уведомление на почту.

В списке Active Alerts будет информация об активном предупреждении. Если вы указали ручное закрытие предупреждения, то здесь это можно сделать.

Я показал условный пример, который вряд ли понадобится в реальности. Но его можно расширить дополнительным условием. Например, не больше какого-то количества подобных пакетов в единицу времени. А это уже будет предупреждение о dos или ddos атаках.

Второй пример - уведомление о превышении допустимой занятой полосы пропускания. Настройка подобного предупреждения выглядит следующим образом:

Можно указать любые другие дополнительные условия. Например, трафик между каким источником и получателем (в том числе в виде стран, городов, AS, vlan), по какому порту, протоколу и т.д. будет учитываться. В предупреждениях доступны все инструменты фильтрации трафика.

По всем предупреждениям ведётся история, которую можно посмотреть в разделе History of Alerts. Настраивается все просто и быстро, при этом функционал фактически ничем не ограничен. Любое правило фильтрации можно завернуть на предупреждение. Не хватает только некоторого интерактива с предупреждениями. Например, нельзя из алерта перейти в настроенный фильтр, чтобы сразу посмотреть график. Это придётся делать вручную.

В целом, всё работает ожидаемо, настраивается логично. Если вы в правилах фильтрации видите трафик, то с этой же фильтрацией у вас сработает предупреждение. Легко проверять и отлаживать работу.

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

Стоимость NFA

Noction Flow Analyzer постоянно активно разрабатывается. Новые версии выходят в среднем каждые 1-2 месяца, в том числе с дополнительным функционалом. В связи с этим, оплата продукта реализована в виде месячной или годовой подписки.

В сетевой индустрии существует распространенное заблуждение, что все лучшие анализаторы NetFlow должны иметь высокую цену, а также сложную модель лицензирования с учетом количества устройств, интерфейсов или локаций клиентов в качестве средства увеличения данной цены. Ценовая политика и условия лицензирования NFA просты и понятны. В NFA нет ограничений по количеству устройств, интерфейсов и локаций. Техническая поддержка 24/7 предоставляется всем клиентам. Стоимость анализатора: $299/месяц. BGP аддон - $199/месяц. Соответственно, в отличие от других продуктов, анализатор Noction доступен организациям даже с очень скромными бюджетами.

Все подробности ценообразования вы можете уточнить на соответствующей странице - https://www.noction.com/flow-analyzer/pricing.

Работа с BGP

Я рассмотрел только часть функционала Noction Flow Analyzer, который смог воспроизвести в своей тестовой лаборатории. Обязательно нужно упомянуть про дополнительные возможности.

NFA позволяет анализировать данные BGP и помогает принимать решения о подключении/отключении провайдеров. Подробно с этим функционалом можно ознакомиться в документации.

В разделе BGP Data реализованы отчеты по BGP со своей фильтрацией.

Также в NFA визуализированы BGP с помощью Sankey Diagram. Выглядит это примерно так:

Также я не рассмотрел некоторые дополнительные возможности:

  • Работа с системой через встроенное API
  • Использование SQL запросов через Query editor для формирования нужной выборки

Заключение

Noction Flow Analyzer - нишевый продукт под конкретную задачу анализа и мониторинга сетевого трафика. При этом установка и настройка не требуют глубокого погружения в специфику этой предметной области. У меня самостоятельно получилось во всём разобраться и запустить продукт в работу. К помощи тех. поддержки не прибегал вообще, что бывает не часто, когда делаешь обзор на новый незнакомый продукт. Изначально мне предложили доступ к готовому инстансу, но я решил разобраться во всём сам, чтобы сделать максимально наполненный конкретикой обзор.

Отдельно отмечу, что продукт хорошо укомплектован в стандартные пакеты для системы Linux, устанавливается и настраивается автоматически, без применения современных методов контейнеризации, хотя состоит из множества компонентов. То есть это классический олдскул сервис с запущенными демонами и логами без лишних прослоек.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar