Supervision réseau avec NetFlow et sFlow

 

Introduction à l'analyse réseau en temps réel

Pandora FMS utilise un outil pour analyser le réseau en temps réel : NetFlow® et sFlow®. Il utilise le principe de l'« écoute » par Ethernet de manière continue et analyse le trafic pour générer des statistiques.

Pour intercepter le trafic du réseau et pouvoir l'analyser, il est nécessaire d'avoir un accès physique à ce réseau, car le point de capture du réseau doit être le plus approprié. Pour capturer ces données, il faut rediriger le trafic d'un port du switch vers un autre port via un « port-mirror ». Tous les dispositifs réseau ne le permettent pas (seulement ceux de milieu/haut de gamme). Il est également possible de faire un port-mirror sur certains dispositifs firewalls commerciaux. C'est la manière la plus simple d'intercepter le trafic et cela ne nécessite pas de matériel supplémentaire. En envoyant tout le trafic vers un port, ce port se connecte directement à l'analyseur de réseau (sonde).

Ces switchs et/ou firewalls de haut de gamme permettent de réaliser la surveillance de manière plus simple. Cela est dû au fait que ces dispositifs envoient les informations statistiques du flux réseau directement au collecteur de Pandora FMS sans avoir besoin d'utiliser une sonde indépendante. Il convient de consulter les caractéristiques du matériel pour savoir s'il peut activer NetFlow et/ou sFlow et envoyer les flux à un collecteur indépendant (dans ce cas, le collecteur de Pandora FMS).

Surveillance réseau avec NetFlow

Pandora FMS est capable de surveiller le trafic IP en utilisant le protocole NetFlow.

NetFlow® est un protocole réseau développé par Cisco Systems® et est actuellement pris en charge par plusieurs plateformes en plus de Cisco IOS® et NXOS®, comme par exemple sur les dispositifs de fabricants tels que Juniper®, Enterasys Switches®, et sur les systèmes d'exploitation comme Linux®, FreeBSD®, NetBSD® et OpenBSD®.

Protocole NetFlow

Les dispositifs avec NetFlow activé, lorsqu'ils activent cette fonctionnalité, génèrent des « enregistrements NetFlow » qui consistent en de petits fragments d'informations qu'ils envoient à un dispositif central (un serveur ou un collecteur NetFlow), lequel reçoit les informations des dispositifs (sondes NetFlow) pour les stocker et les traiter.

Ces informations sont transmises via le protocole NetFlow, basé sur UDP ou SCTP. Chaque enregistrement NetFlow est un petit paquet qui contient une quantité minimale d'informations, mais ne contient en aucun cas les données brutes du trafic. C'est-à-dire qu'il n'envoie pas le payload du trafic qui circule par le collecteur, uniquement les données statistiques.

La définition traditionnelle de Cisco est d'utiliser une clé de 7 éléments :

  • Adresse IP d'origine.
  • Adresse IP de destination.
  • Port UDP ou TCP d'origine.
  • Port UDP ou TCP de destination.
  • Protocole IP.
  • Interface (SNMP ifIndex).
  • Type de service IP.

Avec le temps, d'autres fabricants ont conçu des systèmes équivalents pour leurs dispositifs réseau, avec des noms différents mais un objectif similaire :

  • Jflow ou cflowd de Juniper Networks®.
  • NetStream de 3Com/H3C|HP®.
  • NetStream de Huawei®.
  • Cflowd d'Alcatel Lucent®.
  • Rflow d'Ericsson®.
  • AppFlow®.

Collecteur NetFlow

Il s'agit d'un dispositif (PC ou serveur) situé sur le réseau pour collecter toutes les informations NetFlow envoyées par les routers et les switches.

NetFlow génère et collecte ces informations, mais un logiciel est nécessaire pour stocker et analyser ce trafic. Avec Pandora FMS, un serveur spécial est utilisé à cette fin, que Pandora FMS démarrera et arrêtera lors du lancement du PFMS Server. Ce serveur s'appelle nfcapd et il est nécessaire de l'installer pour pouvoir utiliser la surveillance NetFlow.

