Настройка Netflow в Centos 7

Подготовка системы

[root@sandbox ~]# # yum update -y

Сборка и установка пакета инструментов NFDUMP

[root@sandbox ~]# yum install rrdtool-devel
[root@sandbox ~]# tar -xf nfdump-1.6.13.tar.gz
[root@sandbox ~]# cd nfdump-1.6.13/
[root@sandbox nfdump-1.6.13]# ./configure --prefix=/opt/nfdump-1.6.13 --enable-nfprofile
[root@sandbox nfdump-1.6.13]# make && make check
[root@sandbox nfdump-1.6.13]# make install && make install check
[root@sandbox nfdump-1.6.13]# find /opt/nfdump-1.6.13/
 /opt/nfdump-1.6.13/
 /opt/nfdump-1.6.13/bin
 /opt/nfdump-1.6.13/bin/nfcapd
 /opt/nfdump-1.6.13/bin/nfdump
 /opt/nfdump-1.6.13/bin/nfreplay
 /opt/nfdump-1.6.13/bin/nfexpire
 /opt/nfdump-1.6.13/bin/nfanon
 /opt/nfdump-1.6.13/bin/nfprofile
 /opt/nfdump-1.6.13/share
 /opt/nfdump-1.6.13/share/man
 /opt/nfdump-1.6.13/share/man/man1
 /opt/nfdump-1.6.13/share/man/man1/ft2nfdump.1
 /opt/nfdump-1.6.13/share/man/man1/nfcapd.1
 /opt/nfdump-1.6.13/share/man/man1/nfdump.1
 /opt/nfdump-1.6.13/share/man/man1/nfexpire.1
 /opt/nfdump-1.6.13/share/man/man1/nfprofile.1
 /opt/nfdump-1.6.13/share/man/man1/nfreplay.1
 /opt/nfdump-1.6.13/share/man/man1/nfanon.1
 /opt/nfdump-1.6.13/share/man/man1/sfcapd.1

Подготовка архива для переноса на рабочий сервер:

[root@sandbox ~]# cd /opt/
[root@sandbox opt]# tar -czf /root/nfdump.tgz nfdump-1.6.13/

Развертывание NFDUMP на рабочем сервере:

[root@srvX ~]# tar -xf /tmp/nfdump.tgz -C /opt/
[root@srvX ~]# /opt/nfdump-1.6.13/bin/nfcapd -V
/opt/nfdump-1.6.13/bin/nfcapd: Version: 1.6.13

Установка и настройка NfSen

Подготовка хранилища для данных:

[root@srvX ~]# mkdir /mnt/netflow
[root@srvX ~]# echo '/dev/sdb1 /mnt/netflow auto defaults 0 0' >>/etc/fstab
[root@srvX ~]# mount -a && df -h /mnt/netflow
 Filesystem Size Used Avail Use% Mounted on
 /dev/sdb1 6.4T 33M 6.4T 1% /mnt/netflow

Первичная установка NfSen из архива:

[root@srvX ~]# tar -xf /tmp/nfsen-1.3.6p1.tar.gz -C /usr/src/
[root@srvX ~]# cd /usr/src/nfsen-1.3.6p1/
[root@srvX nfsen-1.3.6p1]# cp etc/nfsen-dist.conf etc/nfsen.conf

Подготовка конфигурации для рабочей установки:

[root@srvX nfsen-1.3.6p1]# vim etc/nfsen.conf
 $BASEDIR='/opt/nfsen';
 $HTMLDIR='/var/www/html/nfsen';
 $PROFILEDATADIR='/mnt/netflow/profiles-data';
 $PREFIX='/opt/nfdump-1.6.13/bin';
 $WWWUSER='apache';
 $WWWGROUP='apache';
 %sources = (
   'sw1' =>{'port' => 9996, 'IP' => '1.1.1.1', 'optarg' => ' -s 2500', 'col' => '#0000ff' },
   'sw2' =>{'port' => 9996, 'IP' => '2.2.2.2', 'optarg' => ' -s 2500', 'col' => '#00ff00' },
   'sw3' =>{'port' => 9996, 'IP' => '3.3.3.3', 'optarg' => ' -s 2500', 'col' => '#ff0000' },
 );

Установка зависимостей для полноценной работы NfSen:

[root@srvX nfsen-1.3.6p1]# yum install httpd php rrdtool-perl
[root@srvX nfsen-1.3.6p1]# yum install perl-MailTools perl-Socket6 perl-Sys-Syslog

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

[root@srvX nfsen-1.3.6p1]# useradd -c 'Netflow user' -G apache netflow

Указать правильную часовую зону для PHP:

[root@srvX nfsen-1.3.6p1]# vim /etc/php.ini
date.timezone = Europe/Moscow

Запустить perl-скрипт первичной установки:

[root@srvX nfsen-1.3.6p1]# ./install.pl etc/nfsen.conf
 Check for required Perl modules: All modules found.
 Setup NfSen:
 Version: 1.3.6p1: $Id: install.pl 53 2012-01-23 16:36:02Z peter $

Perl to use: [/usr/bin/perl]
 Found /opt/nfdump-1.6.13/bin/nfdump: Version: 1.6.13
 Setup php and html files.
 ...
 Rebuilding profile stats for './live'
 Reconfig: No changes found!
 Setup done.

Обновить NfSen до последней доступной версии 1.3.7 (не обязательно):

[root@srvX nfsen-1.3.6p1]# tar -xf /tmp/nfsen-1.3.7.tar.gz -C /usr/src/
[root@srvX ~]# cd ../nfsen-1.3.7/
[root@srvX nfsen-1.3.7]# cp ../nfsen-1.3.6p1/etc/nfsen.conf etc/
[root@srvX nfsen-1.3.7]# ./install.pl etc/nfsen.conf
 Check for required Perl modules: All modules found.
 Upgrade from version '1.3.6p1' installed at Thu Oct 8 14:47:06 2015
 ...
 Setup done.

Добавить символьную ссылку, чтобы не смотреть содержимое каталога при обращении по адресу http://srvX/nfsen:

[root@srvX ~]# cd /var/www/html/nfsen/
[root@srvX nfsen]# ln -s nfsen.php index.php

Запуск Apache HTTP server и проверка его работоспособности:

[root@srvX ~]# systemctl start httpd.service
[root@srvX ~]# systemctl enable httpd.service

[root@srvX ~]# netstat -nlp | grep httpd
 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6114/httpd

Настройка редиректа в Apache:

[root@srvX ~]# vim /etc/httpd/conf/httpd.conf
<Directory />
 RedirectMatch ^/$ /nfsen/nfsen.php
...
</Directory>

Управление NfSen

Запуск:

[root@srvX ~]# /opt/nfsen/bin/nfsen start

Обновление конфигурации “на лету”:

[root@srvX ~]# vim /opt/nfsen/etc/nfsen.conf
[root@srvX ~]# /opt/nfsen/bin/nfsen reconfig

Остановка:

[root@srvX ~]# /opt/nfsen/bin/nfsen stop

Обновление конфигурации при остановленном NfSen:

[root@srvX ~]# vim /opt/nfsen/etc/nfsen.conf
[root@srvX ~]# /opt/nfsen/bin/nfsen reconfig
[root@srvX ~]# /opt/nfsen/bin/nfsen start

Итоги

После сборки, переноса на рабочий сервер и настройки\установки NfSen, имеем web-инструмент по адресу http://srvX, который умеет работать с собранными дампами Netflow от сетевого оборудования.

Back