Progiciel

Sonde Netflow avec Raspberry

avril 14, 2021

Sonde Netflow avec Raspberry

This post is also available in : Anglais Espagnol

raspberry_pandora

Netflow est un protocole réseau créé par Cisco, conçu pour collecter des métriques de trafic IP. Il s’agit actuellement d’une norme largement utilisée dans la supervision réseau. Il permet de superviser et d’analyser le trafic généré par une adresse IP, un protocole, un logiciel, etc. spécifique, car il permet d’appliquer des filtres basés sur l’adresse IP source et de destination, et le port source et de destination. Son fonctionnement repose sur l’utilisation de plusieurs composants :

  • Un périphérique compatible avec Netflow, généralement un commutateur ou un routeur de type matériel réseau, qui génère des paquets d’informations ou une sonde Netflow.
  • Un collecteur Netflow, qui reçoit les paquets générés par le périphérique précédent, les stockant et les traitant. Il s’agit généralement d’un outil ou d’un serveur doté de ces capacités.

raspberry

Dans l’article d’aujourd’hui, nous allons expliquer comment configurer une Sonde netflow avec Raspberry, un environnement similaire pour la supervision Netflow, en utilisant un périphérique Raspberry comme sonde et un serveur Pandora FMS comme collecteur, qui comprend les outils nécessaires pour le stockage et l’analyse des informations Netflow, ainsi obtenant une structure de supervision réseau entièrement fonctionnelle utilisant le protocole netflow pour moins de 100 €.

Installation et préparation Raspberry

Le Raspberry est livré avec un emplacement pour carte microSD, que nous utiliserons pour l’installation du système d’exploitation Raspbian. Si vous avez acheté la microSD avec l’image NOOBS, vous pouvez installer le système d’exploitation directement à partir d’ici. Sinon, vous devez le télécharger sur le site officiel et préparer vous-mêmes une microSD.netflow probe raspberry

Lorsque vous démarrez le Raspberry avec votre microSD préparé, un assistant vous guidera tout au long de l’installation, de manière très simple, en progressant dans les étapes de l’assistant et en complétant les informations nécessaires (mots de passe, connexion Wi-Fi, etc.) en quelques minutes vous aurez le système prêt à fonctionner et votre appareil pour commencer à fonctionner.

Pour l’instant, que ce soit par câble ou via Wi-Fi, laissez l’IP de votre appareil être automatiquement accordée par DHCP: votre routeur vous donne automatiquement une IP gratuite. Plus tard, nous expliquerons en détail la configuration réseau que vous devez suivre pour travailler dans ce scénario.


netflow probe raspberry

La version utilisée dans cet article est Raspbian PIXEL, la dernière version de bureau Raspbian :

netflow probe raspberry dashboard

Une fois votre système Raspbian installé et avec un accès Internet, d’abord mettez à jour les packages et les référentiels, en téléchargeant de nouvelles versions au moyen de :

apt-get update && apt-get upgrade

Ensuite, installez les composants nécessaires pour qu’il puisse fonctionner comme une sonde netflow : le paquet nfdump, qui contient fprobe, nfcapd et nfdump. Chacun de ces composants a une fonction spécifique que nous verrons ci-dessous.

Auparavant, téléchargez quelques outils nécessaires :

apt-get install gcc flex librrd-dev make