Sonde NetFlow

Les sondes (comme Raspberry Pi) sont généralement des routers avec NetFlow activé, configuré, et envoyant les informations au collecteur NetFlow (qui sera dans ce cas le serveur de Pandora FMS avec le daemon nfcapd activé).

Exigences et installation

Pandora FMS utilise un outil OpenSource appelé nfcapd (appartenant au paquet nfdump) pour traiter tout le trafic NetFlow. Ce daemon est démarré automatiquement par le Pandora FMS Server. Ce système stocke les données dans des fichiers binaires, à un emplacement déterminé. Il faut installer nfcapd sur le système d'exploitation avant de pouvoir travailler avec NetFlow dans Pandora FMS.

Le daemon nfcapd écoute par défaut sur le port 9995/UDP, il faudra donc en tenir compte si des pare-feu sont activés afin d'ouvrir ce numéro de port lors de la configuration des sondes NetFlow.

Installation de nfcapd

L'installation de nfcapd doit être faite manuellement, car Pandora FMS ne l'installera pas. Pour plus d'informations, rendez-vous sur la page officielle du projet nfcapd.

Pandora FMS utilise par défaut le répertoire /var/spool/pandora/data_in/netflow pour traiter les informations, de sorte que lorsqu'il démarre, nfcapd utilisera ce répertoire. Évitez de modifier ce chemin d'emplacement, à moins que cela ne soit strictement nécessaire et que vous en ayez une pleine connaissance.

Il est nécessaire d'installer la version 1.6.8p1 de nfdump pour pouvoir l'utiliser avec Pandora FMS.

Si vous souhaitez vérifier que nfcapd est correctement installé, exécutez la commande suivante pour démarrer le processus au premier plan :

nfcapd -l /var/spool/pandora/data_in/netflow

Si tout se passe bien, vous devriez obtenir une sortie similaire à celle-ci :

 Add extension: 2 byte input/output interface index
 Add extension: 4 byte input/output interface index
 Add extension: 2 byte src/dst AS number
 Add extension: 4 byte src/dst AS number
 Add extension: 4 byte output bytes
 Add extension: 8 byte output bytes
 Add extension: NSEL Common block
 Add extension: NSEL xlate ports
 Add extension: NSEL xlate IPv4 addr
 Add extension: NSEL xlate IPv6 addr
 Add extension: NSEL ACL ingress/egress acl ID
 Add extension: NSEL username
 Add extension: NSEL max username
 Add extension: NEL Common block
 Bound to IPv4 host/IP: any, Port: 9995
 Startup.
 Init IPFIX: Max number of IPFIX tags: 62

Veuillez noter qu'il est nécessaire que Pandora FMS, et plus précisément le serveur WEB qui exécute la Console Web, ait accès à ces fichiers de données situés par défaut dans :

/var/spool/pandora/data_in/netflow

Installation des sondes

Si vous ne disposez pas d'un router avec NetFlow, mais que son trafic passe par un système Linux, vous pouvez installer un logiciel qui agit comme une sonde et envoie les informations de trafic NetFlow au collecteur.

Installation de fprobe

Le logiciel fprobe capture le trafic et le renvoie à un serveur NetFlow®. Avec lui, vous pouvez générer du trafic NetFlow à partir de tout le trafic réseau qui passe par ses interfaces.

Sur Ubuntu 22, il s'installe et se configure avec :

sudo apt install fprobe

L'installation propose eth0 comme interface par défaut, elle doit être configurée avec une interface réseau valide ; dans les distributions récentes, l'interface Ethernet porte le nom de enp1s0 et l'interface réseau sans fil wlp2s0, ces dénominations peuvent varier en fonction du matériel.

Ensuite, il demandera l'adresse IP et le numéro de port d'écoute du dispositif qui collectera les données (dans ce cas le PFMS server), dans un format similaire à 192.168.70.185:9995.

