Это старая версия документа.
FreeBSD
http://www.splintered.net/sw/flow-tools/
Пакет утилит для работы с NetFlow потоками отправляемыми маршрутизаторами Cisco или Juniper.
# cd /usr/ports/net-mgmt/flow-tools # make # make install
Запускаем
flow-capture -S 5 -n 287 -N 0 -d 5 -w /usr/abills/var/log/ipn/ 0/0/9996
Параметры:
-S 5 - каждые 5 минут коллектор будет скидывать статистику о своей работе в лог. Самое интересное там - это количество потерянных посылок, которые не дошли до коллектора
-n 287 - количество ротаций файлов с записями о соединениях в сутки. 287 означает создание нового файла с данными netflow каждые 5 минут.
-N 0 - так называемый nesting_level; определяет структуру директорий которая, будет создаваться при записи файлов с соединениями, 0 - файл с данными netflow в каталоге.
-d 5 - Уровень отладки. Используется только для теста или выявления аномалий. Можно не указывать.
-w /usr/abills/var/log/ipn/ - Каталог, в котором сохраняются файлы с данными netflow.
0/0/9995 - по порядку: адрес, на котором коллектор будет принимать netflow, адрес с которого коллектор будет принимать netflow и порт, на который коллектор будет принимать netflow. Если первый заменить на 0, то коллектор будет принимать на любой адрес из доступных интерфейсов, если второй заменить на 0, то коллектор будет принимать netflow данные с любых адресов. Этого делать не рекомендуется по одной простой причине: netflow не имеет никаких средств авторизации, поэтому если адрес, на котором коллектор принимает netflow, доступен кому-то еще, то злоумышленник может послать ложные данные. Учитывая то, что данные netflow могут использоваться как для расчетов, так и выявления сетевых проблем и аномалий, лучше обезопаситься и задать все жестко.
Кроме того, можно запустить несколько коллекторов на разных адресах и/или портах, так же один колектор может работать с несколькими роутерами одновременно и различать их по полю engine-id.
Автоматический старт при загрузке в FreeBSD:
# chown flowtools /usr/abills/var/log/ipn/
/etc/rc.conf
flow_capture_enable="YES" flow_capture_datadir="/usr/abills/var/log/ipn/" flow_capture_port="9996" flow_capture_flags="-S 5 -n 287 -N 0 -d 5"
старт flow_capture
/usr/local/etc/rc.d/flow_capture start
Запуск нескольких демонов flow_capture
Иногда возникают ситуации когда нужно запустить несколько процессов flow_capture для получения flow потоков от разных серверов доступа. /etc/rc.conf
flow_capture_enable="YES" flow_capture_profiles="r1 r2" # описание первого демона на порту 9997 flow_capture_r2_datadir="/usr/abills/var/log/ipn/" flow_capture_r2_port="9997" flow_capture_r2_flags="-S 5 -n 1400 -N 0 -d 5" # описание второго демона 9996 flow_capture_r1_datadir="/usr/abills/var/log/ipn2/" flow_capture_r1_port="9996" flow_capture_r1_flags="-S 5 -n 287 -N 0 -d 5"
Debian
Установка flow-tools:
# apt-get install flow-tools
Запускаем flow-tools:
# flow-capture -S 5 -n 287 -N 0 -d 5 -w /usr/abills/var/log/ipn/ 0/0/9996
Параметры: -S 5 - каждые 5 минут коллектор будет скидывать статистику о своей работе в лог. Самое интересное там - это количество потерянных посылок, которые не дошли до коллектора.
-n 287 - количество ротаций файлов с записями о соединениях в сутки. 287 означает создание нового файла с данными netflow каждые 5 минут.
-N 0 - так называемый nesting_level; определяет структуру директорий которая, будет создаваться при записи файлов с соединениями, 0 - файл с данными netflow в каталоге.
-d 5 - Уровень отладки. Используется только для теста или выявления аномалий. Можно не указывать.
-w /usr/abills/var/log/ipn/ - Каталог, в котором сохраняются файлы с данными netflow.
0/0/9995 - по порядку: адрес, на котором коллектор будет принимать netflow, адрес с которого коллектор будет принимать netflow и порт, на который коллектор будет принимать netflow. Если первый заменить на 0, то коллектор будет принимать на любой адрес из доступных интерфейсов, если второй заменить на 0, то коллектор будет принимать netflow данные с любых адресов. Этого делать не рекомендуется по одной простой причине: netflow не имеет никаких средств авторизации, поэтому если адрес, на котором коллектор принимает netflow, доступен кому-то еще, то злоумышленник может послать ложные данные. Учитывая то, что данные netflow могут использоваться как для расчетов, так и выявления сетевых проблем и аномалий, лучше обезопаситься и задать все жестко.
Меняем конфиг:
# echo "-S 5 -n 287 -N 0 -d 5 -w /usr/abills/var/log/ipn/ 0/0/9996" > /etc/flow-tools/flow-capture.conf
Автозапуск:
# update-rc.d flow-capture defaults # update-rc.d flow-capture enable
CentOS
Можно пользоваться инструкцией для Debian, установив epel репозиторий
ТЕСТИРУЕТСЯ
Устанавливаем flow-tools с пакетов:
# yum install -y flow-tools
Создаем папку для логов:
# mkdir /usr/abills/var/log/ipn/
Запустить flow-tools командой:
# flow-capture -S 5 -n 287 -N 0 -d 5 -w /usr/abills/var/log/ipn/ 0/0/9996
Где:
-S 5 - каждые 5 минут коллектор будет скидывать статистику о своей работе в лог. Самое интересное там - это количество потерянных посылок, которые не дошли до коллектора.
-n 287 - количество ротаций файлов с записями о соединениях в сутки. 287 означает создание нового файла с данными netflow каждые 5 минут.
-N 0 - так называемый nesting_level; определяет структуру директорий которая, будет создаваться при записи файлов с соединениями, 0 - файл с данными netflow в каталоге.
-d 5 - Уровень отладки. Используется только для теста или выявления аномалий. Можно не указывать.
-w /usr/abills/var/log/ipn/ - Каталог, в котором сохраняются файлы с данными netflow.
0/0/9995 - по порядку: адрес, на котором коллектор будет принимать netflow, адрес с которого коллектор будет принимать netflow и порт, на который коллектор будет принимать netflow. Если первый заменить на 0, то коллектор будет принимать на любой адрес из доступных интерфейсов, если второй заменить на 0, то коллектор будет принимать netflow данные с любых адресов. Этого делать не рекомендуется по одной простой причине: netflow не имеет никаких средств авторизации, поэтому если адрес, на котором коллектор принимает netflow, доступен кому-то еще, то злоумышленник может послать ложные данные. Учитывая то, что данные netflow могут использоваться как для расчетов, так и выявления сетевых проблем и аномалий, лучше обезопаситься и задать все жестко.
Автозапуск
Создаем файл автозагрузки:
# /etc/rc.d/init.d/flow-capture
И в него заносим следующий скрипт:
#!/bin/sh # # flow-tools Tool set for working with NetFlow data # # chkconfig: - 44 44 # description: flow-tools. # # processname: flow-capture # pidfile: /var/run/flow-capture.pid # Source function library . /etc/rc.d/init.d/functions # Get network config . /etc/sysconfig/network RETVAL=0 start() { echo -n $"Starting Flow-capture daemon: " daemon /usr/bin/flow-capture -S 5 -n 287 -N 0 -d 5 -w /usr/abills/var/log/ipn/ 0/0/9996 RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/flow-capture return $RETVAL } stop() { echo -n $"Stopping Flow-Capture daemon: " killproc flow-capture RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/run/flow-capture.pid /var/lock/subsys/flow-capture return $RETVAL } restart() { stop start } reload() { return $RETVAL } case "$1" in start) start ;; stop) stop ;; status) status flow-capture ;; restart) restart ;; condrestart) [ -f /var/lock/subsys/flow-capture ] && restart || : ;; reload) reload ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}" exit 1 esac exit $?
Добавляем flow-capture в автозагрузку:
chkconfig --add flow-capture chkconfig --level 345 flow-capture on