NETFLOW – monitoring a analýza prevádzky v sieti

Netflow je monitorovací nástroj, ktorý zbiera informácie o dátových tokoch v sieti. Tieto toky sú identifikované na základe tretej a štvrtej vrstvy RM OSI, čiže na základe IP adries a čísla TCP/UDP portov. Následne vieme zistiť, aké množstvo dát si zdroj a cieľ vymenili, akou rýchlosťou, či koľko paketov za sekundu si posielali. Tieto podklady nám pomáhajú v úlohách ako analýza prevádzky v sieti, troubleshooting, či identifikáciu DoS útoku.

analýza prevádzky v sieti netflow

Netflow architektúra

Architektúra pozostáva exportérov, čo sú zariadenia, ktoré posielajú informácie a z kolektorov, ktoré tieto dáta zbierajú a analyzujú. Ukážeme si, ako nakonfigurovať Cisco router ako exportéra a Linux server, ako kolektor. Použijeme distribúciu  Ubuntu 16.04, podobne ako v iných návodoch.

Samotná analýza prevádzky v sieti bude pozostávať z dvoch prvkov. Prvým je NFDUMP, čo je sada nástrojov, ktorá slúži na spracovanie dát z exportérov a predstavuje back end tohto systému. Druhým je NFSEN, ktorý zabezpečuje grafické zobrazenie týchto údajov, čiže predstavuje front end.

Konfigurácia Cisco routra

Povedzme, že chceme monitorovať príchodziu a odchodziu prevádzku v LAN routra. Na LAN rozhranie pridáme príkazy „ip flow ingress“ a „ip flow egress

interface Vlan3
 description LAN
 ip address 192.168.1.1 255.255.255.0
 ip flow ingress
 ip flow egress

Definujeme IP adresu kolektora a UDP port, na ktorom mu budeme dáta posielať. Ak by sme chceli na kolektore súčasne monitorovať viac zariadení, nastavili by sme im iné UDP porty.

ip flow-export destination 172.16.80.102 9995

Definujeme verziu Netflow. Použijeme verziu 9, nakoľko posiela najviac informácií.

ip flow-export version 9

Ak potrebujeme, zadefinujeme si zdrojové rozhranie, z ktorého budú Netflow dáta odosielané

ip flow-export source Vlan3

NFDUMP – Inštalácia back end

Inštaláciu NFDUMP spustíme nasledovným príkazom:

apt-get install nfdump

Tiež nainštalujeme potrebné PERL, PHP a APACHE moduly:

apt install make gcc flex rrdtool libmailtools-perl librrd-dev libpcap-dev php librrds-perl libsocket6-perl apache2 libapache2-mod-php

NFSEN – Inštalácia front end

Stiahnutie NFSEN

Stiahneme a rozbalíme NFSEN do root priečinku apache web servera, v tomto prípade do /var/www/ .

cd /var/www/
wget http://sourceforge.net/projects/nfsen/files/stable/nfsen-1.3.6p1/nfsen-1.3.6p1.tar.gz
tar zxvf nfsen-1.3.6p1.tar.gz
mv nfsen-1.3.6p1 nfsen

Skopírujeme hlavný konfiguračný súbor nfsen.conf do priečinku /etc/

 cp /var/www/nfsen/etc/nfsen-dist.conf /etc/nfsen.conf

Úprava hlavného konfiguračného súboru NFSEN

V súbore nfsen.conf upravíme nasledovné položky a definujeme zariadenia, z ktorých budeme príjímať Netflow dáta. V tomto prípade to bude iba náš Cisco router s IP adresou 192.168.1.1.

vim /etc/nfsen.conf
$BASEDIR = "/data/nfsen";
$HTMLDIR = "/var/www/html/nfsen/";
$PREFIX = '/usr/bin';

$USER = "www-data";
$WWWUSER = "www-data";
$WWWGROUP = "www-data";
#$PROFILERS = 2;
%sources = (
'netvelR1' => { 'port' => '9995','col' => '#0000ff' ,'IP' => '192.168.1.1', 'type' => 'netflow' },
);

Workaround

Aby nám nevybehla chybová hláška „RRD version ‚1.5001‘ not yet supported!“, upravíme riadok 76 v súbore /var/www/nfsen/libexec/NfSenRRD.pm .

vim /var/www/nfsen/libexec/NfSenRRD.pm

Riadok vyzerá takto:

if ( $rrd_version >= 1.2 && $rrd_version < 1.5 )

Upravíme ho na nasledovný tvar:

if ( $rrd_version >= 1.2 && $rrd_version < 1.6 )

Vytvoríme BASEDIR priečinok:

mkdir -p /data/nfsen

Spustenie inštalácie

