Table des matières

Surveillance du réseau avec NetFlow et sFlow

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

Pandora FMS utilise un outil pour analyser le réseau en temps réel : NetFlow. Il utilise le principe d'“écoute” sur Ethernet en continu et analyse le trafic pour générer des statistiques. L'idée est “ d'intercepter ” le trafic réseau pour l'envoyer à une sonde qui l'analyse et envoie ces résultats à Pandora FMS.

Pour intercepter le trafic du réseau et pouvoir l'analyser, il est nécessaire d'avoir un accès physique à ce réseau ou au moins de comprendre sa topologie, car le point de capture du réseau doit être le plus approprié. Ce n'est pas la même chose, par exemple, de capturer le trafic réseau d'un router ou d'un AP local, que tout le trafic du réseau de serveurs juste avant d'atteindre le router de sortie.

Pour capturer ces données, le trafic doit être redirigé d'un port du commutateur vers un autre port à l'aide d'un port-mirror. Tous les périphériques réseau ne le permettent pas (uniquement les périphériques de milieu et de haut de gamme). Vous pouvez également mettre en miroir les ports de 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, ce port est connecté directement à l'analyseur de réseau (sonde NetFlow).

Ces commutateurs et/ou pare-feu haut de gamme facilitent la surveillance. En effet, ces dispositifs envoient les informations statistiques du flux réseau directement au collecteur NetFlow de Pandora FMS sans avoir besoin d'utiliser une sonde indépendante. Vous devez consulter les caractéristiques du matériel pour savoir si vous pouvez activer NetFlow et envoyer les flux à un collecteur NetFlow indépendant (dans ce cas, le collecteur NetFlow de Pandora FMS).

Surveillance du réseau avec Netflow

Introduction à Netflow

Depuis la version 5.0, Pandora FMS est capable de surveiller le trafic IP en utilisant le protocole NetFlow. Il permet d'afficher des modèles et des données générales sur le trafic qui sont très utiles.

NetFlow® est un protocole réseau, développé par Cisco Systems® pour collecter des informations sur le trafic IP. Il est devenu un standard de l'industrie pour la surveillance du trafic réseau et est actuellement pris en charge pour diverses plates-formes en plus de Cisco IOS et NXOS, comme les périphériques de fabricants tels que Juniper®, Enterasys Switches®, et les systèmes d'exploitation tels que Linux®, FreeBSD®, NetBSD®, et OpenBSD®.

Il y a quelque temps, nous avons écrit un article sur notre blog parlant de Netflow, jetez un coup d'oeil pour en savoir plus sur ce protocole : https://pandorafms.com/blog/fr/quest-ce-que-netflow/

Protocole Netflow

Les périphériques avec Netflow activé, lorsqu'ils activent cette fonction, génèrent des “journaux de netflow” composés de petits morceaux d'informations qu'ils envoient à un dispositif central (un serveur ou un collecteur Netflow), qui est celui qui reçoit les informations des périphériques (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 contenant une quantité minimale d'informations, mais en aucun cas il ne contient les données brutes de trafic. En d'autres termes, il n'envoie pas la charge utile du trafic transitant par le collecteur, seulement des données statistiques.

Il y a plusieurs différences entre les versions d'implémentation du Netflow original, donc certaines incorporent plus de données, mais en gros, le Netflow de base envoie au moins les informations suivantes. Bien que Netflow ait été décrit de nombreuses façons, la définition Cisco traditionnelle consiste à utiliser une clé à 7 éléments, où le flux est défini comme une séquence unidirectionnelle de paquets qui partagent les 7 valeurs suivantes :

Au fil du temps, d'autres fabricants ont conçu des systèmes équivalents pour leurs appareils de réseau, avec des noms différents mais dans un but similaire :

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 surveillance Netflow.

Sonde Netflow

Les sondes 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 démon nfcapd activé.

Dans notre blog, nous publions un article technique détaillé sur la construction d'une sonde Netflow avec une framboise de 60 Euro : https://pandorafms.com/blog/netflow-probe-using-raspberry/

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. Ne le modifiez pas si vous ne savez pas exactement ce que vous faites.

Vous devez installer version 1.6.8p1 de nfdump pour l'utiliser avec Pandora FMS

Si vous voulez vérifier que nfcapd est correctement installé, vous pouvez essayer d'exécuter 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 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 paquet rpm, exécutez simplement la commande suivante, puis installez-le :

 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

Qui devrait afficher des informations similaires à celles qui suivent :

