Analyse des flux Netflow sous GNU/Linux

Date: 27/11/2009 | Catégories: Open-source,Reseau | Tags: ,,,,

Netflow est un protocole réseau créé par Cisco pour collecter des informations sur les flux IP. Nous allons dans ce billet voir comment configurer un routeur pour activer la sonde Netflow puis récupérer et analyser le résultat sur une machine GNU/Linux (Ubuntu 9.10, mais les outils sont disponibles sur l'ensemble des distributions).

L'architecture qui illustrera ce billet est la suivante:

Netflow

Le routeur Cisco (192.168.0.1): Netflow exporter sur le schéma.

  • interface FastEthernet 0/1 vers Internet
  • interface FastEthernet 0/0 vers le LAN on se trouve le PC sous GNU/Linux

Le PC sous GNU/Linux (192.168.0.100): Netflow collector + storage + analyser sur le schéma.

Remarque: il est également possible d'installer une sonde (fonction de type Netflow exporter) sur une machine de type GNU/Linux ou *BSD en utilisant le logiciel libre fprobe (ou fprobe-ng).

Configuration du routeur Cisco

Cette configuration est a adapter selon votre architecture (source Manage Engine):

Pour voir la liste des flux Netflow:

Enfin on vérifie que les paquets Netflow (UDP/9996) sont bien reçu sur le PC GNU/linux, pour cela on ouvre un terminal et on tape:

On doit voir des paquets arriver toutes les secondes.[/crayon]

Installation des outils d'analyse Netflow

Nous allons utiliser les outils de la suite NFDump. En plus d'être distribuée sous licence libre ("BSD license"), NFDump est disponible sous GNU/Linux et *BSD. Sur la distribution Ubuntu, l'installation est très simple car NFDump est disponble dans les dépôts:

Nous allons dans un premier temps créer un répertoire ou sera stocké les données (storage sur le schéma):

Attention: selon le débit de votre liaison et le nombre de flux, le volume des données peut vite devenir important.

Ensuite il faut lancer le collecteur Netflow (collector sur le schéma) grâce à la commande suivante:

Description des options:

  • -p fixe le port UDP d'écoute (9996 dans notre configuration du routeur Cisco)
  • -l fixe le répertoire ou les données seront stockées (emplacement du collector)
  • -w permet de s'assurer que la collecte sera faite toutes les n minutes (n=5 par défaut) avec des valeurs 0,5,10...
  • -D permet de demander à nfcapd de se lancer comme un daemon (en tache de fond)

Analyse des données Netflow

En ligne de commande

NFDump met a disposition un logiciel nommé nfdump. Ce dernier permet de lire les données stockées dans le collector et de les afficher de manière lisible.

Par exemple pour voir la liste complète des flux ayant transitée par le routeur depuis le lancement de la commande nfcapd avec un maximum de détail, il faut saisir la commande:

NFdump

On a alors pour chaque flux les informations suivantes:

  • Durée du flux
  • Protocole réseau (TCP/UDP/ICMP...)
  • Adresses source et destination
  • Ports source et destination
  • Flags TCP
  • Champs Tos (DSCP)
  • Nombre de paquets
  • Taille en octets
  • Nombre de paquets par seconde
  • Débit en bit par seconde
  • Taille en octets par paquets
  • Nombre de flux

On peut également demander la liste des TOP 10 en terme de flux:

Pour une liste exhausitve des capacité d'affichage de nfdump, je vous redirige vers la page suivante.

Par une interface Web

Dans sa grande bonté, NfDump propose également une interface Web complète pour analyser et mettre en forme des rapports. C'est un projet à part qui s'appelle NfSen.

Voici un screenshot:

nfsen

J'ai écrit un billet sur le sujet: à lire ici.