Ntop - установка и настройка в Gentoo

Материал из AlexNook
Перейти к навигацииПерейти к поиску

Ntop - это программа, которая ловит пакеты на уровне net layer2 (к примеру PPP) и net layer3 (к примеру ICMP) и помогает их анализировать, тем самым следя за тем, какие компьютеры окружают вас, что из себя представляют эти хосты, какой поток трафика идёт через них, вас и т.д. Обладая встроенным веб сервером, способным работать как по обычному http, так и по https протоколам, Ntop генерирует отличные отчёты в виде веб страничек. Получается что-то типа упрощённого снифера с представлением данных пользователю в виде веб-отчётов.

Установка в Gentoo

Программа настолько популярная и мощная, что естественно она находится в репозитарии. Для установки сверим USE флаги:

Use Flags: ipv6 nls snmp ssl zlib -tcpd (?)

Warning: Причём лично у меня вызвало достаточно много проблем SNMP, так что не знаю нужен ли этот флаг. То ли дело в моей кривости и не верной настройке конфига ntopSnmp.conf, то ли дело в том, что реально присутствует какая-то ошибка в этом плагине для Ntop, которая конфликтует с моей amd64 gentoo box. Лично я подозреваю себя, хотя версия плагина 0.1a не всиляет надежд. Тем немение примерно 1 раз в 10-15 минут у меня падал Ntop с SegFault'ом вида: ntop[20279]: segfault at 0 ip 7f830014a711 sp 42d6dee0 error 4 in libsnmpPlugin-3.2.so[7f8300149000+3000]


Note: При этом мне пришлось пересобрать какие-то пакеты, т.к. установщие Ntop ругался, что не совместим с ними т.к. они скомпилированы без каких-то там флагов. Если не ошибаюсь это был тот же SNMP и ругался он на флаг IPv6. Так что возможно его придётся пересобрать.

После этого можно попробовать запустить Ntop:

/etc/init.d/ntop start

Для добавления в автозапуск стандартно используем:

rc-update add ntop default
Note: Если надо удалить из автозапуска, то
rc-update del ntop
посмотреть автозапускаемые программы -
rc-update show
для просмотра статуса программы используем
/etc/init.d/ntop status

Далее приступаем к настройке Ntop.

Настройка и разбор некоторых флагов команды

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

Рассмотрим второй вариант. Для этого необходимо открыть на правку файл /etc/conf.d/ntop

nano /etc/conf.d/ntop

У меня его содержимое получилось вот таким:

File: /etc/conf.d/ntop
# Config file for /etc/init.d/ntop

# Set preferred options here
NTOP_OPTS="--output-packet-path /var/lib/ntop/output.packets --local-subnet "192.168.0.0/16" 
--interface "lo,eth0,eth1,ppp0" --no-interface-merge --access-log-file /var/log/ntop.log  
--user ntop --db-file-path /var/lib/ntop --http-server 0 --https-server 3000"
#--daemon --use-syslog

Рассмотрим более подобно, что означает кажда опция.

--output-packet-path путь, где хранится дамп пакетов ntop'а - ntop-suspicious-pkts.XXX.pcap и пакеты normal.

Note: Все указанные сдесь пути должны быть во-первых созданны, а во-вторых они должны иметь права для чтения, записи и выполнения (для директорий) для пользователя ntop из группы root

--local-subnet по умолчанию ntop, считывая маску и ip со всех активных интерфейсов компьютера, считает их локальными. Для отдельного указания подсетей, чей трафик так же будет считаться локальным можно использовать этот параметр. По идее добавлять адреса из диапазона 192.168.0.0/255.255.0.0 большого смысла не имело, но я вставил на всякий случай.

Note: IP и маску можно задать так же и в таком формате - 192.168.1.0/255.255.255.0

--interface - интерфейсы, которые слушает Ntop. По умолчания он слушает первый интерфейс в системе.

Note: Если перечисленно несколько интерфейсов, то Ntop будет считать их единым целым и объединит весь их трафик. Для того, чтобы разбить трафик по интерфейсам, необходимо использовать опцию --no-interface-merge

--no-interface-merge опция разделяет трафик между интерфейсами, при условии, что мониторится несколько штук интерфейсов. Полезно, чтобы оценить к примеру LAN трафик и DMZ трафик.

Note: В веб отчёте за раз показывается лишь 1 интерфейс, для переключения на другой можно использовать ссылку Switch рядом с именем интерфейса или в панели администрированич - Admin|Switch NIC

--access-log-file путь, куда ntop будет записывать логи доступа к своемы встроенному веб серверу. Логи ведуться в стиле апача, добавляется разьве что время в мс}}

--user пользователь от чьего имени будет работать ntop.

Note: Программа всегда запускается от пользователя Root для того, чтобы активировать режим promiscuous для каждого интерфейса. После активации этого режима ntop переходит под конкретного пользователя.
Warning: Никогда не запускайте ntop под root'ом

--db-file-path путь, где Ntop будет хранить свои базы данных с постоянными и временными записями.

Note: Если отдельно не задан параметр для хранения файлов БД для временных данных --spool-file-path, то он считается равным --db-file-path, где храниятся постоянные данные.

--http-server Включить или отключить внутренний http сервер. Для его активации достаточно задать порт, который он будет слушать. В моём случае он отключён. --https-server Включить или отключить внутренний https сервер. Для его активации достаточно задать порт, который он будет слушать. В моём случае он включён и слушает порт 3000.

Ну и так же я опишу 2 параметра, которые у меня закоментированны, т.к. я пользуюсь командой

/etc/init.d/ntop start

для старта Ntop и она автоматом сама их подставляет.

Note: точнее их псевдонимы -d и -L

--daemon Перевод Ntop в режим демона, когда он не связан с консолью. Для успешной односторонней связи с ним необходимо использовать следующий параметр. --use-syslog этот параметр задаёт куда будут посылаться сообщения от ntop если он запущен, к примеру, в режиме демона вместо того, чтобы слать их в stdOut.

Note: Вообще синтаксис команды следующий - --use-syslog facility где facility это средство для ведения системных логов. Если параметр задан без facility, то по умолчанию используется средство, определённое в качестве LOG_DAEMON, которое определенно в директиве #define в переменной DEFAULT_SYSLOG_FACILITY файла globals-defines.h

После настройки Ntop делаем его старт

/etc/init.d/ntop start

и проверям по адресу http(s)://IP:PORT.

Warning: Лично у меня нормально остановить и как следствие рестартануть Ntop не получается. Для того, чтобы его перезапустить я делаю так
killall ntop
/etc/init.d/ntop stop
/etc/init.d/ntop start
Возможно это связанно с моим дистрибутивом, возможно с моей кривостью. Можно наверно попробовать запускать ntop в виде демона в ручную без средств init.d или же к примеру даже не как демона а просто как программe в screen консоли.

Ссылки