Softflowd + NFDUMP + NfSen - instalace a konfigurace

(Ubuntu 10.04 LTS)

Monitorování síťové komunikace pomocí NetFlow

Cílem je logovat informace o provozu na síťových rozhraních stanice a umožnit pohodlný přístup k záznamům prostřednictvím webové aplikace.

Software

  • Ubuntu 10.04 LTS 32-bit - OS
  • Apache - webový server
  • PHP - skriptovací jazyk
  • Softflowd - sonda/exportér síťových toků
  • NFDUMP - netflow kolektor (nástroje pro sběr a zpracování netflow dat)
  • NfSen - grafický webový frontend pro nfdump tools
  • Perl moduly (potřebné pro NfSen)

Stručný popis

Démon softflowd monitoruje provoz na určených síťových rozhraních a posílá záznamy o síťových tocích na zvolené IP adresy a porty. Odesílané záznamy jsou formátovány jako UDP datagramy kompatibilní s Cisco NetFlow exportním formátem verze 1, 5 nebo 9.

 

Tyto záznamy čte kolektor resp. démon nfcapd (součást nfdump tools), který je zpracovává a ukládá do souborů. Soubory jsou pak automaticky rotovány a přejmenovány ve výchozím intervalu 5 minut.


Démon nfcapd je spouštěný webovým frontendem NfSenkterý umožňuje uložená data pohodlně prohlížet. K dispozici jsou základní grafy, zobrazování údajů (čas, zdrojová/cílová IP adresa a port, protokol, množství přenesených dat, atd.) dle kritérií, možnost použití profilů, alertů i rozšíření funkčnosti pomocí pluginů.

 

Instalace potřebných balíků

Apache, PHP, Softflowd, nfdump tools, Perl moduly (balík libmailtools-perl je v zákl. instalaci Ubuntu 10.04 již obsažen):

sudo apt-get install apache2 php5 softflowd nfdump libio-socket-inet6-perl librrds-perl libmailtools-perl

Stažení, konfigurace a instalace NfSen

Stažení a rozbalení archivu do adresáře /usr/local/src:

cd /usr/local/src
sudo wget http://sourceforge.net/projects/nfsen/files/stable/nfsen-1.3.6p1/nfsen-1.3.6p1.tar.gz
sudo tar xzf nfsen-1.3.6p1.tar.gz

 

Přepnutí do instalačního adresáře a vytvoření konf. souboru kopií z připravené šablony:

cd nfsen-1.3.6p1
sudo cp etc/nfsen-dist.conf etc/nfsen.conf

 

Info: Červeně jsou označeny hodnoty (síť. rozhraní, IP adresy, názvy, apod.), které je třeba upravit dle vlastních potřeb.

 

V konf. souboru etc/nfsen.conf je třeba nastavit cesty k adresářům, spustitelným souborům nfdump tools ($PREFIX), uživatele/skupinu pod kterými (po)běží nfsen resp. apache a v %sources definovat zdroje netflow dat (název, číslo portu, barvu grafů, IP adresu a typ):

$BASEDIR="/usr/local/nfsen";
$HTMLDIR="/var/data/www/nfsen/";
$VARDIR="/var/data/nfsen";
$PROFILESTATDIR="${VARDIR}/profiles-stat";
$PROFILEDATADIR="${VARDIR}/profiles-data";
$PREFIX  = '/usr/bin';
$USER = "nfsen";
$WWWUSER = "www-data";
$WWWGROUP = "www-data";
%sources = (
    'local-eth0'        => { 'port' => '9991', 'col' => '#ff0000', 'IP' => '192.168.1.10', 'type'=> 'netflow' },
    'local-eth1'        => { 'port' => '9992', 'col' => '#0000ff', 'IP' => '192.168.10.10', 'type'=> 'netflow' },
);
$MAIL_FROM='admin@example.com';
# pripadne $SMTP_SERVER

Vytvoření datového adresáře:

sudo mkdir -p /var/data/nfsen

 

Vytvoření uživatele nfsen:

sudo useradd -c 'nfsen user' -d / -g www-data -M -s /sbin/nologin nfsen

 

Spuštění instalace:

cd /usr/local/src/nfsen-1.3.6p1/
sudo ./install.pl etc/nfsen.conf

 

Nastavení práv adresáři nfsen:

sudo chown -R nfsen /usr/local/nfsen

Konfigurace Apache

Nastavení www adresáře nfsen v souboru /etc/apache2/sites-available/default resp. /etc/apache2/sites-available/default-ssl. Přístup do adresáře bude vyžadovat autorizaci a bude povolen pouze uživateli admin. Přístupové údaje budou uloženy v souboru /etc/apache2/sites-available/htaccounts.

Alias /nfsen "/var/data/www/nfsen"
<Directory "/var/data/www/nfsen">
    AuthType Basic
    AuthName "AUTORIZOVANY PRISTUP"
    AuthUserFile /etc/apache2/sites-available/htaccounts
    Require user admin
    DirectoryIndex nfsen.php
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

Vytvoření hesla pro http přístup uživateli admin a uložení údajů do souboru /etc/apache2/sites-available/htaccounts:

sudo htpasswd -c -s /etc/apache2/sites-available/htaccounts admin

 

Nastavení práv www adresáři:

sudo chown root:www-data -R /var/data/www/nfsen/
sudo chmod 750 /var/data/www/nfsen/

Nastavení spouštění služeb a dokončení

Zrušení startu démona softflowd v /etc/rcX.d:

sudo update-rc.d softflowd disable

 

Nastavení automatického spouštění softflowd (pro 2 síťová rozhraní) a nfsen. Softflowd vyžaduje existenci adresáře /var/run/softflowd/chroot a každá instance démona vlastní PID resp. CTL soubor. Řádky vložit do souboru /etc/rc.local před příkaz "exit 0":

/bin/mkdir -p /var/run/softflowd/chroot
/usr/sbin/softflowd -i eth0 -n 192.168.1.10:9991 -p /var/run/sfd.pid.eth0 -c /var/run/sfd.ctl.eth0
/usr/sbin/softflowd -i eth1 -n 192.168.10.10:9992 -p /var/run/sfd.pid.eth1 -c /var/run/sfd.ctl.eth1
/usr/local/nfsen/bin/nfsen start

Poznámka: Ve výchozím nastavení je démon apache spouštěn automaticky viz skripty /etc/rcX.d.

Spuštění a ověření funkčnosti

Pro spuštění je třeba buď provést příkazy přidané do /etc/rc.local a restartovat apache nebo (ideálně) provést restart systému:

sudo reboot

 

Ověření, zda běží všechny potřebné služby:

ps ax | grep -E "softflowd|nfcapd|nfsen|apache"

 

Pokud vše proběhlo dobře, webový frontend je dostupný na adrese http://vas_server/nfsen/ a pro přístup je vyžadována autorizace. Údaje a grafy se začnou zobrazovat až po uložení a zpracování prvních dat, tj. cca po 5 minutách.