Installation de NFSen, un front-end pour NFDump

Dans un précédant article, nous avions abordé l'analyse des flux réseau via le protocole NetFlow. Des outils en ligne de commande avaient été présentés pour afficher des rapports sur les informations remonté par les sondes.

Il existe également une interface Web nommée NFSen dont nous allons parler aujourd'hui.

Les pré-requis

On doit avoir sur sa machine GNU/Linux:


sudo aptitude install rrdtool librrds-perl

Installation de NFSen

On commence par télécharger la dernière version (1.3.2) de NFSen dans un répertoire de travail:


cd ~/src/

wget http://downloads.sourceforge.net/project/nfsen/stable/nfsen-1.3.2/nfsen-1.3.2.tar.gz?use_mirror=freefr

On décompresse:


tar zxvf nfsen-1.3.2.tar.gz

cd nfsen-1.3.2/

NFSen est livré avec un script Perl d'auto installation. Il y a quelques manipulations à faire avant de lancer le script. Je détaille pas mais le coeur y est...


sudo useradd -m nfsen

sudo passwd nfsen

sudo usermod -G www-data nfsen

sudo mkdir /var/www/nfsen

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

On édite ensuite le fichier de configuration ./etc/nfsen.conf (à partir du fichier nfsen-dist.conf):


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

vi ./etc/nfsen.conf

On change les lignes suivantes:


$BASEDIR = "/opt/nfsen";

$PREFIX = "/usr/bin";

$USER    = "nfsen";
$WWWUSER  = "nfsen";
$WWWGROUP = "www-data";

%sources = (
 'monrouteur'    => { 'port'    => '9996', 'col' => '#0000ff', 'type' => 'netflow' }
);

On peut ensuite lancer le script d'installation:


sudo ./install.pl etc/nfsen.conf

On peut vérifier que l'arborescence de NFSen a bien été créée dans le répertoire /opt/nfsen et dans /var/www/nfsen:


ls -alF /opt/nfsen/

total 28
drwxr-xr-x 2 root  www-data 4096 2010-03-18 09:09 bin
drwxr-xr-x 2 root  www-data 4096 2010-03-18 09:09 etc
drwxr-xr-x 2 root  www-data 4096 2010-03-18 09:09 libexec
drwxr-xr-x 2 root  www-data 4096 2010-03-18 09:09 plugins
drwxrwxr-x 3 nfsen www-data 4096 2010-03-18 09:09 profiles-data
drwxrwxr-x 3 nfsen www-data 4096 2010-03-18 09:09 profiles-stat
drwxrwxr-x 6 nfsen www-data 4096 2010-03-18 09:09 var

ls -alF /var/www/nfsen/

total 316
-rw-r--r-- 1 root www-data 45019 2010-03-18 09:09 alerting.php
-rw-r--r-- 1 root www-data 24139 2010-03-18 09:09 colour_palette.html
-rw-r--r-- 1 root www-data  3318 2010-03-18 09:09 colour_picker.html
-rw-r--r-- 1 root root       142 2010-03-18 09:09 conf.php
drwxr-xr-x 2 root www-data  4096 2010-03-18 09:09 css
-rw-r--r-- 1 root www-data 57987 2010-03-18 09:09 details.php
drwxr-xr-x 3 root www-data  4096 2010-03-18 09:09 doc
drwxr-xr-x 2 root www-data  4096 2010-03-18 09:09 icons
drwxr-xr-x 2 root www-data  4096 2010-03-18 09:09 js
-rw-r--r-- 1 root www-data  1177 2010-03-18 09:09 lookup.php
-rw-r--r-- 1 root www-data  4130 2010-03-18 09:09 navigator.php
-rw-r--r-- 1 root www-data 21613 2010-03-18 09:09 nfsen.php
-rw-r--r-- 1 root www-data 21541 2010-03-18 09:09 nfsen.php.orig
-rw-r--r-- 1 root www-data 17666 2010-03-18 09:09 nfsenutil.php
-rw-r--r-- 1 root www-data  3868 2010-03-18 09:09 overview.php
-rw-r--r-- 1 root www-data  2740 2010-03-18 09:09 pic.php
drwxr-xr-x 2 root www-data  4096 2010-03-18 09:09 plugins
-rw-r--r-- 1 root www-data  4005 2010-03-18 09:09 process.php
-rw-r--r-- 1 root www-data 56991 2010-03-18 09:09 profileadmin.php
-rw-r--r-- 1 root www-data  1389 2010-03-18 09:09 rrdgraph.php

