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).
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/
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 :
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.
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/
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.
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
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.
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.
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
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.
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 :
Pour la 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 :
Pour la 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 :
netflow
(voir General Setup).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 :
netflow_interval
, par exemple pour la remplacer par 300 secondes : UPDATE tconfig SET value = '300' where token = 'netflow_interval';
.rm -i /var/spool/pandora/data_in/netflow
.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
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).
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.
Ce serait une vue d'édition de base d'un filtre Netflow :
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 :
192.168.0.1
:hôte 192.168.0.1
192.168.0.1
:dst host 192.168.0.1
192.168.0.0.0/24
: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
192.168.0.1
du protocole SSH (habituellement port 22
) :(port 22) and (host dst 192.168.0.1)
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 :
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 Monitoring → Network → Netflow 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 :
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).
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>
/usr/bin/nfdump
par un script similaire ausuivant.#!/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
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.
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 :