accueilSystèmes et réseauxRéseauxMétrologie
 

Mise en place d’un collecteur netflow


Introduction

Qu’est ce qu’un collecteur netflow, sflow ?

La plupart des équipements de routage (Cisco, Extreme Networks, 3COM, HP Procurve …) ont la possibilité d’envoyer des informations sur les flux qui les traversent vers un serveur qui stockera ces données. A partir de celles-ci , nous pourrons, a posteriori, analyser un attaque, ou tout problème qui a impacté le réseau.

La suite nfsen / nfdump est une bonne solution car open source, simple a mettre a place et permettant un paramétrage adapté à beaucoup de situations.

Nfdump est l’outil qui capture le netflow et le stocke. Nfsen est l’interface qui permet d’afficher, trier, créer des alertes à partir des données de Nfdump.

Mise en place de la solution

Installer nfdump

le programme qui capture les flows s’appelle nfcapd. Un instance de ce programme sera lancée pour chaque équipement envoyant du netflow.

sur le routeur, il faut :

  • Sur un routeur Cisco :
    • Sur l’interface que l’on surveille :
      interface fastethernet 0/0 ip route-cache flow
    • En global sur le routeur :
      ip flow-export
      ip flow-export version 5
      ip flow-cache timeout active 5
      ip flow-export destination X.X.X.X 9995

le 9995 est un exemple. C’est le port udp que vous choisissez pour un des équipements.

  • Sur un routeur Juniper :
    • Sur l’interface que l’on surveille :set protocols sflow interfaces ge-0/0/0.0 polling-interval 20 set protocols sflow interfaces ge-0/0/0.0 sample-rate ingress 100
    • En global sur le routeur
      set protocols sflow polling-interval 20
      set protocols sflow sample-rate 100
      set protocols sflow collector X.X.X.X udp-port 9995

Pour tester la bonne réception
créer le repertoire de test mkdir /data/netflow/test
lancer le test nfcapd -w -D -l /data/netflow/test -p 9995
Pour lire le contenu d’un fichier :
nfdump -r nfcapd.201107121150

Installer nfsen

prérequis :

  • PHP and Perl
  • Modules Perl ’’’Mail ::Header, Mail ::Internet’’’
  • RRD tools
  • RRDs Perl Module

Création des utilisateurs et des répertoires :

création du groupe
sudo groupadd www-data
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
cp ./etc/nfsen-dist.conf  ./etc/nfsen.conf

Ajout d’un équipement source :

  • vi ./etc/nfsen.conf
    $USER    = "nfsen";
    $WWWUSER  = "nfsen";
    $WWWGROUP = "www-data";
    %sources = ('monrouteur'   => { 'port'    => '9996', 'col' => '#0000ff', 'type' => 'netflow' });

Lancement du script d’installation

sudo ./install.pl etc/nfsen.conf

on peut vérifier les repertoires

ls -alF /data/nfsen/

[root@xxxxxx nfsen]# ll
total 28K
drwxr-xr-x 2 root  www-data 4,0K jui 12 15:55 bin
drwxr-xr-x 2 root  www-data 4,0K jui 12 15:55 etc
drwxr-xr-x 2 root  www-data 4,0K jui 12 15:55 libexec
drwxr-xr-x 2 root  www-data 4,0K jui 12 15:55 plugins
drwxrwxr-x 3 nfsen www-data 4,0K jui 12 15:55 profiles-data
drwxrwxr-x 3 nfsen www-data 4,0K jui 12 15:55 profiles-stat
drwxrwxr-x 6 nfsen www-data 4,0K jui 12 15:55 var
  • Pour lancer le service sudo /etc/init.d/nfsen start
  • On voit l’état du service avec un :
[root@xxxxxx nfsen]# sudo /etc/init.d/nfsen status
NfSen version: 1.3.5
NfSen status:
Collector for (rextdsit) port 9995 is running [30257].
nfsen daemon:  pid: [30259] is running.

La liste des sources Netflow se trouve dans le fichier /data/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.
  • Vous pouvez maintenant accéder aux données en tapant dans un navigateur :

https://xxxx.fr/nfsen/nfsen.php

Ou xxxx est le nom du serveur sur lequel vous avez fait l’installation.

Pour tout complément d’information cliquez ici


ARESU
Direction des Systèmes d'Information du CNRS

358 rue P.-G. de Gennes
31676 LABEGE Cedex

Bâtiment 1,
1 Place Aristide Briand
92195 MEUDON Cedex



 

 

Direction des Systèmes d'Information

Pôle ARESU

Accueil Imprimer Plan du site Credits