Dans le but de lancer NFSen comme un service Linux, il est nécessaire de créer le lien symbolique suivant:


sudo ln -s /opt/nfsen/bin/nfsen /etc/init.d/nfsen

Enfin pour forcer le lancement de NFSen au boot de la machine:


sudo update-rc.d nfsen defaults

Lancement du démon NFSen

Pour lancer le daemon en tache de fond, il suffit de saisir la commande suivante:


sudo /etc/init.d/nfsen start

Remarque Attention, avant de lancer NfSen, il faut s'assurer que NFDump n'est pas lancé. En effet, c'est NfSen qui va lancer NfDump... Sinon vous risquez d'avoir l'erreur suivante: "Receive socket error: could not open the requested socket".

Il est possible d'avoir l'état du démon NFSen avec la commande:


sudo /etc/init.d/nfsen status

NfSen version: 1.3.2
NfSen status:
Collector for 'upstream1'    is running: 20335.
Collector for 'peer1'    is running: 20338.
nfsen daemon:  pid: [20340] is running.

Modification des sources Netflow

La liste des sources Netflow se trouve dans le fichier /opt/nfsen/etc/nfsen.conf. La syntaxe est assez simple:


# Netflow sources
# Define an ident string, port and colour per netflow source
#
# Required parameters:
#    ident   identifies this netflow source. e.g. the router name,
#            Upstream provider name etc.
#    port    nfcapd listens on this port for netflow data for this source
#             set port to '0' if you do not want a collector to be started
#    col     colour in nfsen graphs for this source
#
# Optional parameters
#    type    Collector type needed for this source. Can be 'netflow' or 'sflow'. Default is netflow
#     optarg     Optional args to the collector at startup
#
# Syntax:
#         'ident' => { 'port' => '<portnum>', 'col' => '<colour>', 'type' => '<type>' }
# Ident strings must be 1 to 19 characters long only, containing characters [a-zA-Z0-9_].

%sources = (
 'monrouteur'    => { 'port'    => '9996', 'col' => '#0000ff', 'type' => 'netflow' },

'monautrerouteur'    => { 'port'    => '9997', 'col' => '#0000ff',  'type' => 'netflow' }
);

Une fois le fichier de configuration modifié, il faut recharger la configuration NFSen grâce à la commande:


sudo /etc/init.d/nfsen reconfig

NfSen version: 1.3.2
NfSen status:
Collector for 'monrouteur'    is running: 21514.
nfsen daemon:  pid: [21516] is running.

Configuration de l'interface Web

Maintenant que le démon tourne en tache de fond de notre machine, il s'occupe de récupérer les Netflow venant de nos routeurs grâce à NFDump. Il nous reste à configurer notre serveur Web pour "présenter" les rapports.

Par exemple sous Cherokee, il suffit de créer le serveur virtuel nfsen qui pointe vers la racine /car/www/nfsen.

Utilisation de l'interface Web NFSen

On pointe sont navigateur vers l'URL du serveur http://monserveur/nfsen/nfsen.php

L'interface NFSen devrait s'afficher !

Quelques informations complémentaires

Il est toujours possible de traiter les fichiers de données Netflow en ligne de commande. Les fichiers en question se trouve dans le répertoire /opt/nfsen/profiles-data/live/<nomdurouteur>.

Par exemple la ligne de commande suivante permet d'afficher de manière textuelle la liste des flux:

</p>
<p style="text-align: left;">nfdump -R /opt/nfsen/profiles-data/live/monrouteur -o extended -a</p>
<p style="text-align: left;">

Sources pour la rédaction de cet article:

Vus : 1450
Publié par Nicolargo : 402