Netflow. Centos 7. Коллектор Centos 7 + Сенсор Mikrotik
Коллектор Centos 7
Selinux disable
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
reboot
Firewall disable
systemctl stop firewalld
systemctl disable firewalld
Установка пакетов
yum update -y
yum install gcc flex rrdtool-devel
wget https://downloads.sourceforge.net/project/nfdump/stable/nfdump-1.6.13/nfdump-1.6.13.tar.gz
tar -xf nfdump-1.6.13.tar.gz
cd nfdump-1.6.13/
./configure --prefix=/opt/nfdump-1.6.13 --enable-nfprofile
make && make check
make install && make install check
Проверяем расположение nfdump
find /opt/nfdump-1.6.13/
Подготовка хранилища для данных:
mkdir /var/netflow
Первичная установка NfSen из архива
(в /etc/src/ будет лежать директория инсталляции nfsen
Директории назначения и настройки укажем в nfsen.conf)
wget https://downloads.sourceforge.net/project/nfsen/stable/nfsen-1.3.8/nfsen-1.3.8.tar.gz
tar -xf /tmp/nfsen-1.3.8.tar.gz -C /usr/src/
cd /usr/src/nfsen-1.3.8/
cp etc/nfsen-dist.conf etc/nfsen.conf
Подготовка конфигурации для рабочей установки:
nano 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 = (
'mikrotik-tmb-17' => { 'port' => '9996', 'col' => '#abcdef', 'type' => 'netflow' },
);
...
Установка зависимостей для полноценной работы NfSen:
yum install cpan httpd php rrdtool-perl perl-MailTools perl-Socket6 perl-Sys-Syslog
cpan Mail::Header
cpan Mail::Internet
Добавить отдельного пользователя под которым будут работать NfSen в связке с инструментами из пакета NFDUMP:
useradd -c 'Netflow user' -G apache netflow
Указать правильную часовую зону для PHP:
nano /etc/php.ini
... date.timezone = Europe/Moscow ...
Запустить perl-скрипт первичной установки:
cd /usr/src/nfsen-1.3.8/
./install.pl etc/nfsen.conf
Добавить символьную ссылку, чтобы не смотреть содержимое каталога при обращении по адресу http://srvX/nfsen:
cd /var/www/html/nfsen/
ln -s nfsen.php index.php
Настройка конфигурации nfsen для httpd
nano /etc/httpd/conf.d/nfsen.conf
Alias /nfsen /var/www/html/nfsen <Directory /var/www/html/nfsen> DirectoryIndex index.php <IfModule mod_authz_core.c> # Apache 2.4 Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Allow from All Allow from ::1 </IfModule> Order deny,allow Allow from all </Directory>
systemctl start httpd.service
systemctl enable httpd.service
Запуск
Корректнее создать службу (см. далее)
/opt/nfsen/bin/nfsen start
Создание службы для автозапуска
mkdir /root/scripts
nano /root/scripts/nfsen_start.sh
#!/bin/bash /opt/nfsen/bin/nfsen start
nano /etc/systemd/system/nfsen.service
[Unit] Description=Nfsen Requires=network.target After=network.target [Service] ExecStart=/root/scripts/nfsen_start.sh -n Type=forking [Install] WantedBy=multi-user.target
systemctl start nfsen
systemctl enable nfsen
Обновление конфигурации "на лету":
nano /opt/nfsen/etc/nfsen.conf
/opt/nfsen/bin/nfsen reconfig
Остановка
/opt/nfsen/bin/nfsen stop
Обновление конфигурации при остановленном NfSen:
nano /opt/nfsen/etc/nfsen.conf
/opt/nfsen/bin/nfsen reconfig
/opt/nfsen/bin/nfsen start
Сенсор Mikrotik
192.168.17.7:9996 - адрес и порт (для микротика) коллектора
/ip traffic-flow set enabled=yes interfaces=all
/ip traffic-flow target add address=192.168.17.7:9996 version=5
Примеры фильтра на коллекторе
proto tcp and ip 192.168.17.7
tcp and ( src ip 172.16.17.18 or dst ip 172.16.17.19)
tcp and ( net 172.16/16 and src port > 1024 and dst port 80 ) and bytes > 2048