Общие сведения
ipt-netflow — это самый быстрый netflow-сенсор (счётчик) для Линукса.
Состоит из двух модулей: для ядра и для iptables.
В стандартные ядро и iptables пока не входит — требует сборки из исходных текстов!
Обсуждается включение в Debian — см. lists.debian.org/debian-mentors/2011/04/msg00070.html и bugs.debian.org/cgi-bin/bugreport.cgi?bug=620511
Система
Debian Squeeze (6.0.3) amd64
Ядро 2.6.38 из backports (на момент подготовки данной документации — самое свежее)
Сборка на тестовой системе
Устанавливаем необходимые пакеты:
apt-get install -t squeeze-backports linux-headers-2.6.38-bpo.2-amd64
apt-get install -t squeeze-backports quilt debhelper autotools-dev iptables-dev dkms pkg-config
Скачиваем и распаковываем sourceforge.net/projects/ipt-netflow/files/ipt-netflow/
Компилируем и устанавливаем в сборочную систему:
cd ./ipt_netflow-*
./configure
make all
make install
depmod
Делаем архив для установки на шлюзе:
find /lib -name "*NETFLOW*" | xargs tar czf
/tmp/ipt_netflow-$(modinfo -F version ipt_NETFLOW)-$(uname -r).tar.gz
Установка на рабочей системе
Разворачиваем из архива
tar xzf /tmp/ipt_netflow-*-*.tar.gz -C /
depmod
Настраиваем параметры загрузки (полный список параметров):
echo options ipt_NETFLOW destination=127.0.0.1:9996 > /etc/modprobe.d/netflow.conf
Загружаем и проверяем состояние:
modprobe ipt_NETFLOW
sysctl -a | grep net.netflow
Пускаем трафик через сенсор:
iptables -A FORWARD -j NETFLOW
Проверяем подсчёт:
iptables -nvL FORWARD | grep NETFLOW
tcpdump -c5 -npi lo port 9996
Включаем автозагрузку:
echo ipt_NETFLOW >> /etc/modules
Отключаем обновление ядра:
echo linux-image-2.6.38-bpo.2-amd64 hold | dpkg --set-selections
Если коллектор находится на другом компьютере, то т.к. в момент загрузки модуля интерфейсы и маршрутизация ещё не настроены, установка связи с коллектором может завершиться с ошибкой ядра 101 («destination unreached»). Чтобы её обойти, повторно устанавливаем соединение из /etc/rc.local:
f="/proc/sys/net/netflow/destination"
test -e "$f" && d="$(cat $f)" && echo "$d" > "$f"
Для тестовой версии качайте с git clone http://github.com/aabc/ipt-netflow.git
Появились новые фичи: ipv6, netflow v9/ipfix, nat events, и так далее. Нужен фидбэк. ;)