Aggregated flows 1286
Top 10 flows ordered by packets:
Date flow start          Duration Proto      Src IP Addr:Port          Dst IP Addr:Port   Packets    Bytes Flows
2011-12-22 20:41:35.697   901.035 TCP     192.168.60.181:50935 ->     192.168.50.2:22        2105   167388     4
2011-12-22 20:41:35.702   900.874 TCP       192.168.50.2:22    ->   192.168.60.181:50935     1275   202984     4
2011-12-22 20:48:15.057     1.347 TCP       157.88.36.34:80    ->    192.168.50.15:40044      496   737160     1
2011-12-22 20:48:14.742     1.790 TCP     91.121.124.139:80    ->    192.168.50.15:60101      409   607356     1
2011-12-22 20:46:02.791    76.616 TCP      192.168.50.15:80    ->   192.168.60.181:40500      370   477945     1
2011-12-22 20:48:15.015     1.389 TCP      192.168.50.15:40044 ->     157.88.36.34:80         363    22496     1
2011-12-22 20:46:02.791    76.616 TCP     192.168.60.181:40500 ->    192.168.50.15:80         303    24309     1
2011-12-22 20:48:14.689     1.843 TCP      192.168.50.15:60101 ->   91.121.124.139:80         255    13083     1
2011-12-22 20:48:14.665     1.249 TCP     178.32.239.141:80    ->    192.168.50.15:38476      227   335812     1
2011-12-22 20:48:21.350     0.713 TCP     137.205.124.72:80    ->    192.168.50.15:47551      224   330191     1

Top 10 flows ordered by bytes:
Date flow start          Duration Proto      Src IP Addr:Port          Dst IP Addr:Port   Packets    Bytes Flows
2011-12-22 20:48:15.057     1.347 TCP       157.88.36.34:80    ->    192.168.50.15:40044      496   737160     1
2011-12-22 20:48:14.742     1.790 TCP     91.121.124.139:80    ->    192.168.50.15:60101      409   607356     1
2011-12-22 20:46:02.791    76.616 TCP      192.168.50.15:80    ->   192.168.60.181:40500      370   477945     1
2011-12-22 20:48:14.665     1.249 TCP     178.32.239.141:80    ->    192.168.50.15:38476      227   335812     1
2011-12-22 20:48:21.350     0.713 TCP     137.205.124.72:80    ->    192.168.50.15:47551      224   330191     1
2011-12-22 20:48:15.313     1.603 TCP       89.102.0.150:80    ->    192.168.50.15:52019      212   313432     1
2011-12-22 20:48:14.996     1.433 TCP     212.219.56.138:80    ->    192.168.50.15:36940      191   281104     1
2011-12-22 20:51:12.325    46.928 TCP      192.168.50.15:80    ->   192.168.60.181:40512      201   245118     1
2011-12-22 20:52:05.935    34.781 TCP      192.168.50.15:80    ->   192.168.60.181:40524      167   211608     1
2011-12-22 20:41:35.702   900.874 TCP       192.168.50.2:22    ->   192.168.60.181:50935     1275   202984     4

Summary: total flows: 1458, total bytes: 5.9 M, total packets: 15421, avg bps: 49574, avg pps: 15, avg bpp: 399
Time window: 2011-12-22 20:40:46 - 2011-12-22 20:57:21
Total flows processed: 1458, Records skipped: 0, Bytes read: 75864
Sys: 0.006s flows/second: 208345.2   Wall: 0.006s flows/second: 221177.2

Si ce système fonctionne, la prochaine chose à faire est de configurer Pandora FMS pour utiliser cette configuration.

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 :

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
pmacctd -f pmacctd_probe.conf

Comment utiliser Netflow sur Pandora

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 nous le voulons.

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, nous 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.

Pour les versions 769 et antérieures :

Versions 769 et antérieures

Pour la version 770 et les versions ultérieures :

Version 770 et les versions ultérieures

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

Pour les versions 769 et antérieures :

Versions 769 et antérieures

Pour la version 770 et les versions ultérieures :

Version 770 et les versions ultérieures

Cette section doit être configurée correctement pour que le démon nfcapd puisse démarrer sans problème avec le serveur Pandora FMS :

Version 770 ou supérieure :

Si vous devez modifier la valeur par défaut de l'intervalle du démon (Daemon interval), procédez comme suit :

  • Par le biais d'une session de ligne de commande ou de l'interface DB, modifiez la valeur, en secondes, du jeton netflow_interval, par exemple pour la remplacer par 300 secondes : UPDATE tconfig SET value = '300' where token = 'netflow_interval';.
  • Ouvrez une fenêtre de terminal et supprimez les données générées avec l'intervalle ci-dessus avec rm -i /var/spool/pandora/data_in/netflow .
  • Démarrez le serveur PFMS.

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.

Version 769 et antérieures : Le serveur NetFlow n'apparaîtra pas en tant que serveur dans la vue des serveurs de Pandora FMS, car il ne s'agit pas d'un serveur de Pandora FMS. À partir de la version 770, il apparaît dans la liste.

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

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 ResourcesNetflow 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.

