ntopng — открытый анализатор сетевого трафика с веб-интерфейсом. Он показывает, кто и куда ходит в вашей сети, какие приложения используют полосу, какие хосты создают подозрительную активность. В отличие от простого счётчика пакетов, ntopng разбирает протоколы, определяет приложения через nDPI и хранит историю. Разберём установку, настройку и практическую диагностику.

Что умеет ntopng

Инструмент слушает сетевой интерфейс, зеркальный порт коммутатора или поток NetFlow/sFlow/IPFIX. Он строит таблицы хостов, разговоров и потоков, считает объём трафика, определяет протоколы прикладного уровня и может отправлять оповещения при превышении порогов.

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

Установка

В Debian и Ubuntu пакета может не быть в стандартном репозитории, поэтому подключают официальный репозиторий ntop. Для RHEL-совместимых систем тоже есть готовые пакеты. Ниже пример для Debian 12: сначала добавляют репозиторий, затем ставят Redis и ntopng.

sudo apt update
sudo apt install -y wget
sudo sed -i '/^deb/ s/$/ contrib/' /etc/apt/sources.list
wget https://packages.ntop.org/apt-stable/bookworm/all/apt-ntop-stable.deb
sudo apt install -y ./apt-ntop-stable.deb
sudo apt update && sudo apt install -y redis-server ntopng

Проверьте, что сервис слушает нужный порт и не открыт наружу:

ss -lntp | grep -E "3000|6379"
sudo journalctl -u ntopng -n 50 --no-pager

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

Главный конфигурационный файл — /etc/ntopng/ntopng.conf. В нём задают интерфейс, порт, каталог данных и параметры Redis. После правки перезапустите сервис и проверьте журнал.

# /etc/ntopng/ntopng.conf
--interface=eth0
--http-port=3000
--data-dir=/var/lib/ntopng
--redis=127.0.0.1:6379
--local-networks=192.168.0.0/16
--bpf-filter=not port 22

Параметр —local-networks задаёт локальные сети: без него ntopng может считать внутренним трафиком всё подряд. Если интерфейсов несколько, добавьте отдельные строки —interface. Для зеркального порта достаточно указать его имя, например mirror0.

sudo systemctl restart ntopng
ntopng --version

Первый вход и интерфейс

Откройте http://адрес-сервера:3000. При первом входе ntopng использует учётную запись admin. Сразу задайте надёжный пароль и ограничьте доступ через файрвол: интерфейс не предназначен для публикации в интернет.

В разделе Dashboard видно текущую скорость, число хостов и распределение по протоколам. Вкладка Hosts показывает активность по IP, Flows — отдельные соединения, Applications — распределение по приложениям. Фильтры позволяют быстро найти хост, который качает обновления или создаёт тысячи соединений.

  • Hosts — трафик и порты конкретного адреса.
  • Flows — активные и завершённые соединения.
  • Applications — распознанные протоколы и сервисы.
  • Alerts — события по порогам и подозрительной активности.

Сбор трафика с коммутатора

Самый простой способ — зеркалировать порт uplink на порт, где стоит сервер с ntopng. На коммутаторе это настраивается как port mirroring или SPAN. Такой вариант даёт полную картину, но требует пропускной способности и CPU.

Если зеркалирование недоступно, используйте экспорт потоков. Маршрутизатор или коммутатор отправляет NetFlow/IPFIX/sFlow на коллектор. Современные сборки ntopng умеют принимать такие потоки сами, но набор возможностей зависит от версии. Уточните в документации синтаксис интерфейса коллектора и откройте соответствующий UDP-порт только для источника экспорта.

sudo tcpdump -i eth0 -c 20 -nn 'not port 22'
sudo tcpdump -i eth0 -nn 'udp port 2055' -c 10

Команда tcpdump полезна для проверки: если пакеты не приходят на интерфейс, ntopng не сможет их показать. Проверяйте счётчики после каждого изменения. Сравните показатели на коммутаторе и в интерфейсе ntopng.

Оповещения и пороги

ntopng умеет сигнализировать о превышении полосы, скачках трафика, новых устройствах и подозрительных соединениях. Правила настраиваются в веб-интерфейсе и могут отправляться по почте или через webhook. Начните с нескольких понятных порогов: например, уведомление, если хост устойчиво отдаёт больше 50 Мбит/с или открывает более 500 соединений.

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

Хранение и экспорт данных

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

Следите за каталогом данных и ротацией. Если диск заполнится, сервис может перестать писать статистику или работать нестабильно. Настройте мониторинг свободного места и отдельный раздел под /var/lib/ntopng.

df -h /var/lib/ntopng
du -sh /var/lib/ntopng
redis-cli info memory | grep used_memory_human

Производительность

Разбор каждого пакета требует CPU. На гигабитном канале с большим числом мелких соединений один сервер может не справиться. Помогают: выделенные ядра, отключение лишних проверок, фильтр BPF для отсечения служебного трафика и переход на сбор потоков вместо полного зеркала.

Для фильтрации используйте параметр —bpf-filter с выражением BPF. Например, чтобы исключить резервное копирование между подсетями, задайте правило на уровне интерфейса. Проверяйте нагрузку через top и счётчики потерь на сетевой карте. Начните с одного интерфейса и добавляйте новые только после замера нагрузки.

top -H -p $(pgrep -d, ntopng)
ip -s link show eth0

Безопасность и правовые рамки

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

Сам ntopng должен быть защищён: HTTPS через обратный прокси, сильный пароль, доступ по списку адресов, регулярные обновления. Redis не должен быть доступен из внешней сети.

Чек-лист

  • Определите точку съёма трафика: зеркало порта или экспорт потоков.
  • Задайте локальные подсети параметром -m.
  • Ограничьте доступ к веб-интерфейсу и Redis.
  • Настройте хранение истории и контроль свободного места.
  • Включите только нужные оповещения и проверьте их на практике.
  • Сверьте данные ntopng со счётчиками коммутатора.

Итог

ntopng даёт быстрый и наглядный ответ на вопрос «что происходит в сети». Он полезен для поиска перегрузок, разбора инцидентов и планирования полосы. Начинайте с зеркала порта и нескольких хостов, затем добавляйте экспорт потоков, историю и оповещения. Главное — заранее продумать производительность, хранение и законные границы мониторинга.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте