Supervision réseau avec NetFlow et sFlow
Introduction à l'analyse de réseau en temps réel
Pandora FMS utilise un outil d'analyse du réseau en temps réel : NetFlow® et sFlow®. Il utilise le principe de « l'écoute » en continu sur Ethernet et analyse le trafic pour générer des statistiques.
Pour intercepter le trafic réseau et l'analyser, il est nécessaire d'avoir un accès physique à ce réseau, le point de capture du réseau devant être le plus approprié. Pour capturer ces données, le trafic doit être redirigé d'un port du commutateur vers un autre port via un port mirror. Tous les appareils réseau ne le permettent pas (uniquement les appareils de milieu et de haut de gamme). Le port-mirroring est également possible sur certains pare-feu commerciaux. C'est le moyen le plus simple d'intercepter le trafic et il ne nécessite aucun matériel supplémentaire. En envoyant tout le trafic vers un seul port, celui-ci est directement connecté à l'analyseur de réseau (sonde).
Ces commutateurs et/ou pare-feu haut de gamme facilitent la supervision. En effet, ces dispositifs envoient les informations statistiques du flux réseau directement au collecteur Pandora FMS sans qu'il soit nécessaire d'utiliser une sonde indépendante. Vous devez consulter les caractéristiques du matériel pour savoir si vous pouvez activer NetFlow et/ou sFlow et envoyer les flux à un collecteur indépendant (dans ce cas, le collecteur Pandora FMS).
Supervision réseau avec NetFlow
Pandora FMS est capable de superviser le trafic IP à l'aide du protocole NetFlow.
NetFlow® est un protocole de réseau développé par Cisco Systems® et actuellement pris en charge sur plusieurs plateformes en plus de Cisco IOS® et NXOS®, par exemple sur des appareils de fabricants tels que Juniper®, Enterasys Switches®, et sur des systèmes d'exploitation tels que Linux®, FreeBSD®, NetBSD® et OpenBSD®.
Protocole NetFlow
Lorsqu'ils activent cette fonction, les appareils dotés de la fonction NetFlow génèrent des « enregistrements de flux nets » qui consistent en de petits éléments d'information qu'ils envoient à un appareil central (un serveur ou collecteur NetFlow), qui reçoit les informations des appareils (sondes NetFlow) en vue de leur stockage et de leur traitement.
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 qui ne contient en aucun cas les données brutes du trafic. En d'autres termes, il n'envoie pas la charge utile du trafic passant par le collecteur, mais uniquement les données statistiques.
La définition traditionnelle de Cisco consiste à utiliser une clé à 7 éléments :
- Adresse IP source.
- Adresse IP de destination.
- Port UDP ou TCP source.
- Port UDP ou TCP de destination.
- Protocole IP.
- Interface (SNMP ifIndex)
- Type de service IP
Au fil du temps, d'autres fabricants ont conçu des systèmes équivalents pour leurs dispositifs de réseau, avec des noms différents mais des objectifs similaires :
- Jflow ou cflowd de Juniper Networks®.
- NetStream de 3Com/H3C|HP®.
- NetStream de Huawei®.
- Cflowd d'Alcatel Lucent®.
- Rflow d'Ericsson®.
- AppFlow®.
- sFlow®.
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 routeurs et commutateurs.
NetFlow génère et collecte ces informations, mais un logiciel est nécessaire pour stocker et analyser ce trafic. Avec Pandora FMS, nous utiliserons un serveur spécial à cet effet, que Pandora FMS démarrera et arrêtera au démarrage de Pandora. Ce serveur est appelé nfcapd et il est nécessaire de l'installer pour pouvoir utiliser la supervision NetFlow.
Sonde NetFlow
Les sondes (par exemple dans Raspberry) sont généralement des routeurs avec NetFlow activé, configuré et envoyant des informations au collecteur NetFlow (qui dans ce cas sera le serveur 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 automatiquement levé par le serveur Pandora FMS. Ce système stocke les données dans des fichiers binaires, dans un certain emplacement. Vous devez installer nfcapd dans votre système avant de pouvoir travailler avec NetFlow dans Pandora FMS.
Le daemon par défaut nfcapd écoute au port 9995/UDP
, vous devrez donc en tenir compte si vous avez des pare-feu pour ouvrir ce port et lors de la configuration de vos sondes NetFlow.
Installation de nfcapd
L'installation de nfcapd doit se faire 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 l'information, donc quand il démarre nfcapd il utilise ce répertoire. Évitez de modifier ce chemin d'accès, à moins que cela ne soit strictement nécessaire et que vous en soyez pleinement conscient.
Vous devez installer version 1.6.8p1 de nfdump pour l'utiliser avec Pandora FMS.
Si vous souhaitez vérifier que nfcapd est correctement installé, exécutez la commande suivante pour lancer le processus au premier plan :
nfcapd -l /var/spool/pandora/data_in/netflow
Si tout se passe bien, vous devriez avoir une issue 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
Gardez à l'esprit qu'il est nécessaire que Pandora FMS, et en particulier le serveur WEB qui exécute la console, ait accès à ces fichiers de données. Dans cet exemple ils sont dans :
/var/spool/pandora/data_in/netflow
Installation des sondes
Si vous n'avez pas de routeur NetFlow, mais que votre trafic passe par un système Linux, vous pouvez installer un logiciel qui agit comme une sonde et envoie les informations trafic NetFlow au collecteur.
Installation de fprobe
fprobe capture le trafic et le transmet à un serveur NetFlow. Avec lui, vous pouvez générer du trafic NetFlow, à partir de tout le trafic réseau qui passe par vos interfaces.
Pour télécharger le paquetage RPM, il suffit d'exécuter la commande suivante, puis de l'installer :
wget http://repo.iotti.biz/CentOS/7/x86_64/fprobe-1.1-2.el7.lux.x86_64.rpm yum install fprobe-1.1-2.el7.lux.x86_64.rpm
Par exemple, l'exécution de la commande suivante enverra tout le trafic d'interface eth0 au collecteur NetFlow qui écoute sur le port 9995 de l'IP 192.168.70.185
:
/usr/sbin/fprobe -i eth0 192.168.70.185:9995
Une fois le trafic généré, vous pourrez en voir les statistiques dans le collecteur NetFlow 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 sont la capacité de travailler avec NetFlow v1/v5/v7/v8/v9 et sFlow v2/v4/v5 à propos de IPv4 et IPv6.
Le code source est hébergé à l'adresse suivante :
Rocky Linux 8
Installez les dépendances avec des droits d'administrateur :
dnf config-manager --set-enabled powertools 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 le 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 une sonde NetFlow en mode daemon :
- Créez une configuration pour pmacct.
Par exemple, enverra tout le trafic d'interface eth0
au collecteur NetFlow qui écoute sur le port 9995
de l'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 :
pmacctd -f pmacctd_probe.conf
Comment utiliser NetFlow sur Pandora FMS
Pandora FMS fonctionne avec NetFlow comme 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 sur demande.
Pandora FMS fonctionne avec NetFlow en utilisant des « filtres », des ensembles de règles pour visualiser un certain trafic. Ces règles peuvent être aussi simples que « All network traffic 192.168.70.0/24 » ou plus complexes en utilisant des expressions pcap.
Une fois les filtres définis, nous définirons les rapports, qui déterminent comment nous allons voir les données (graphiques, listes…) et dans quel intervalle de temps. Lors de la définition des filtres et des rapports, nous laissons cette information définie, de la même manière qu'elle fonctionne avec les rapports Pandora FMS, pour l'utiliser - à la demande - quand vous le voulez. Les rapports NetFlow apparaîtront également comme « type de rapport » dans la section Rapports personnalisés de Pandora FMS, pour pouvoir les incorporer aux rapports « normaux » de Pandora FMS.
D'autre part, disposons d'une console de visualisation « temps réel » pour analyser le trafic, en composant directement les règles. Il est utile d'étudier les problèmes, voir les graphiques ponctuels qui ne correspondent pas à un filtre spécifique, etc.
Configuration
La vitesse d'accès du disque sur lequel résident les données NetFlow est normalement le facteur limitant de la performance.
Tout d'abord, NetFlow doit être activé pour être accessible à partir des menus Operation et Administration. Dans la section Configuration (menu d'administration) il y a une option pour activer ou désactiver NetFlow globalement.
Une fois activée, une nouvelle option de configuration NetFlow apparaîtra dans la section configuration.
Cette section doit être configurée correctement pour que le démon nfcapd puisse démarrer sans problème avec le serveur Pandora FMS :
- Data storage path : Répertoire dans lequel les fichiers de données NetFlow seront stockés. Seul le nom du répertoire doit être saisi, par défaut
netflow
(voir General Setup). - Daemon binary path : Chemin vers le binaire nfcapd.
- Nfdump binary path : Chemin vers le binaire nfdump.
- Nfexpire binary path : Chemin vers le binaire nfexpire.
- Maximum chart resolution : Nombre maximale de points qu'un graphique de zone NetFlow affichera. Plus la résolution est élevée, plus les performances sont pauvres. Des valeurs comprises entre 50 et 100 sont recommandées.
- Disable custom live view filters : Il désactive la définition des filtres personnalisés dans la vue NetFlow (cela n'autoriserait que l'utilisation des filtres déjà créés).
- Max. NetFlow lifespan : Il indique la durée maximale en jours des données NetFlow à stocker.
- Enable IP address name resolution : Il permet la résolution des adresses IP afin d'essayer d'obtenir les noms d'hôtes des périphériques NetFlow.
- Daemon interval : Il permet de définir l'intervalle de temps du démon NetFlow sur 10, 30 ou 60 minutes. Une fois la modification effectuée et appliquée dans le sélecteur de temps, le serveur doit être redémarré pour que la modification soit prise en compte.
Une fois NetFlow configuré dans la console, il sera nécessaire de redémarrer le serveur Pandora FMS pour qu'il démarre le serveur nfcapd. Ceci doit être correctement installé avant d'essayer de le démarrer. Vérifiez les journaux du serveur pour tout doute.
Si vous décidez de stocker les données NetFlow sur un périphérique autre que le serveur PFMS (voir la procédure d'installation de nfcapd et la configuration distribuée), vous devez copier le fichier binaire /usr/bin/nfexpire
sur ce périphérique et ajouter l'entrée suivante dans /etc/crontab
:
0 * * * * root yes 2>/dev/null | /usr/bin/nfexpire -e "/var/spool/pandora/data_in/netflow" -t X_days d
Où x_days
est le nombre maximale de jours d'ancienneté des données NetFlow à conserver sur ce dispositif (dans ce cas particulier, la configuration de la console PFMS n'aura aucun effet pour ce champ).
Filtres
Le menu de création et d'édition des filtres se trouve sous Resources → NetFlow filters. Dans cette vue, nous trouvons une liste de filtres déjà créés qui peuvent être modifiés et supprimés.
Vous pouvez également créer un filtre directement à partir de la vue NetFlow live view, en enregistrant le filtre actif comme un nouveau filtre. Les filtres NetFlow peuvent être « de base » ou « avancés ». La différence est que les premiers ont des champs de filtrage fixes (IP source, IP destination, IP source, Port source, Port destination) et les plus avancés sont définis par une expression pcap (standard dans les expressions de filtrage du trafic réseau) et utilisent toutes sortes d'outils.
Activer la supervision NetFlow
Version 770 ou ultérieure.
Lors de la création du filtre, la supervision du filtre peut être activée en activant l'option token Enable NetFlow monitoring.
- Cela permet de créer un agent qui supervise le volume de trafic de ce filtre.
- Crée un module qui mesure si le trafic provenant d'une adresse IP de ce filtre dépasse un certain seuil.
- Un module de texte sera créé avec le taux de trafic de chaque adresse IP au sein de ce filtre toutes les cinq minutes (les 10 adresses IP les plus fréquentées).
Les paramètres sont les suivants :
- Maximum traffic value of the filter : Il spécifie le taux maximum (en octets par seconde) du trafic du filtre. Il est ensuite utilisé pour calculer le pourcentage du trafic maximal par adresse IP.
- WARNING threshold for the maximum % of traffic for an IP : Si une adresse IP du filtre dépasse le pourcentage fixé, un état d'AVERTISSEMENT est généré.
- CRITICAL threshold for the maximum % of traffic for an IP : Si une adresse IP du filtre dépasse le pourcentage fixé, un état CRITIQUE est généré.
Rapports
Les rapports 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 sont expliqués ci-dessous.
- Filter : Filtre NetFlow à utiliser.
- Period : Longueur de l'intervalle de données à afficher.
- Resolution : Certains rapports exigent que des échantillons soient collectés à intervalles réguliers. Ce paramètre permet de définir le nombre d'échantillons. La résolution peut être faible (6 échantillons), moyenne (12 échantillons), élevée (24 échantillons) ou très élevée (30 échantillons). Il existe deux valeurs spéciales (hourly et daily) qui permettent de ne pas collecter une valeur fixe d'échantillons, mais un échantillon toutes les heures ou tous les jours.
- Max. values : Nombre maximal d'éléments pour les agrégats. Par exemple, si un graphique de trafic HTTP est agrégé par adresse IP source et que Max. values est fixé à 5, seules cinq adresses IP seront affichées.
Il existe trois types d'éléments de rapport NetFlow:
- NetFlow area chart : Un diagramme de zone, agrégé ou non agrégé.
- NetFlow data chart : Représentation textuelle du graphique de zone.
- NetFlow summary chart : Synthèse du trafic pour la période donnée. Il y a trois éléments : un tableau avec des informations agrégées, un diagramme circulaire avec les adresses IP ou les ports les plus pertinents, et un tableau avec les mêmes informations que le diagramme circulaire ventilées.
Visualisation en temps réel
Cette vue permet de consulter l'historique des données capturées en fonction de différents filtres de recherche. Des filtres et différents modes d'affichage des informations peuvent être utilisés. La manière de regrouper les informations affichées doit être définie, ainsi que la manière d'obtenir ces informations afin de pouvoir commencer à visualiser les données.
Les filtres peuvent être visualisés en temps réel à partir de Operation → Monitoring → Network → NetFlow Live View. Cet outil permet de visualiser les modifications apportées à un filtre et de le sauvegarder une fois le résultat souhaité obtenu. Il est également possible de charger et de modifier des filtres existants.
Les informations peuvent être obtenues par l'intermédiaire de l'adresse IP source, de l'adresse IP de destination, du port source ou du port de destination. Si vous choisissez, par exemple, d'afficher les informations sur l'adresse IP de destination, les informations seront affichées triées par les adresses IP ayant le plus de trafic vers la destination, de la plus élevée à la plus basse. Il en va de même pour connaître la consommation de votre réseau par protocole, en choisissant par port de destination.
Les possibilités de visualisation sont les suivantes :
- Area graph (Graphes de surface de type stacked) : Montrer dans le temps (de la date source à la date cible), l'évolution des données. Le niveau de précision du graphique doit être choisi dans le jeton “Résolution”.
- Circular mesh (Graphique circulaire) : Il affiche un graphique circulaire interactif représentant les paires de connexions IP et le volume de trafic.
- Data table (Tableau de données) : Il affiche un tableau de données avec chaque IP et un nombre de lignes dépendant de la résolution choisie.
- Detailed host trafic (Trafic détaillé de l'hôte) : Il affiche une carte de portions représentant le trafic par IP.
- Summary (Résumé) : Il affiche un tableau récapitulatif, un camembert et un tableau avec les données de toute la période.
- Top-N connections (Connexions Top-N) : Un tableau montrant les TOP-N connections entre les paires Source IP - Destination IP, basé sur le trafic entre ces adresses IP (la somme des pourcentages des N éléments du tableau ne sera pas nécessairement égale à cent car il peut y avoir d'autres paires de connexions src/dst).
Cartes de trafic réseau
Il permet de créer des cartes de réseau dynamiques, basées sur le trafic entre les nœuds. Il affiche les relations (connexions) entre différentes adresses, en montrant les N connexions les plus importantes (en fonction de la taille des données transférées entre elles).
Configuration distribuée
Il est possible de placer le nœud du Pandora FMS qui collecte les données NetFlow dans un host indépendant de la console. Dans les environnements avec beaucoup de données NetFlow, il est plus que recommandé de le placer dans un serveur avec des disques rapides et un CPU rapide avec deux cœurs ou plus. Pour que la console Pandora FMS puisse extraire les données NetFlow, il sera nécessaire de modifier la configuration par défaut du système:
- Configurez l'authentification SSH automatique entre l'utilisateur qui possède le démon web et l'utilisateur ayant la capacité d'exécuter nfdump sur le nœud collecteur.
Les étapes suivantes doivent être suivies pour cette configuration:
Uniquement pour les environnements Pandora FMS sur EL 8
- Créez d'abord le dossier dans lequel les clés SSH d'Apache seront stockées:
mkdir /usr/share/httpd/.ssh/
- Accorder les permissions à Apache sur le dossier créé:
chown -R apache. /usr/share/httpd/.ssh/
- Se connecter à BASH avec Apache (l'utilisateur du terminal changera):
su apache -s /bin/bash
- Générer maintenant les clés SSH avec l'utilisateur Apache:
ssh-keygen
- Copier les clés sur la machine cible, cette étape demandera les informations d'identification de l'utilisateur de la machine distante:
ssh-copy-id < User >@< IP_Address >
- Enfin, vérifiez que vous avez réussi à établir une connexion SSH avec la machine cible avec le même utilisateur et sans saisir de mot de passe:
ssh < User >@< IP_Address >
Dans la configuration du Pandora FMS, dans la section NetFlow, vous pouvez remplir la section Remote Settings avec les données précédentes, pour accéder aux données NetFlow à distance:
Supervision réseau avec sFlow
À partir de la version 770 de Pandora FMS, la prise en charge de sFlow, un protocole réseau qui est une norme industrielle dans la fabrication de matériel pour le trafic des réseaux de données, est incluse.
Le fonctionnement de sFlow dans le PFMS est similaire à celui de NetFlow. Si les deux protocoles sont actifs, les données seront regroupées ; dans tous les cas, elles seront toujours affichées en accédant au menu Operation dans la barre latérale gauche, puis en cliquant sur Network.
Configuration de sFlow
Version 775 ou supérieure.
Activez sFlow pour qu'il soit accessible à partir des menus Operation et Management. Dans NetFlow configuration, une option permet d'activer ou de désactiver sFlow globalement.
Un nouvel onglet sera activé spécifiquement pour sFlow :
- Data storage path : Répertoire où les fichiers de données sFlow seront stockés (voir General Setup).
- Daemon binary path : Chemin d'accès au binaire de nfcapd.
- Nfdump binary path : Chemin d'accès au binaire de nfdump.
- Nfexpire binary path : Chemin d'accès au binaire de nfexpire.
- Maximum chart resolution : Nombre maximal de points affichés dans un graphique de zone sFlow. Plus la résolution est élevée, moins les performances sont bonnes. Les valeurs recommandées se situent entre 50 et 100.
- Disable custom live view filters : Il désactive la définition de filtres personnalisés dans la vue sFlow (les filtres déjà créés peuvent toujours être utilisés).
- sFlow max lifetime : Il indique la durée maximale en jours de stockage des données sFlow.
- Enable IP address name resolution : Il active la résolution d'adresse IP pour tenter d'obtenir les noms d'hôte des dispositifs sFlow.