Nfdump fait partie des outils de collection Netflow, qui comprennent:
nfcapd, nfdump, nfreplay, nfexpire, nftest, nfgen
Il y a un paquetage dans Ubuntu, mais il n'est pas à jour, donc nous allons l'installer à partir des sources. D'abord, assurons-nous que nous avons les outils de compilation et leurs dépendences:
$ sudo apt-get install build-essential
$ sudo apt-get install rrdtool mrtg librrds-perl librrdp-perl librrd-dev \
libmailtools-perl php5 bison flex
Maintenant nous pouvons procéder au téléchargement et à la compilation. Notez que la dernière étape doit s'effectuer en tant que 'root'.
$ cd
$ wget http://noc.ws.nsrc.org/downloads/nfdump-1.6.10p1.tar.gz
$ tar xvzf nfdump-1.6.10p1.tar.gz
$ cd nfdump-1.6.10p1
$ ./configure --help # facultatif - pour voir les options disponibles
$ ./configure --enable-nfprofile --enable-nftrack
$ make
$ sudo make install
mkdir /tmp/nfcap-test
nfcapd -E -p 9001 -l /tmp/nfcap-test
... au bout d'un certain temps, une série de flux devrait être affichée sur votre écran.
Arrêtez l'outil avec CTRL-C, et inspectez le contenu de /tmp/nfcap-test
$ ls -l /tmp/nfcap-test
Vous devriez voir un ou plusieurs fichiers nommés nfcapd.<ANNEE><MOIS><JOUR><HH><MM>
Inspectez ce(s) fichier(s) avec nfdump:
nfdump -r /tmp/nfcap-test/nfcapd.2013xxyyzz | less
nfdump -r /tmp/nfcap-test/nfcapd.2013xxyyzz -s srcip/bytes
Vous devriez y trouvez quelques informations utiles :)
Télécharger et compiler. Le patch (correctif) est nécessaire pour corriger un problème rapporté à http://sourceforge.net/p/nfsen/bugs/31/
$ cd
$ wget http://noc.ws.nsrc.org/downloads/nfsen-1.3.6p1.tar.gz
$ tar xvzf nfsen-1.3.6p1.tar.gz
$ cd nfsen-1.3.6p1
$ wget http://noc.ws.nsrc.org/downloads/nfsen-socket6.patch
$ patch -p0 < nfsen-socket6.patch
$ cd etc
$ cp nfsen-dist.conf nfsen.conf
$ editor nfsen.conf
Ajuster la variable $BASEDIR
$BASEDIR="/var/nfsen";
Configurer le bon utilisateur afin qu'Apache puisse accéder aux fichiers:
$WWWUSER = 'www-data';
$WWWGROUP = 'www-data';
Paramétrer la taille du buffer (tampon) à une petite taille, pour qu'on reçoive des données rapidement:
# Receive buffer size for nfcapd - see man page nfcapd(1)
$BUFFLEN = 2000;
Trouver la section avec la définition des sources (%sources), et la modifier ainsi:
%sources=(
'rtrX' => {'port'=>'9001','col'=>'#0000ff','type'=>'netflow'},
);
(remplacer rtrX par le routeur de votre groupe, et supprimer / mettre en commentaire les autres exemples de sources. Maintenaint, sauver le fichier et quitter l'éditeur.
$ sudo useradd -d /var/netflow -G www-data -m -s /bin/false netflow
Assurons nous que nous sommes au bon endroit:
$ cd
$ cd nfsen-1.3.6p1
Enfin, on peut installer:
$ sudo perl install.pl etc/nfsen.conf
Appuyer sur ENTREE quand on vous demande le chemin de Perl.
Afin que nfsen démarre et s'arrête automatiquement quand votre machine démarre, ajoutez un lien depuis le répertoire init.d pointant sur le script d'initialisation de nfsen:
$ sudo ln -s /var/nfsen/bin/nfsen /etc/init.d/nfsen
$ sudo update-rc.d nfsen defaults 20
Démarrer NfSen
$ sudo service nfsen start
Vérifier que'au moins un processus nfcapd à été démarré:
# ps auxwww | grep nfcapd
La page nfsen se trouve ici:
http://pcX.ws.nsrc.org/nfsen/nfsen.php
Si vous travaillez par paires, alors chacun d'entre vous ouvrira l'adresse ci-dessus dans votre navigateur (vers le PC qui reçoit les flux).
Si vous voyez un message similaire:
Frontend - Backend version missmatch!
... ce n'est pas grave, il suffit de recharder la page et il disparaît.
Fini! Continuons avec le labo 3, exercice3-nfsen-top-talkers.
Si vous aviez plusieurs routers sur votre réseau qui envoient des flux vers le même collecteur, vous pourriez soit configurer chacun d'entre eux pour qu'ils envoient les flux vers des ports différents sur votre collecteur, ou bien vous pourriez indiquer à nfsen l'adresse IP de chaque routeur. Ceci permet à nfsen d'afficher les données propres à chaque source de manière distincte.
NE PAS FAIRE CECI MAINTENANT - vous n'avez pour le moment qu'un seul routeur, mais si vous deviez le faire, vous procéderiez de la manière suivate:
%sources = (
'rtrX' => { 'port' => '900X', 'col' => '#0000ff', 'type' => 'netflow' },
'rtrY' => { 'port' => '900Y', 'col' => '#00ff00', 'type' => 'netflow' },
'gw' => { 'port' => '9010', 'col' => '#ff0000', 'type' => 'netflow' },
);
Il faudra faire ceci chaque fois que aller modifier /var/nfsen/etc/nfsen.conf:
$ sudo /etc/init.d/nfsen reconfig
Vous devriez alors voir:
New sources to configure : rtr10
Continue? [y/n] y
Add source 'gw'
Add source 'rtrY'
Start/restart collector on port '9002' for (rtr2)[pid]
Start/restart collector on port '9996' for (gw)[pid]
Restart nfsend:[pid]