Création du filtre

Ce serait une vue d'édition de base d'un filtre Netflow :

Exemples

Par exemple, ce serait un filtre de base pour le trafic Web :

Ou par exemple un filtre avancé pour le trafic vers et depuis un intranet :

Plus d'exemples de filtres avancés :

hôte 192.168.0.1
dst host 192.168.0.1
src net 192.168.0.0.0/24

* Capturer le trafic HTTP et HTTPS (habituellement ports 80 et 443) :

(port 80) or (port 443)
port not 53
(port 22) and (host dst 192.168.0.1)

Rapports

Les rapports Netflow sont intégrés aux rapports Pandora FMS (voir Informes pour plus d'informations).

Pour créer un élément d'état, sélectionnez l'un des éléments d'état Netflow disponibles.

Et l'installer. Les options de configuration suivantes sont disponibles :

Il existe trois types d'éléments de reporting Netflow :

Visualisation en temps réel

Cette vue permet de consulter l'historique des données capturées à partir de différents filtres de recherche. Vous pouvez utiliser des filtres et différentes façons d'afficher les informations. Il est nécessaire de définir la manière de regrouper les informations affichées, ainsi que la manière d'obtenir ces informations afin de commencer à visualiser les données.

Les filtres peuvent être visualisés en temps réel à partir de MonitoringNetworkNetflow Live View. Cet outil vous permet de visualiser les modifications apportées à un filtre et de les enregistrer une fois le résultat souhaité obtenu. Il est également possible de charger et de modifier des filtres existants.

Allez dans Rapports et Filtres pour apprendre à configurer les options de vue en temps réel.

La façon d'obtenir l'information peut être par : IP source, IP destination, Port source ou Port destination. Si vous choisissez, par exemple, d'afficher les informations IP de destination, les informations ordonnées par les IP ayant le plus de trafic vers la destination de la plus haute à la plus basse seront affichées. Il en va de même pour connaître la consommation de votre réseau par protocole, choisir par port de destination.

Les possibilités de visualisation sont les suivantes :

Cartes de trafic réseau

Il s'agit d'une nouvelle fonctionnalité introduite dans OUM 733 qui sera améliorée à l'avenir. Il crée des cartes réseau dynamiques, basées sur le trafic entre les nœuds. Il montre la relation (les connexions) entre les différentes directions, montrant les N connexions les plus importantes (par taille des données transférées entre elles).

network_usage_map.jpg

Configuration distribuée

Il est possible de localiser le nœud Pandora FMS qui collecte les données Netflow dans un hôte indépendant de la console. 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 d'au moins deux cœurs. 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, en suivant les étapes décrites ci-dessous :

Pour sa configuration, nous devons suivre les étapes suivantes :

Activer la connexion pour l'utilisateur apache. Pour ce faire, vous devez modifier dans le fichier /etc/passwd la ligne de l'utilisateur apache avec cette configuration :

apache:x:48:48:Apache:/var/www:/bin/bash

Créez le répertoire .ssh dans le répertoire /var/www et donnez-lui les bonnes permissions :

 # mkdir /var/www/.ssh
 # chown apache:apache /var/www/.ssh

Créez des clés ssh à partir de l'utilisateur apache et copiez-les sur le serveur où le trafic NetFlow est hébergé.

# su apache
bash-4.2$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/var/www/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/www/.ssh/id_rsa.
Your public key has been saved in /var/www/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:vYvl5V00E4faa14zN08ARzGUQ9IfAQJnMzkaqLAGRHI apache@<server>
The key's randomart image is:
+---[RSA 2048]----+
|+oE     ...*o=B+.|
|.o .   . .oo+o++ |
|  . o .   o o o+o|
|   o .   o   =  +|
|  .     S . . oo.|
|           .   +o|
|          o . o+=|
|         + + + +*|
|        . o . o .|
+----[SHA256]-----+
bash-4.2$ ssh-copy-id root@<netflow_server>

Une fois partagé, il faut vérifier qu'il est possible d'accéder au serveur via l'utilisateur apache sans spécifier de mot de passe :

bash-4.2$ ssh usuario@<netflow_server>
#!/bin/bash
NFDUMP_PARAMS=$(sed 's/(\(.*\))/\"\(\1\)\"/' <<<"$@");

ssh usuario@<netflow_server> "/usr/bin/nfdump $NFDUMP_PARAMS"

Donner les permissions d'exécution au script :

chmod 755 /usr/bin/nfdump

Essayez d'exécuter le script, de cette façon

/usr/bin/nfdump -V

Il devrait renvoyer quelque chose de similaire à :

nfdump: Version: 1.6.13

Supervision réseau avec sFlow

Version 770 ou ultérieure.

À 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 :

Retour à l'index de documentation du Pandora FMS