Une fois l'installation terminée, vous pouvez vérifier le fonctionnement :

sudo systemctl status fprobe

Et cela renverra une réponse similaire à celle-ci :

Pour l'activer à chaque démarrage du système :

sudo systemctl enable fprobe

Pour lire l'aide complète de fprobe :

https://manpages.ubuntu.com/manpages/resolute/man8/fprobe.8.html

Une fois le trafic généré, vous pourrez voir les statistiques de celui-ci dans le collecteur NetFlow du PFMS Server avec la commande :

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

Installation de pmacct

Expérimental.

Parmi les nombreuses caractéristiques de la sonde pmacct, on trouve la capacité de travailler avec NetFlow v1/v5/v7/v8/v9 et sFlow v2/v4/v5 sur IPv4 et IPv6.

Le code source est hébergé sur :

Installer les dépendances avec les droits d'administrateur :

Rocky Linux 8

dnf config-manager --set-enabled powertools
dnf groupinstall 'Development Tools'
dnf install libpcap libpcap-devel

Rocky Linux 9

dnf config-manager --set-enabled crb
dnf groupinstall 'Development Tools'
dnf install libpcap libpcap-devel

Télécharger le code source de pmacct (vous pouvez utiliser curl au lieu de wget) et compiler :

cd /tmp
wget -O pmacct-1.7.7.tar.gz \ 
  "https://github.com/pmacct/pmacct/releases/download/v1.7.7/pmacct-1.7.7.tar.gz"
tar xvzf pmacct-1.7.7.tar.gz
cd pmacct-1.7.7
./autogen.sh
./configure
make && make install

Démarrer pmacct comme sonde NetFlow en mode daemon :

  • Créer une configuration pour pmacct.

Dans ce cas particulier, tout le trafic de l'interface eth0 sera envoyé au collecteur NetFlow écoutant sur le numéro de port 9995 de l'adresse IP 192.168.70.185 :

cat> ~/pmacctd_probe.conf <<EOF
daemonize: true
pcap_interface: eth0
aggregate: src_host, dst_host, src_port, dst_port, proto, tos
plugins: nfprobe
nfprobe_receiver: 192.168.70.185:9995
nfprobe_version: 9
EOF
  • Démarrer pmacctd :
/usr/local/sbin/pmacctd -f ~/pmacctd_probe.conf

Comment opérer avec NetFlow dans Pandora FMS

Pandora FMS travaille avec NetFlow comme un système auxiliaire, c'est-à-dire qu'il ne stocke pas les informations NetFlow dans la base de données. Pandora FMS affiche ces informations sous forme de rapports demandés à la demande.

Pandora FMS opère avec NetFlow en utilisant des ensembles de règles pour visualiser un trafic déterminé. Ces règles peuvent être aussi simples que « Tout le trafic du réseau 192.168.70.0/24 » ou quelque chose de plus complexe utilisant des expressions pcap.

Une fois les filtres définis, on définit les rapports qui déterminent comment visualiser les données (graphiques, listes, …) et l'intervalle de temps. En définissant des filtres et des rapports, ces informations restent définies, de manière similaire à la façon dont on opère avec les rapports de Pandora FMS, pour les utiliser à la demande en cas de besoin. Les rapports NetFlow apparaîtront également comme « type de rapport » dans la section des Rapports personnalisés de Pandora FMS, afin de pouvoir les incorporer aux rapports normaux de Pandora FMS.

D'autre part, on dispose d'une console de vue « en temps réel » pour analyser le trafic, en composant directement les règles. C'est utile pour enquêter sur des problèmes, voir des graphiques ponctuels qui ne correspondent pas à un filtre déterminé, etc.

Configuration

La vitesse d'accès du dispositif de stockage sur lequel résident les données NetFlow est normalement le facteur limitant des performances.

En premier lieu, il faut activer NetFlow pour qu'il soit accessible depuis les menus Opération et Administration. Dans la section Configuration, il y a une option pour activer ou désactiver NetFlow de manière globale :

