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.
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“.
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.
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
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ý.
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.