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' => '', 'col' => '', '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/.
Par exemple la ligne de commande suivante permet d'afficher de manière textuelle la liste
des flux:
nfdump -R /opt/nfsen/profiles-data/live/monrouteur -o extended -a
Sources pour la rédaction de cet article:
Billet original de Nicolargo.Votez pour cet article sur le Planet Libre.