Une fois activé, une nouvelle option de configuration de NetFlow apparaîtra dans la section de configuration :

Il faut configurer correctement cette section pour que le daemon nfcapd puisse démarrer sans problème avec le Pandora FMS Server :

  • Data storage path : Répertoire où seront stockés les fichiers de données NetFlow. Il faudra indiquer seulement le nom du répertoire, par défaut netflow (voir General Setup).
  • Daemon binary path : Chemin vers le binaire de nfcapd.
  • Nfdump binary path : Chemin vers le binaire de nfdump.
  • Nfexpire binary path : Chemin vers le binaire de nfexpire.
  • Maximum chart resolution : Nombre maximum de points qu'affichera un graphique d'aire de NetFlow. Plus la résolution est élevée, moins les performances sont bonnes. Des valeurs entre 50 et 100 sont recommandées.
  • Disable custom live view filters : Désactive la définition de filtres personnalisés depuis la vue NetFlow (les filtres déjà créés peuvent continuer à être utilisés).
  • Max. NetFlow lifespan : Indique la durée maximale en jours des données NetFlow qui seront stockées.
  • Enable IP address name resolution : Permet la résolution d'adresses IP pour essayer d'obtenir les hostnames des dispositifs NetFlow.
  • NetFlow interval : Permet d'ajuster l'intervalle de temps du daemon NetFlow à 10, 30 ou 60 minutes. Après avoir effectué une modification et l'avoir appliquée dans le sélecteur de temps, il est nécessaire de redémarrer le serveur pour que ce changement prenne effet.

Une fois NetFlow configuré dans la console, il faudra redémarrer le PFMS Server pour que celui-ci démarre le serveur nfcapd. Celui-ci doit être correctement installé avant de tenter de le démarrer. Vérifiez les registres ou logs du serveur en cas de doute.

Si vous décidez de stocker les données NetFlow sur un dispositif autre que le PFMS Server (voir la procédure d'installation de nfcapd et la configuration distribuée), il faudra copier le fichier binaire /usr/bin/nfexpire sur ce dispositif et ajouter l'entrée suivante dans le fichier /etc/crontab :

0 * * * * root yes 2>/dev/null | /usr/bin/nfexpire -e "/var/spool/pandora/data_in/netflow" -t X_days d

x_days est le nombre maximum de jours d'ancienneté, pour les données NetFlow, à conserver sur ledit dispositif (dans ce cas particulier, la configuration de la Console Web PFMS, pour ce champ, n'aura aucun effet).

Filtres

Le menu pour la création et l'édition de filtres se trouve dans Management → Resources → Netflow filters. Dans cette vue se trouve une liste des filtres déjà créés qui peuvent être modifiés et/ou supprimés.

Il est également possible de créer un filtre directement depuis la vue de Netflow live view, en enregistrant le filtre actif comme un nouveau filtre. Les filtres NetFlow peuvent être basiques ou avancés : La différence est que les premiers ont des champs de filtrage fixes (adresse IP source, adresse IP destination, numéro de port source, numéro de port destination) et les avancés sont définis par une expression pcap (standard dans les expressions de filtrage pour le trafic réseau) et utilisent des outils de toutes sortes.

Activer la surveillance de NetFlow

Lors de la création du filtre, il est possible d'activer la surveillance de celui-ci en activant le token Enable NetFlow monitoring.

  • Cela permet de créer un agent qui surveille le volume de trafic de ce filtre.
  • Crée un module qui mesure si le trafic de n'importe quelle adresse IP de ce filtre dépasse un certain seuil.
  • Un module de type texte sera créé avec le taux de trafic de chaque adresse IP à l'intérieur de ce filtre toutes les cinq minutes (les 10 adresses IP avec le plus de trafic).

