(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 NfSen, který 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.