Netflow: відмінності між версіями
Sv (обговорення | внесок) (Новая страница: «<pre> pkg install flow-tools </pre> Несмотря на то, что в /usr/local/etc/rc.d/ будет установлен скрипт для запуска…») |
Sv (обговорення | внесок) Немає опису редагування |
||
(Не показано 7 проміжних версій цього користувача) | |||
Рядок 1: | Рядок 1: | ||
==Установка flow-tools== | |||
Flow-tools — набор утилит для отправки, сбора, обработки и анализа данных netflow. | |||
<pre> | <pre> | ||
mkdir /var/db/flows | |||
mkdir /var/run/flow-capture/ | |||
pkg install flow-tools | pkg install flow-tools | ||
</pre> | </pre> | ||
Рядок 19: | Рядок 25: | ||
* /var/run/flow-capture/flow-capture.pid - pid файл, важно. Проверьте, что после запуска появится файл: /var/run/flow-capture/flow-capture.pid.8888. | * /var/run/flow-capture/flow-capture.pid - pid файл, важно. Проверьте, что после запуска появится файл: /var/run/flow-capture/flow-capture.pid.8888. | ||
* /var/db/flows - куда flow-capture будет записывать свои файлы. | * /var/db/flows - куда flow-capture будет записывать свои файлы. | ||
flow-capture принимает netflow поток на udp порт 8888. Чтобы сбросить дамп потока на диск, нужно послать сигнал HUP. Дамп будет записан в /var/db/flows c именем из текущей даты и дополнительной информацией. После этого автоматически будет запущен скрипт netflow_8888.pl, которому будет передано имя дампа. Задача этого скрипта простая: переименовать файл с потоком в 8888.txt. | |||
<pre> | |||
cp /usr/local/nodeny/modules/netflow/netflow_8888.pl /var/db/flows/ | |||
chmod 700 /var/db/flows/netflow_8888.pl | |||
</pre> | |||
==Наcтройка отправки netflow на устройстве== | |||
===Отправка netflow на Mikrotik=== | |||
<pre> | |||
/ip traffic-flow target add address=10.20.30.1:8888 version=5 | |||
/ip traffic-flow set enabled=yes cache-entries=4k active-flow-timeout=00:01:00 inactive-flow-timeout=00:00:05 interfaces=all | |||
</pre> | |||
Здесь 10.20.30.1 - ip центрального сервера NoDeny+, на котором запущен flow-capture. | |||
==Прием netflow на сервере NoDeny+== | |||
Разрешим прием netflow на сервере NoDeny+ | |||
<pre> | |||
ipfw add 2035 allow udp from 10.20.30.40 to any 8888 | |||
Здесь 10.20.30.40 - ip устройства, с которого принимаем netflow. | |||
</pre> | |||
Проверим сброс дампа на диск | |||
<pre> | |||
rm -f /var/db/flows/ft* | |||
rm -f /var/db/flows/8888.txt | |||
kill -HUP `cat /var/run/flow-capture/flow-capture.pid.8888` | |||
ls -l /var/db/flows/ | |||
</pre> | |||
Если в списке будет присутствовать ненулевой файл 8888.txt - все ок. | |||
Расшифруем дамп | |||
<pre> | |||
flow-print -f6 < /var/db/flows/8888.txt | |||
</pre> | |||
==Настраиваем модуль ядра по сбору netflow== | |||
Редактируем /usr/local/nodeny/kernel/collectors.cfg | |||
<pre> | |||
{ | |||
type => 'netflow', | |||
port => '8888', | |||
flow_base => '/var/db/flows/', | |||
capture_pid => '/var/run/flow-capture/flow-capture.pid', | |||
ext_iface => '2', | |||
}, | |||
</pre> | |||
Измените параметр ext_iface - номер внешнего интерфейса на устройстве. | |||
==Запускаем модуль сбора трафика== | |||
<pre> | <pre> | ||
perl /usr/local/nodeny/nokernel.pl -m=collectors -v | |||
</pre> | </pre> | ||
После тестирования, не забудьте добавить в /etc/rc.local автозапуск flow-capture и модуля ядра collectors, а также в /etc/rc.firewall правило для разрешения приема netflow. | |||
Если у вас несколько устройств, с которых вы принимаете netflow, то вам необходимо на каждом новом устройстве указать уникальный netflow порт (8889, 8890 и т.д.), запустить копию flow-capture на новом порте с указанием порта в имени pl-файла, добавить запись в /usr/local/nodeny/kernel/collectors.cfg, а также добавить правило в фаервол. |
Поточна версія на 07:26, 20 вересня 2019
Установка flow-tools
Flow-tools — набор утилит для отправки, сбора, обработки и анализа данных netflow.
mkdir /var/db/flows mkdir /var/run/flow-capture/ pkg install flow-tools
Несмотря на то, что в /usr/local/etc/rc.d/ будет установлен скрипт для запуска flow-capture, запустим с командной строки:
/usr/local/bin/flow-capture -R /var/db/flows/netflow_8888.pl \ -p /var/run/flow-capture/flow-capture.pid -w /var/db/flows \ -n1 -N0 0.0.0.0/0.0.0.0/8888
Здесь:
- 0.0.0.0/0.0.0.0/8888 - принимаем поток netflow на порт 8888.
- -R /var/db/flows/netflow_8888.pl - поток будет обрабатываться скриптом netflow_8888.pl.
- -n1 - ротация раз в день, т.е. фактически отключаем автоматическую ротацию файлов, поскольку статистику будем получать по требованию.
- -N0 - не создавать подпапки с годом/месяцем и т.д.
- /var/run/flow-capture/flow-capture.pid - pid файл, важно. Проверьте, что после запуска появится файл: /var/run/flow-capture/flow-capture.pid.8888.
- /var/db/flows - куда flow-capture будет записывать свои файлы.
flow-capture принимает netflow поток на udp порт 8888. Чтобы сбросить дамп потока на диск, нужно послать сигнал HUP. Дамп будет записан в /var/db/flows c именем из текущей даты и дополнительной информацией. После этого автоматически будет запущен скрипт netflow_8888.pl, которому будет передано имя дампа. Задача этого скрипта простая: переименовать файл с потоком в 8888.txt.
cp /usr/local/nodeny/modules/netflow/netflow_8888.pl /var/db/flows/ chmod 700 /var/db/flows/netflow_8888.pl
Наcтройка отправки netflow на устройстве
Отправка netflow на Mikrotik
/ip traffic-flow target add address=10.20.30.1:8888 version=5 /ip traffic-flow set enabled=yes cache-entries=4k active-flow-timeout=00:01:00 inactive-flow-timeout=00:00:05 interfaces=all
Здесь 10.20.30.1 - ip центрального сервера NoDeny+, на котором запущен flow-capture.
Прием netflow на сервере NoDeny+
Разрешим прием netflow на сервере NoDeny+
ipfw add 2035 allow udp from 10.20.30.40 to any 8888 Здесь 10.20.30.40 - ip устройства, с которого принимаем netflow.
Проверим сброс дампа на диск
rm -f /var/db/flows/ft* rm -f /var/db/flows/8888.txt kill -HUP `cat /var/run/flow-capture/flow-capture.pid.8888` ls -l /var/db/flows/
Если в списке будет присутствовать ненулевой файл 8888.txt - все ок.
Расшифруем дамп
flow-print -f6 < /var/db/flows/8888.txt
Настраиваем модуль ядра по сбору netflow
Редактируем /usr/local/nodeny/kernel/collectors.cfg
{ type => 'netflow', port => '8888', flow_base => '/var/db/flows/', capture_pid => '/var/run/flow-capture/flow-capture.pid', ext_iface => '2', },
Измените параметр ext_iface - номер внешнего интерфейса на устройстве.
Запускаем модуль сбора трафика
perl /usr/local/nodeny/nokernel.pl -m=collectors -v
После тестирования, не забудьте добавить в /etc/rc.local автозапуск flow-capture и модуля ядра collectors, а также в /etc/rc.firewall правило для разрешения приема netflow.
Если у вас несколько устройств, с которых вы принимаете netflow, то вам необходимо на каждом новом устройстве указать уникальный netflow порт (8889, 8890 и т.д.), запустить копию flow-capture на новом порте с указанием порта в имени pl-файла, добавить запись в /usr/local/nodeny/kernel/collectors.cfg, а также добавить правило в фаервол.