Les paramètres sont les suivants :

  • Maximum traffic value of the filter : Spécifie le taux maximum (en octets par seconde) du trafic du filtre. Il est ensuite utilisé pour calculer le pourcentage du trafic maximum par adresse IP.
  • WARNING threshold for the maximum % of traffic for an IP : Si une adresse IP à l'intérieur du filtre dépasse le pourcentage établi, l'état ATTENTION (WARNING) sera généré.
  • CRITICAL threshold for the maximum % of traffic for an IP : Si une adresse IP à l'intérieur du filtre dépasse le pourcentage établi, l'état CRITIQUE sera généré.

Rapports

Les rapports de NetFlow sont intégrés aux rapports de Pandora FMS.

Pour créer un élément de rapport, choisissez l'un des éléments de rapport NetFlow disponibles.

Les options de configuration suivantes sont disponibles :

  • Type : Les types d'éléments seront expliqués ci-dessous.
  • Filter : Filtre NetFlow à utiliser.
  • Period : Longueur de l'intervalle de données à afficher.
  • Resolution : Certains rapports nécessitent que des échantillons soient collectés à chaque période donnée. Ce paramètre sert à définir le nombre d'échantillons. La résolution peut être basse (6 échantillons), moyenne (12 échantillons), haute (24 échantillons) ou ultra haute (30 échantillons). Il existe deux valeurs spéciales (hourly et daily) pour qu'une valeur fixe d'échantillons ne soit pas collectée, mais une toutes les quelques heures ou jours.
  • Max. values : Nombre maximum d'éléments pour les agrégats. Si un graphique de trafic HTTP est agrégé par adresse IP d'origine et que ce token est configuré sur 5, seules cinq adresses IP seront affichées.

Il existe trois types d'éléments de rapport NetFlow :

  • NetFlow area chart : Un graphique d'aire, agrégé ou non agrégé.
  • NetFlow data chart : Une représentation textuelle du graphique d'aire.
  • NetFlow summary chart : Résumé du trafic pour la période donnée. Il y a trois éléments : un tableau avec des informations globales, un graphique circulaire avec les adresses IP ou numéros de ports les plus pertinents et un tableau avec les mêmes informations que le graphique circulaire détaillées.

Vue en temps réel

Cette vue est utilisée pour consulter l'historique des données capturées sur la base de différents filtres de recherche. Des filtres et différentes formes de visualisation de l'information peuvent être utilisés. Il faut définir la manière de regrouper les informations affichées, ainsi que la manière d'obtenir ces informations pour pouvoir commencer à visualiser les données.

Les filtres peuvent être visualisés en temps réel depuis Operation → Monitoring → Network → NetFlow Live View. Cet outil permet de visualiser les changements effectués sur un filtre et de l'enregistrer une fois le résultat souhaité obtenu. Il est également possible de charger et de modifier des filtres existants.

La manière d'obtenir l'information peut se faire par : adresse IP source, adresse IP destination, numéro de port source ou numéro de port destination. Si l'on choisit d'afficher les informations par adresse IP destination, les informations seront affichées triées par les adresses IP ayant le plus de trafic vers la destination, de la plus grande à la plus petite. Il en irait de même pour connaître la consommation de votre réseau par protocole, en choisissant par numéro de port destination.

Les modes de visualisation possibles sont les suivants :

  • Area graph : Affiche sous forme de graphiques d'aire, de type stacked (empilé), au fil du temps (de la date d'origine à la date de destination), l'évolution des données. Il faut choisir le niveau de précision du graphique dans le token « Résolution ».
  • Circular mesh : Affiche un graphique circulaire interactif représentant les paires de connexions entre IP et volume de trafic.
  • Data table : Affiche un tableau de données avec chaque adresse IP et un nombre de lignes dépendant de la résolution choisie.
  • Detailed host trafic : Affiche une carte de portions avec un trafic détaillé par hôte représentant le trafic par IP.
  • Summary : Affiche un tableau récapitulatif, un graphique circulaire et un tableau avec les données de toute la période.
  • Top-N connections : Un tableau affichant le « TOP-N » des connexions entre paires d'adresse IP Source - adresse IP Destination, basé sur le trafic entre ces adresses IP (la somme des pourcentages des N éléments du tableau ne sera pas nécessairement de cent car il peut y avoir d'autres paires de connexions src/dst).