cd /var/www/nfsen/
 ./install.pl /etc/nfsen.conf

Workaround #2

Ďalší NFSEN bug odstránime tým, že zmeníme jeden riadok v nasledovných súboroch

 /data/nfsen/libexec/AbuseWhois.pm
 /data/nfsen/libexec/Lookup.pm

Odstránime, alebo zakomentujeme tento riadok:

#use Socket6;

Nahradíme ho týmto riadkom:

Socket6->import(qw(pack_sockaddr_in6 unpack_sockaddr_in6 inet_pton getaddrinfo));

Dodatočné nastavenia

Zabezpečíme, aby daemon štartoval automaticky.

ln -s /data/nfsen/bin/nfsen /etc/init.d/nfsen
update-rc.d nfsen defaults 20

Vytvoríme  symbolic link pre súbor nfsen.php

ln -s /var/www/nfsen/nfsen.php /var/www/nfsen/index.php

Upravíme práva dôležitým priečinkom.

chown -R www-data:www-data /data/nfsen
chown -R www-data:www-data /var/www/nfsen

Naštartovanie NFSEN

cd /data/nfsen/bin/
./nfsen start

Zobrazenie výsledkov v príkazovom riadku

Ak všetko dobre zbehlo, mali by sme na serveri príjímať Netflow dáta z routra. Na obrázku nižšie môžeme vidieť cestu, ako sa dostaneme k odchyteným dátam. Každý deň sa nám vytvorí nový priečinok a každých 5 minút vznikne nový nfcapd súbor, ktorý má v mene aj časovú značku. Tento súbor vieme otvoriť v CLI pomocou príkazu „nfdump -R“.

analýza prevádzky v sieti nfdump

Prístup na grafické rozhranie

Tiež by nám malo fungovať GUI cez webový prehliadač. Ak ste išli presne podľa tohto návodu, grafické rozhranie pre zobrazovanie Netflow dát nájdete v linku s nasledovným tvarom:

http://<IP adresa servera>/nfsen/nfsen.php

Zobrazí sa vám podobná obrazovka s grafmi.

analýza prevádzky v sieti nfsen 2

Ak nás zaujíma analýza prevádzky v sieti, bude pre nás najzaujímavejšia záložka „Details“.

analýza prevádzky v sieti nfsen 1

Analýza prevádzky v sieti

Necháme prevádzku chvíľu bežať a môžeme začať skúmať dátové toky v našej sieti. V sekcii Netflow Processing vyplníme kritéria, ktoré nás zaujímajú a stlačíme tlačidlo „process“. V tomto prípade sme si nechali zobraziť TOP 10 zdrojových IP adries, ktoré majú najviac dátových tokov. Ak by bol na našu sieť spustený DoS útok, mohli by sme výstup filtrovať na základe PPS, alebo množstva pretečených dát, čím by sme zistili, na akú adresu je útok zahájený, alebo z akej adresy (alebo adries v prípade DDoS) je útok inicializovaný.

analýza prevádzky v sieti nfsen 3

Ak vás tento článok zaujal a chcete dostávať mailovú notifikáciu, pri publikovaní podobných článkov o hackingu, sieťovej bezpečnosti, Linux serveroch, Cisco zariadeniach, či o programovaní, môžete sa prihlásiť na odber článkov.

Picture of Matej Šipkovský

Matej Šipkovský

Spoločnosť NETVEL s.r.o. založil Matej Šipkovský, ktorý sa venuje najmä implementácii sieťových riešení a sieťovej bezpečnosti pre firemných klientov. Študoval na Slovenskej Technickej Univerzite v Bratislave na Fakulte Elektrotechniky a Informatiky odbor Telekomunikácie, kde dokončil inžinierske štúdium. Počas školy získal certifikát Cisco CCNP Routing & Switching a neskôr pribudli certifikácie Cisco Certified Design Professional (CCDP), CCNA Security, AWS Certified Cloud Practitioner, ITILv4 Foundation a Fortinet Network Security Architect NSE7.
Picture of Matej Šipkovský

Matej Šipkovský

Spoločnosť NETVEL s.r.o. založil Matej Šipkovský, ktorý sa venuje najmä implementácii sieťových riešení a sieťovej bezpečnosti pre firemných klientov. Študoval na Slovenskej Technickej Univerzite v Bratislave na Fakulte Elektrotechniky a Informatiky odbor Telekomunikácie, kde dokončil inžinierske štúdium. Počas školy získal certifikát Cisco CCNP Routing & Switching a neskôr pribudli certifikácie Cisco Certified Design Professional (CCDP), CCNA Security, AWS Certified Cloud Practitioner, ITILv4 Foundation a Fortinet Network Security Architect NSE7.
Zdieľať príspevok:

Súvisiace príspevky