ipt_NETFLOW — быстрый NetFlow сенсор трафика, состоит из модуля ядра и iptables, поддерживает NetFlow v5, v9, v10(IPFIX).
ipt_NETFLOW собирается из исходных кодов, по этому при обновлении ядра операционной системы его необходимо пересобирать.
В первую очередь установим необходимые компоненты, например для Ubuntu/Debian:
apt-get install module-assistant iptables-dev pkg-config m-a prepare
Для CentOS:
yum install kernel-devel iptables-devel pkgconfig
Скачаем ipt_NETFLOW:
git clone git://github.com/aabc/ipt-netflow.git ipt-netflow cd ipt-netflow
Выполним установку:
./configure --help ./configure --enable-natevents make all install depmod
Или так:
./configure --disable-conntrack --disable-natevents make all install depmod
Укажем адрес коллектора /etc/modprobe.d/netflow.conf
echo options ipt_NETFLOW destination=192.168.2.2:2055 protocol=5 natevents=1 > /etc/modprobe.d/netflow.conf
Загрузим модуль ядра и посмотрим параметры:
modprobe ipt_NETFLOW sysctl -a | grep net.netflow sysctl net.netflow cat /proc/net/stat/ipt_netflow
Изменить параметры если что можно так (сбросятся после перезапуска системы):
sysctl net.netflow.hashsize=32768
Добавим любое из правил iptables, в зависимости для какого трафика необходимо собирать статистику, например на сервере доступа достаточно правила с «FORWARD»:
iptables -I FORWARD -j NETFLOW iptables -I INPUT -j NETFLOW iptables -I OUTPUT -j NETFLOW
Правила NETFLOW должны быть в самом начале, поэтому если есть другие iptables правила, то укажем номер при добавлении правила, например:
iptables -I FORWARD 1 -j NETFLOW
Удалять iptables правила можно так:
iptables -D FORWARD -j NETFLOW iptables -D INPUT -j NETFLOW iptables -D OUTPUT -j NETFLOW
Убедимся что правило добавлено и сенсор запущен:
iptables -nvL | grep NETFLOW iptables -nvL FORWARD | grep NETFLOW netstat -anpl | grep 2055
На сервере с коллектором убедимся что от сенсора ipt_NETFLOW приходят данные:
tcpdump -c5 -npi lo port 2055 tcpdump port 2055 -e -n
Если все ок, добавим модуль в файл /etc/modules, чтобы он загрузился после перезапуска системы:
echo ipt_NETFLOW >> /etc/modules
Выгрузить модуль если что можно так:
iptables -D FORWARD -j NETFLOW modprobe -r ipt_NETFLOW
На тесте я установил ipt_NETFLOW на сервере который обслуживал 6000 клиентов с трафиком 6 Gb/s, во время установки перебоев со связью у клиентов не возникло, загрузка процессора почти не изменилась (установлено два CPU e5-2690v2).
Смотрите также мою статью:
Установка и использование Nfdump