Objectif du tutoriel NetFlow - logiciel pfSense®
Alors que les affaires d’écoutes massives sur le cœur du réseau Internet (affaire Snowden, Prism, BigBrother à la Française, Echelon, …) sont chaque jour révélées, il nous a semblé intéressant de nous pencher sur LE protocole qui est très certainement entré en jeux dans la collecte des informations réseau… En effet, si les outils utilisés pour permettre une analyse sémantique des trames réseaux ont probablement été développés sur mesure par les différents services de renseignement, le protocole NetFlow est probablement entré en jeux au moins pour la partie collecte des trames.
Après tout configurer une interface 10G spécifique sur un Cisco 12000 et la dédier à la collecte des trames est à la portée de la plupart des administrateurs IOS de la planète…
Nous allons donc tenter de vous expliquer :
- comment ce protocole fonctionne
- comment utiliser NetFlow avec le logiciel pfSense®
- comment le mettre en œuvre sur votre réseau
- comment exploiter les donnés collectés
L’objectif n’est pas de vous transformer en barbouze au service d’une puissance occulte ou d’espionner les moindres faits et gestes de vos utilisateurs… mais bien d’avoir un niveau de contrôle de votre réseau qui vous permettra de passer d’une analyse de l’étonnement : «Il paraît que lundi matin nous avons eu une coupure réseau de 5 minutes… qu’a-t-il bien pu se passer ?» à une présentation nettement plus détaillée du type «lundi matin à 11h32 nous avons eu une coupure réseau de 4’23“ car l’ordinateur bobby22.bigbiz.local qui dispose de l’IP 192.168.23.234 a initié plus de trois cents connexions vers l’extérieur principalement vers le site mongros.torrent.com la personne a téléchargé 4Go de données».
Ayant eu l’occasion d’aller voir un «bobby22» en question avec un tableau imprimé et les résultats de son transfert sur l’effondrement des performances réseau, je vous garantie que c’est :
- très drôle (se prendre pour l’Edward Snowden de son LAN c’est marrant comme tout !).
- très efficace (l’utilisateur sait que nous savons ce qui est redoutablement dissuasif !).
- la preuve d’une grande maîtrise sur votre réseau (vous êtes peut-être finalement payé pour cela ?).
Comment le protocole fonctionne :
NetFlow c’est tout d’abord un collecteur de trames IP qui fonctionne depuis les routeurs ou commutateurs qui disposent de ce protocole en leur sein.
L’équipement réseau va récupérer les trames de l’ensemble des flux qui transitent par lui et les renvoyer (généralement en UDP) vers le «collecteur». Le collecteur va organiser et stocker les traces des trames de façon structurée suivant les indications qui lui sont transmises par l’administrateur système. Ces données seront donc disponibles pour faire l’objet d’une analyse à postériori des évènements qui se sont déroulés sur votre / vos réseaux.
Les principales marques haut de gamme de commutateur ou routeurs disposent de leur implémentation maison (compatible avec NetFlow) :
- Jlow ou cflowd pour Juniper
- NetStream pour 3Com/HP
- NetStream pour Huawei
- Cflowd pour AlcatelLucent
- Rflow pour Ericsson
- AppFlow pour Citrix
Sans oublier pfSense qui est capable de générer des flux NetFlow dans les différentes versions du protocole (jusqu’à la version 9). Linux et les différentes variantes de BSD supportent NetFlow, idem pour VMWare.
Comment utiliser NetFlow avec le logiciel pfSense®
pfSense dispose d’un support de NetFlow grâce au package pfflowd qui permet la collecte des trames et leur exportation vers un collecteur. Il vous suffit d’installer le capteur pfflowd qui est disponible dans les packages pfSense.
Une fois installé, le paquet nécessite le paramètrage de cinq variables :
- L’IP du collecteur
- Le port utilisé par le collecteur
- L’IP source utilisée par le collecteur
- Le sens des trames filtrées
- La version du protocole NetFlow souhaitée (jusqu’à la version 9)
Le déploiement sur le logiciel pfSense® est la partie la plus simple de la mise en œuvre : il suffit finalement de trois clicks pour installer un package et c’est terminé !
Comment le mettre en œuvre sur votre réseau
Nous avons donc décidé d’utiliser un Linux pour déployer notre Collecteur NetFlow et plus particulièrement Ubuntu Serveur 12.0.4. LTS qui va nous permettre de bénéficier d’un collecteur patché et sécurisé pendant 5 ans !
Une fois votre Ubuntu 12.04.LTS installé - dois-je préciser que c’est un serveur headless sur lequel vous n’avez activé que SSH avec une authentification par Clé Publique. Après tout ce collecteur va regrouper l’ensemble des trames ayant transitées par votre réseau. Il convient donc de prendre les mesures nécessaires pour sécuriser cette boîte noire !
Vous aurez pris soin de déployer ce capteur dans une DMZ d’administration afin de l’isoler le mieux possible. Enfin son accès sera limité par des règles de firewalls adéquats… La routine quoi !
Installation de flowviewer
Nous avons choisi d'installer flowtools qui va nous permettre de disposer d'un collecteur (flow-capture) et flowviewer comme graphique d'analyse des trames. Flowviewer necessite d'installer apache aussi
Il vous faudra ensuite configurer de façon adéquat ces différents packages.
Pour la partie collecteur nous avons utilisé le paramètrage suivant :
# Configuration for flow-capture
#
-w /var/flows/chabanais -n 287 -N 3 0/10.20.50.1/3002
Ici flow-tools va créer 287 fichier par jour soit environ un fichier de capture toutes les cinq minutes.
Ensuite il va stocker cela à partir du répertoire défini par la variable -w "/var/flows/chabanais"
Après la varibale -n défini la structure de stockage qui va avoir la forme YYYY/YYYY-MM/YYYY-MM-DD/flow-file
Enfin on défini les adresses sur lequel le collecteur va écouter de la forme IP locales/IP distantes/port
Après il n'y a plus qu'à lancer le collecteur et vérifier qu'il tourne bien avec les commandes :
# ps auxwww | grep flow-capture
root 1402 0.0 0.0 11796 1268 ? Ss Jul08 0:17 /usr/bin/flow-capture -w /var/flows/chabanais -n 287 -N 3 0/10.20.50.1/3002
Comment exploiter les donnés collectées
Là cela devient nettement plus complexe car il existe une multitude d’outils permettant de faire une exploitation de vos donnés NetFlow. Du plus basic en ligne de commande à des outils payant qui coûtent plusieurs dizaines de milliers d’euros.
Nous nous intéresserons ici plutôt à une approche OpenSource de l’implémentation des outils d’analyse NetFlow.
L’approche du stockage et d’analyse des trames réseau par NetFlow est par bien des aspects toujours réservée à une élite de l’administration Système et Réseau qui a déjà gagné un contrôle suffisant sur son environnement et souhaite passer à un niveau supérieur en prenant réellement le contrôle des évènements en main ! Une fois de plus l’approche OpenSource permet de s’affranchir de coûts de licence excessif en choisissant des produits de bonne qualité !
Maintenant que vous disposez de votre routeur pfSense et d’un collecteur, il vous suffit de faire une exploitation correcte des données stockées. Nous avons choisi le programme flowviewer qui nous permet de disposer d’un bon outil d’analyse et qui pourra aussi être mis en œuvre pour réaliser un bon reporting sur l’activité de votre réseau.
Je passerais sur l'installation qui s'apparente au déploiement d'un serveur HTTP avec la configuration de CGI.
Après l'installation de ce prograrmme vous allez avoir à votre disposition un outil complet d'analyse de trames capable de générer des graphes sur mesure ou de restituer des données suivant vos besoins.
Voici la première page de votre interface. Prenez bien soin de défini votre routeur pfSense dans les fichiers de configuration. Vous pourrez ensuite simplement le sélectionner dans le pop-up adéquat.
Voici le type de graphe sur mesure que l'outil est ensuite capable de vous générer.
Comme vous pouvez le voir : c'est extrêmement précis et très très efficace. Il existe de multiple façon de configurer votre sonde et d'afficher les résultats souhaités…
Si vous ne voulez pas perdre de temps avec la configuration de votre sonde, nous proposons des sondes NetFlow prêtes à l'emploi pour vos réseaux !
Comments
There are 4 comments on this post
Alfoudam (non vérifié)
- répondre
May 11, 2014Le paquet flowviewer semble ne plus être disponible dans les repo d'Ubuntu.
gregober
- répondre
Mar 14, 2016C'est tout à fait possible. Il faut donc essayer de trouver une alternative. Si vous avez des pistes, n'hésitez pas à nous en faire part…
Krys (non vérifié)
- répondre
Oct 20, 2018Je déterre un peu car je me trouve dans le cas où je vais avoir besoin d'une solution dans ce genre, par contre, je me pose la question de la légalité du processus, avez-vous des infos à ce sujet ?
gregober
- répondre
Oct 24, 2018A priori les données des flux réseaux NetFlow ne sont pas des données personnelles. Les trames capturées le sont à partir d'une IP source vers une IP de destination.
De plus cela peut s'inscrire comme un outil efficace pour permettre de déterminer ou qualifier l'obligation faite dans le RGPD de divulguer toute faille de sécurité survenue dans les 72 heures suivant l'incident.
A mon sens je ne vois pas de problème particulier à ce sujet.
Cependant une consultation auprès d'un avocat spécialisé pourrait permettre de préciser ce point.
Leave a comment.