Быстрый анализ проблем с трафиком на Интернет-шлюзе с помощью утилиты ntop
- ntop — это инструмент для быстрого визуального анализа трафика в реальном времени.
- ntop запускается либо непосредственно на сервере, трафик которого нам надо анализировать,
либо на отдельном сервере, на который другие сетевые устройства (веб-серверы, шлюзы, маршрутизаторы и т.д.) присылают информацию о трафике.
- ntop умеет фильтровать и группировать трафик по большому количеству параметров, включая IP-адреса, сетевые протоколы, GeoIP, рейтинги сайтов и т.д.
- Просмотр производится через веб-интерфейс — для доступа к нему в состав ntop входит встроенный веб-сервер, по умолчанию работающий на порту 3000.
- С примерами отчётов и списком возможностей можно ознакомиться на странице продукта — https://www.ntop.org/products/traffic-analysis/ntop/.
Ограничения:
- ntop является закрытым продуктом.
- В открытом виде поставляется только усечённая community-редакция, не имеющая ключевых инструментов — построения отчётов
в реальном времени и драйвера для перехвата больших объёмов трафика через PF_RING.
- Pro-редакция доступна для скачивания, но без лицензии работает в Pro-режиме только 10 минут, после чего переходит в Community-режим.
- Поэтому имеет смысл не держать ntop запущенным всё время, а запускать вручную только в те моменты, когда на сервере или в сети
начинаются проблемы из-за большого трафика и вам надо быстро понять их причину.
- Если 10 минут оказалось недостаточно, можно завершить ntop и запустить заново — 10 минут начнут отсчитываться с нуля.
- Это позволит вам принять решение о покупке лицензии, предварительно убедившись в достоинствах Pro-редакции на практическом опыте.
Совместимость с ядром:
- PF_RING работает как модуль ядра, но в исходные тексты официального и дистрибутивного ядра пока не включен, поэтому его требуется собирать и устанавливать через DKMS.
- Для его сборки в дополнение к пакету с ядром должен быть предварительно вручную установлен пакет kernel-devel для официального ядра, либо kernel-lt-devel или kernel-ml-devel для ядер из ELRepo:
yum install $(rpm -qf --qf '%{NAME}\n' /boot/vmlinuz-$(uname -r))-devel
Может оказаться так, что PF_RING отказывается собираться с Mainline-ядром из ELRepo, потому что не знает про свежие изменения во внутренних API ядра, с Longterm-ядром такой проблемы пока не замечалось.
Установка, настройка и использование:
- Добавляем репозиторий и устанавливаем пакет на шлюз под управлением CentOS 7:
cd /etc/yum.repos.d/
wget http://packages.ntop.org/centos-stable/ntop.repo
yum install ntopng pfring-dkms pciutils
Останавливаем запущенные сервисы и запрещаем их автозапуск:
systemctl stop ntopng
systemctl stop redis
systemctl stop pf_ring
systemctl disable redis
systemctl disable ntopng
systemctl disable pf_ring
Когда у нас возникает необходимость посмотреть структуру трафика, запускаем ntop вручную (вместо eth0 укажите фактический сетевой интерфейс):
systemctl start redis
systemctl start pf_ring
ntopng -i eth0
После этого открываем в веб-браузере http://ip-адрес-шлюза:3000/
Параметры входа в веб-интерфейс: логин admin, пароль по умолчанию admin, при первом входе его будет предложено изменить.