Домой Новости Железо Создание сетевого «черного ящика» на базе Raspberry Pi

Создание сетевого «черного ящика» на базе Raspberry Pi

Для мониторинга домашней сети автор использовал Raspberry Pi 5 и Docker. Устройство работает как пассивный анализатор трафика, не влияя на стабильность интернет-соединения.

1
0

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

Плата Raspberry Pi 5 с установленным вентилятором охлаждения

Аппаратная часть и принцип мониторинга

Основой для проекта послужил одноплатный компьютер Raspberry Pi 5 с 8 ГБ оперативной памяти и твердотельным накопителем (SSD) объемом 128 ГБ. Использование SSD вместо microSD-карты предпочтительнее для хранения исторических данных и журналов активности. Поскольку система работает в непрерывном режиме с высокой нагрузкой на процессор, для охлаждения платы обязательно используется активный вентилятор.

Устройство работает в headless-режиме под управлением 64-битной версии Raspberry Pi OS без графической оболочки. Вся настройка осуществляется через SSH, а доступ к результатам анализа происходит через веб-интерфейс. Ключевым аппаратным компонентом является управляемый коммутатор с поддержкой функции зеркалирования портов (port mirroring).

Важно отметить, что Raspberry Pi не включается в разрыв между роутером и остальной сетью. Коммутатор продолжает передавать основной трафик, отправляя его копию на Ethernet-порт микрокомпьютера. Такая топология гарантирует, что при перезагрузке или сбое мониторинговой системы основная сетевая инфраструктура останется работоспособной.

Использование Docker и инструмента ntopng

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

сетевой черный ящик — иллюстрация 2 к материалу
Обзор панели управления сетевым трафиком в интерфейсе ntopng

Процесс установки включает настройку Docker на Raspberry Pi OS. После установки Docker и создания рабочей директории ~/network-blackbox/ntopng, настройка контейнера выполняется через docker compose:

сетевой черный ящик — иллюстрация 3 к материалу
График трафика сетевого интерфейса в панели мониторинга
  • services: ntopng
  • image: ntop/ntopng_arm64.dev:latest
  • container_name: ntopng
  • restart: unless-stopped
  • network_mode: host
  • command: — —community — -i — eth0

Ключевым параметром является network_mode: host, так как для анализа зеркалируемого трафика контейнеру необходим прямой доступ к интерфейсу eth0, а не через мостовую сеть Docker. В случае использования другого интерфейса, его название необходимо проверить командой ip link и внести соответствующие правки в конфигурационный файл перед запуском системы командой docker compose up -d.

Анализ данных и ограничения системы

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

сетевой черный ящик — иллюстрация 4 к материалу
Настройка Docker на устройстве через терминал

Рассматривался вариант развертывания более комплексного стека анализа трафика Malcolm, однако он требует значительно большего объема оперативной памяти, чем доступно в модели на 8 ГБ. Хотя модель с 16 ГБ ОЗУ позволила бы использовать подобные тяжелые решения, на данный момент функциональности ntopng достаточно для задач домашней лаборатории. Raspberry Pi в таком исполнении выполняет роль «черного ящика», обеспечивая прозрачность сети без необходимости создания сложных и дорогостоящих систем мониторинга.

сетевой черный ящик — иллюстрация 5 к материалу
Захват сетевых пакетов в терминале Raspberry Pi

Тонкости настройки окружения и Docker

Для корректной работы системы мониторинга на Raspberry Pi 5 с 64-битной ОС Raspberry Pi OS, предварительно необходимо развернуть Docker. Автор проекта рекомендует стандартный сценарий установки, который выполняется следующими командами в терминале:

  • curl -fsSL https://get.docker.com | sh — скачивание и запуск официального скрипта установки Docker.
  • sudo usermod -aG docker «$USER» — добавление текущего пользователя в группу docker для выполнения команд без использования sudo.

После применения настроек необходимо обязательно завершить сеанс пользователя и войти в систему снова, чтобы права доступа вступили в силу. Убедившись в работоспособности Docker, можно приступать к созданию структуры каталогов проекта: mkdir -p ~/network-blackbox/ntopng и переходу в рабочую папку. Использование Docker Compose в данном случае обосновано не только простотой запуска, но и высокой воспроизводимостью конфигурации, что критически важно при настройке сетевых интерфейсов, работающих в режиме прослушивания (promiscuous mode).

сетевой черный ящик — иллюстрация 6 к материалу
Детальная статистика перехваченных пакетов в консоли

Почему ntopng, а не Malcolm?

В процессе проектирования «черного ящика» для домашней сети рассматривалась альтернатива — программный комплекс Malcolm. Это мощный инструмент с гораздо более широким стеком анализа сетевого трафика. Однако, как отмечает автор, Malcolm предъявляет серьезные требования к аппаратному обеспечению. В текущей конфигурации с Raspberry Pi 5, оснащенным 8 ГБ ОЗУ, запуск Malcolm оказался нецелесообразным из-за нехватки оперативной памяти. Для полноценного функционирования такого стека предпочтительнее использовать версию Raspberry Pi с 16 ГБ памяти. Впрочем, текущий выбор в пользу ntopng оказался оправданным: система обеспечивает именно тот уровень детализации, который необходим для диагностики большинства проблем в домашней лаборатории, при этом оставаясь легковесной и простой в обслуживании.

сетевой черный ящик — иллюстрация 7 к материалу
Процесс установки контейнера мониторинга в системе

Особенности эксплуатации и безопасности

При первом запуске веб-интерфейса ntopng по адресу http://address:3000 система потребует авторизации. Первичный вход осуществляется с использованием стандартных учетных данных, которые предоставляет контейнер — их необходимо сменить сразу после первого подключения для обеспечения безопасности сетевого узла.

Важным аспектом является то, что Raspberry Pi в данной конфигурации не выступает в роли шлюза, брандмауэра или маршрутизатора. Это именно «пассивный наблюдатель». Такой подход исключает риск того, что мониторинг станет «единой точкой отказа»: если Raspberry Pi выйдет из строя или зависнет, это никак не отразится на маршрутизации основного интернет-трафика. Система выполняет роль регистратора данных, превращая хаотичную активность устройств в упорядоченный поток информации, доступный для ретроспективного анализа. Это позволяет не гадать о причинах сбоя, а предметно изучить состояние сети в интересующий промежуток времени.

Источник: https://www.howtogeek.com