====== Supervision réseau avec NetFlow et sFlow ====== {{indexmenu_n>18}}   ===== 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®. * [[#ks3|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 //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 supervision NetFlow. ==== Sonde NetFlow ==== Les sondes (comme [[:fr:documentation:pandorafms:technical_annexes:15_raspberry_monitoring|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 [[https://github.com/phaag/nfdump|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 : {{ wiki:sudo_systemctl_status_fprobe.png }} 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 [[http://www.pmacct.net/|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 : [[https://github.com/pmacct/pmacct]] 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 < * 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 : {{ :wiki:pfms-general_setup-netflow_config-general_network_path-801_version.png }} Une fois activé, une nouvelle option de configuration de NetFlow apparaîtra dans la section de configuration : {{ :wiki:pfms-netflow_config-801_version.png }} 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 [[:fr:documentation:pandorafms:management_and_operation:12_console_setup#ks1_9|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 ([[#ks2_4_1|voir la procédure d'installation de nfcapd]] et la [[#ks2_10|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 Où ''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 [[:fr:documentation:pandorafms:technical_annexes:22_pfms_report_types#ks12|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 @ * 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 @ 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 : {{ wiki:pfms-netflow-remote_settings-801_version.png }} ===== Surveillance réseau avec sFlow ===== À partir de la version 770 de Pandora FMS, le support de [[https://sflow.org/about/index.php|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 [[#ks2|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 [[#ks2_5_1|section de configuration de NetFlow]], il existe une option pour activer ou désactiver sFlow de manière globale. {{ :wiki:pfms-general_setup-sflow_config-801_version.png }} Un nouvel onglet sera activé spécifiquement pour sFlow : {{ :wiki:pfms-sflow_config-801_version.png }} * Data storage path : Répertoire où seront stockés les fichiers de données sFlow (voir [[:fr:documentation:pandorafms:management_and_operation:12_console_setup#ks1_9|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. [[:fr:documentation:pandorafms:start|← Retour à l'index de la documentation de Pandora FMS]]