Téléchargez et installez le package nfdump (https://sourceforge.net/projects/nfdump/) ; Il sera compressé au format .tar.gz. Décompressez-le et effectuer l’installation comme décrit ci-dessous :

wget http://downloads.sourceforge.net/project/nfdump/stable/nfdump-1.6.13/nfdump-1.6.13.tar.gz
tar –zxvf nfdump-1.6.13.tar.gz
cd nfdump-1.6.13
./configure
make & make install

Vous aurez déjà tous les composants nécessaires pour monter une sonde netflow sur votre Raspberry, mais qu’en est-il du collecteur netflow ? Ce sera un serveur Pandora FMS, dont nous décrirons la préparation dans cet article.


Voulez-vous en savoir plus sur la supervision réseau ?

Réseaux distants, supervision unifiée, seuils intelligents… découvrez la supervision réseau dans la version Entreprise de Pandora FMS


Paramètres réseau et environnement

En premier lieu, placez la sonde à un point de passage de notre trafic réseau, vous garantissez donc de collecter le plus de trafic possible.

Dans notre cas, nous avons connecté le raspberry à un port du commutateur de bureau, qui a un « port mirroring » fait pour que tout le trafic passe par là, afin que vous puissiez le surveiller. Dans le cas de notre commutateur Cisco Catalyst, la configuration est simple, mais un environnement égal peut être préparé en connectant le Raspberry à différents périphériques tels que des routeurs, des pare-feu ou d’autres commutateurs, et chaque périphérique et technologie a sa propre façon de l’implémenter, nous devons donc nous informer sur la façon de le faire pour notre cas.

Le schéma du réseau que nous allons préparer sera le suivant :

netflow probe architecture

Pour le commutateur Cisco, il faut localiser le port auquel votre routeur est connecté et auquel vous avez connecté le raspberry ; dans notre cas, Gi0/8 pour le routeur et Gi0/16 pour la sonde netflow.

Nous nous connectons au routeur par ligne de commande en utilisant telnet :

telnet 192.168.50.252

<introduire identifiants>

enable

<introduire identifiants d’administrateurs>

Et nous effectuerons le port mirroring comme ceci:

configure terminal
monitor session 1 source interface Gi0/8
monitor sesión 1 destination interface Gi0/16

raspberry5

Vous pouvez vérifier qu’il a été correctement configuré en exécutant :

show monitor sesión 1

raspberry6

De plus, si vous exécutez show interfaces status, vous verrez le port de supervision étiqueté « monitoring » :

raspberry7

Comme nous utilisons la connexion Ethernet de notre raspberry pour écouter et collecter des informations sur le trafic, nous ne pourrons pas utiliser cette interface pour nous y connecter et effectuer les configurations et requêtes dont nous avons besoin, en plus de cela, il ne pourra pas l’utiliser pour transmettre les informations Netflow au serveur de Pandora FMS que vous voulez. C’est pourquoi nous devrons également configurer la connexion wifi pour pouvoir y accéder par ssh et permettre au raspberry de communiquer avec le serveur Pandora FMS.

raspberry8

Pour faciliter l’accès et la gestion de notre appareil raspberry, nous allons configurer une adresse IP statique pour l’interface wlan0, tandis que l’adresse IP de l’interface eth0 sera désactivée pour éviter tout type de conflit, même si l’interface restera à l’écoute.
Nous allons d’abord configurer l’adresse IP statique de notre interface wlan0 en éditant le fichier /etc/network/interfaces comme suit (remplacez les paramètres de votre réseau) :

raspberry9

Disable the eth0 interface IP with the command:

ip addr flush dev eth0

raspberry10

Et désactivez l’IP de l’interface eth0 avec la commande :

echo “1” > /proc/sys/net/ipv4/ip_forward

Préparé les deux connexions de notre raspberry, nous allons activer ip_forward au moyen de l’exécution suivante :

fprobe –ieth0 –fip 192.168.70.114

Dans le premier paramètre, -ieth0, vous devez remplacer eth0 par le nom de l’interface par laquelle le trafic passera, et dans le second paramètre –fip utilisez l’adresse IP vers laquelle vous voulez rediriger les informations collectées par la sonde.

Il est important de mettre en œuvre une automatisation garantissant que votre sonde continue de fonctionner à tout moment en cas de redémarrage ou d’arrêt du processus pour quelque raison que ce soit. Pour ce faire, dans ce cas, nous avons utilisé un petit script qui vérifie que fprobe est en cours d’exécution, et si ce n’est pas le cas, il l’exécute à nouveau. Nous placerons ce script dans une tâche périodique qui s’exécute toutes les 5 minutes. Le script netflow.sh a ce contenu :

#!/bin/bash
check=`ps aux | grep fprobe | grep -v grep | wc -l`
if [ $check -eq 0 ]; then
/usr/sbin/fprobe -ieth0 -fip 192.168.70.41:9995
fi

Et pour automatiser son exécution toutes les 5 minutes :

echo "*/5 * * * * root /home/pi/netflow.sh" >> /etc/crontab

Il est important d’accorder des autorisations d’exécution au script ou, le cas échéant, d’indiquer le moteur d’exécution à utiliser (sh).
Bien que cette méthode garantit déjà l’exécution même si le processus est arrêté manuellement ou au démarrage, nous pouvons ajouter l’exécution du script au fichier /etc/rc.local afin qu’il soit lancé au démarrage du raspberry.

Préparation du collecteur Netflow, Pandora FMS

Il faut maintenant préparer le point de réception des paquets Netflow, qui sera un serveur Pandora FMS avec la capacité de traiter et d’utiliser ces informations pour les présenter sous forme de graphiques.

Nous devrons installer le package nfdump de la même manière que nous l’avons fait dans le Raspberry, d’abord les utilitaires nécessaires :

yum install gcc flex librrd-dev make

Deuxièmement, le package nfdump :

wget http://downloads.sourceforge.net/project/nfdump/stable/nfdump-1.6.13/nfdump-1.6.13.tar.gz
tar –zxvf nfdump-1.6.13.tar.gz
cd nfdump-1.6.13
./configure
make & make install

Dans le cas où votre Pandora FMS a été installé via l’ISO officiel, ces étapes ne seront pas nécessaires lorsque ces composants sont déjà installés par défaut.
Une fois installé, utilisez l’utilitaire nfcapd pour ouvrir un chemin d’écoute et recevoir les informations netflow envoyées par votre sonde raspberry. La commande à utiliser sera la suivante :

nfcapd –l /var/spool/pandora/data_in/netflow –D

Avec le paramètre –l, nous indiquons le chemin dans lequel stocker ces informations, qui doit coïncider avec la configuration de la section netflow dans votre console Pandora FMS, et le paramètre –D vous permet d’exécuter en arrière-plan (mode démon) pour qu’il écoute toujours les informations Netflow reçues de la sonde.

Après un certain temps, vous devriez être en mesure de voir les informations Netflow sur votre serveur Pandora FMS. Pour le vérifier, lancez simplement :

nfdump –R /var/spool/pandora/data_in/netflow

Et vous verriez quelque chose comme ceci :

raspberry11

raspberry12

Nous devons également activer l’affichage netflow dans la configuration de votre console Pandora FMS afin de pouvoir utiliser ces informations, elles se trouvent dans la section Setup ->

General:

raspberry13

Une nouvelle section apparaîtra dans la configuration, pour indiquer certains des paramètres netflow :

raspberry14

Il est essentiel que le « Data storage path » corresponde à celui indiqué lors de l’exécution de nfcapd, car ce sera ce répertoire à partir duquel Pandora FMS lira les informations et construira les graphiques.

Vous aurez un nouvel élément dans le menu des vues, « Netflow Live View » :

raspberry15

De là, vous pouvez observer et analyser toutes les informations disponibles reçues de votre sonde netflow, et vous pouvez appliquer différents filtres pour obtenir des informations détaillées. Les filtres de base ont une série de champs tels que l’adresse IP ou le port de destination et source, les filtres avancés prennent en charge les expressions de filtre pcap :

raspberry16

raspberry17

Les informations peuvent être affichées dans différents types de graphiques et de tableaux. Dans l’image précédente, vous voyez le graphique par défaut avec le format standard des graphiques Pandora FMS.

Pie graph :

raspberry18

Tables :

raspberry19

raspberry20

Graphique détaillé, déplacer la souris sur n’importe quel élément affichera des détails supplémentaires :

raspberry21

Tout filtre que vous utilisez peut être enregistré pour une utilisation ultérieure et sera également utilisé pour créer les rapports Netflow. Vous pouvez mettre ces filtres à la disposition des utilisateurs disposant de profils d’affichage qui n’ont pas accès au filtrage manuel.

Exemples pratiques

1. Afficher le trafic des adresses IP avec l’adresse de destination 192.168.50.252, en une journée :

raspberry22

2. Afficher les protocoles utilisés avec l’adresse de destination 192.168.50.252, en une journée :

raspberry23

3. Afficher 5 résultats de trafic avec le port de destination 80, en 1 heure :

raspberry24

4. Afficher le trafic avec le port de destination 80, en 1 heure, afficher le protocole utilisé :

raspberry25

5. Afficher 5 résultats d’adresses de destination d’origine 192.168.70.1, en une journée :

raspberry26


Leave a comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.