Cartes de trafic réseau

Permet de créer des cartes réseau dynamiques, basées sur le trafic entre les nœuds. Affiche la relation (connexions) entre différentes adresses, montrant les N connexions les plus importantes (par taille des données transférées entre elles).

Configuration distribuée

Il est possible de situer le nœud de Pandora FMS qui collecte les données NetFlow sur un host indépendant de la Console Web. Dans les environnements avec beaucoup de données NetFlow, il est plus que recommandé de le placer sur un serveur avec des disques rapides et un CPU rapide à deux cœurs ou plus. Pour que la Console Web puisse extraire les données NetFlow, il sera nécessaire de modifier la configuration par défaut du système :

  • Configurer l'authentification automatique SSH entre l'utilisateur propriétaire du daemon web et l'utilisateur capable d'exécuter nfdump sur le nœud collecteur.

Pour cette configuration, les étapes suivantes doivent être suivies :

Seulement pour les environnements Pandora FMS sur EL 8

  • Créer d'abord le dossier où seront stockées les clés SSH d'Apache2 :
mkdir /usr/share/httpd/.ssh/
  • Accorder des permissions à Apache2 sur le dossier créé :
chown -R apache. /usr/share/httpd/.ssh/
  • Se connecter en BASH avec Apache2 (l'utilisateur du terminal changera) :
su apache -s /bin/bash
  • Générer maintenant les clés SSH avec l'utilisateur Apache2 :
ssh-keygen
  • Copier les clés sur la machine de destination, cette étape demandera les identifiants de l'utilisateur de la machine distante :
ssh-copy-id <User>@<IP_Address>
  • Enfin, vérifier qu'une connexion SSH réussie est établie avec la machine de destination avec le même utilisateur et sans saisir de mot de passe :
ssh <User>@<IP_Address>

Depuis la configuration de Pandora FMS, dans la section NetFlow, vous pourrez remplir la section Remote Settings avec les données précédentes pour accéder aux données NetFlow distantes :

Surveillance réseau avec sFlow

À partir de la version 770 de Pandora FMS, le support de sFlow est inclus, un protocole réseau qui est un standard industriel dans la fabrication de matériel pour le trafic réseau de données.

Le fonctionnement de sFlow dans PFMS est similaire à celui instauré avec NetFlow. Dans le cas où les deux protocoles sont actifs, les données seront regroupées ; en tout cas, elles seront toujours visualisées en accédant au menu Operation dans la barre latérale gauche, puis en cliquant sur Views → Network.

Configuration de sFlow

Vous devez activer sFlow pour qu'il soit accessible depuis les menus Operation et Management. Dans la section de configuration de NetFlow, il existe une option pour activer ou désactiver sFlow de manière globale.

Un nouvel onglet sera activé spécifiquement pour sFlow :

  • Data storage path : Répertoire où seront stockés les fichiers de données sFlow (voir General Setup).
  • Daemon binary path : Chemin vers le binaire de nfcapd.
  • Nfdump binary path : Chemin vers le binaire de nfdump.
  • Nfexpire binary path : Chemin vers le binaire de nfexpire.
  • Maximum chart resolution : Nombre maximum de points qu'affichera un graphique d'aire de sFlow. Plus la résolution est élevée, moins les performances sont bonnes. Des valeurs entre 50 et 100 sont recommandées.
  • Disable custom live view filters : Désactive la définition de filtres personnalisés depuis la vue sFlow (les filtres déjà créés peuvent continuer à être utilisés).
  • sFlow max lifetime : Indique la durée maximale en jours des données sFlow qui seront stockées.
  • Enable IP address name resolution : Permet la résolution d'adresses IP pour essayer d'obtenir les hostnames des dispositifs sFlow.

← Retour à l'index de la documentation de Pandora FMS