Comment installer NtopNG sur PfSense ?

I. Présentation

Dans ce tutoriel, nous allons voir comment installer NtopNG sur un pare-feu PfSense afin de monitorer son réseau et plus précisément les flux qui transitent sur PfSense. Grâce à NtopNG, nous allons pouvoir obtenir des informations très intéressantes sur le trafic réseau :

  • Quels sont les hôtes qui consomment le plus de bande-passante ?
  • Quels sont les flux les plus actifs ?
  • Quelles sont les applications les plus utilisées ?
  • Etc.

Ce tutoriel s'inscrit dans la continuité de celui rédigé par mon homonyme Florian, au sujet de l'installation de la solution NtopNG pour monitorer son réseau. Puisqu'il a mentionné dans son article la possibilité d'utiliser NtopNG sur PfSense, je me suis penché sur le sujet ! Je vous encourage à lire cet article en complément de celui-ci.

Pour ce tutoriel, je vais utiliser un pare-feu PfSense 2.5.2, en édition communautaire, tout comme NtopNG qui sera utilisé en version gratuite. Vous pouvez utiliser ce paquet sur une version Plus de PfSense, et aussi utiliser une licence NtopNG.

II. Installation de NtopNG sur PfSense

Pour installer NtopNG sur PfSense, il y a deux méthodes. Tout d'abord, il y a la méthode traditionnelle à partir du gestionnaire de paquets PfSense qui permettra d'installer une version de NtopNG et de la piloter via l'interface de PfSense. Ensuite, il y a une méthode avancée on va dire, qui consiste à installer NtopNG à partir de la ligne de commandes. Vous allez me dire quel est l'intérêt de passer par la ligne de commande si l'on peut faire plus simple ?

Et bien, j'ai constaté que la version installée par le Package Manager est relativement ancienne, tandis qu'en ligne de commande on parvient à installer la dernière version. Personnellement, cela me plaît mieux afin de profiter des dernières fonctionnalités, mais aussi des derniers correctifs. Sur la documentation officielle de NtopNG, c'est justement la méthode en ligne de commande qui est expliquée.

A. Via le gestionnaire de paquets PfSense

Pour ceux qui souhaitent essayer, la version disponible via le gestionnaire de paquets, suivez ces étapes. Sous le menu "System", cliquez sur "Package Manager". Ensuite, cliquez sur l'onglet "Available packages" et recherchez "ntopng" afin de l'installer via le bouton "Install".

Installer NtopNG PfSense

Ensuite, deux nouvelles entrées sont disponibles dans le menu "Diagnostics" : ntopng et ntopng Settings. Cliquez sur "ntopng Settings", car nous devons activer NtopNG avant de pouvoir accéder à son interface Web.

Cochez l'option "Enable ntopng" afin d'activer les services correspondants. Profitez-en pour définir un mot de passe admin via l'option "ntopng Admin Password" et l'option juste en dessous pour la confirmation.

Descendez tout en bas de la page et cliquez sur "Save" : NtopNG sera alors accessible à partir du lien "ntopng". Un nouvel onglet va s'ouvrir, sur le port 3000. Connectez-vous avec le compte "admin" et le mot de passe que vous avez choisit.

Après avoir fait votre choix sur le fait de participer ou non à l'amélioration du produit (notification en haut à droite), une seconde notification s'affiche pour vous indiquer que la version v4.2.0 de NtopNG est disponible. Le problème, c'est qu'il n'est pas forcément aisé de faire la mise à niveau, car d'un point de vue du paquet du PfSense, le paquet est "à jour".

C'est pour cette raison, sachant que la version 5.3 est la dernière en date, que j'ai cherché à réaliser l'installation d'une autre façon. Sinon, rien ne vous empêche de continuer à installer NtopNG de cette façon. Si, finalement, vous souhaitez partir sur la seconde méthode, pensez à désinstaller le paquet en amont (via Package Manager).

B. Manuellement via la ligne de commande

Pour réaliser l'installation en ligne de commande, je vous recommande d'activer temporairement l'accès SSH sur votre pare-feu PfSense. Ce sera plus facile pour copier-coller les commandes, plutôt qu'avec la console. À vous de voir. Le SSH peut être activé sous le menu "System" dans "Advanced" puis il suffit de cocher l'option "Enable Secure Shell".

Ensuite, connectez-vous à votre pare-feu avec son adresse IP "LAN" et faites le choix "8" pour accéder au shell.

Puisque PfSense 2.5.2 s'appuie sur FreeBSD 12 (ce que l'on peut vérifier avec la commande "freebsd-version"), nous allons ajouter le paquet correspondant à cette version.

pkg add https://packages.ntop.org/FreeBSD/FreeBSD:12:amd64/latest/ntop-1.0.txz

Ensuite, procédez à l'installation :

pkg install ntopng

La console indique que Bash 5.1.8 et NtopNG 5.3.220207 vont être installés : une bonne nouvelle ! 🙂 - Validez avec "y" puis Entrée.

Note : les paquets "nprobe" et "n2disk" ne sont pas indispensables pour utiliser seulement NtopNG.

Dès maintenant, nous pouvons démarrer Redis et NtopNG avec les deux commandes suivantes :

service redis onestart
service ntopng onestart

Pour utiliser NtopNG en mode communauté et le démarrer dans ce mode, il faut que l'on modifie le fichier de configuration "ntopng.conf". Commençons par récupérer le modèle de configuration via une copie puis à lui attribuer l'utilisateur ntopng comme propriétaire :

cp /usr/local/etc/ntopng/ntopng.conf.sample /usr/local/etc/ntopng/ntopng.conf
chown ntopng:ntopng /usr/local/etc/ntopng/ntopng.conf

Modifiez le fichier de configuration :

vi /usr/local/etc/ntopng/ntopng.conf

Tout à la fin de ce fichier, ajoutez cette ligne (via "Echap" suivit de la touche "i" pour insérer) :

--community

Sauvegardez avec la touche Echap suivi de ":wq!" puis Entrée. Vous pouvez accéder à NtopNG via l'adresse IP de votre PfSense et le port 3000. Cette fois-ci, il faut s'authentifier avec le compte "admin" et le mot de passe "admin" puis définir un nouveau mot de passe.

Vous voilà sur NtopNG ! Si vous avez un dashboard très complet comme sur l'image ci-dessous, c'est que l'outil est démarré en mode complet. Au bout de quelques minutes, il va basculer en version communautaire, ou au prochain lancement du service puisque nous avons édité le fichier de configuration.

NtopNG 5.3 sur PfSense
NtopNG 5.3 sur PfSense

D'ailleurs, nous devons faire en sorte que Redis et NtopNG démarrent automatiquement, en même temps que PfSense. Actuellement, si l'on redémarre PfSense, la solution de supervision ne va pas démarrer toute seule. Pour cela, je vais m'appuyer sur le package Shellcmd de PfSense : très utile puisqu'il va permettre de lancer des commandes au démarrage.

Après avoir installé ce paquet, cliquez sur "Shellcmd" sous le menu "Services". Ajoutez deux nouvelles entrées avec les commandes suivantes :

service redis onestart
service ntopng onestart

Ce qui donne :

À partir de là, PfSense va lancer automatiquement NtopNG à chaque démarrage.

III. Utilisation de NtopNG

Pour la partie utilisation, je vous réoriente vers le premier tutoriel disponible sur le site où il y a déjà une section dédiée : NtopNG.

NtopNG est capable de capturer et analyser les flux des différentes interfaces réseau de votre pare-feu Pfsense, y compris sur la partie OpenVPN. Par exemple, sur l'image ci-dessous je consulte les alertes remontées sur l'interface "ovpns1" correspondante à mon VPN SSL client-to-site. L'alerte "Application on Non-Standard Port" s'est déclenchée, car j'effectue du RDP au travers du VPN sur un port non standard : 13389 au lieu de 3389, donc NtopNG trouve cela suspect, car ce flux pourrait correspondre à du trafic malveillant et dissimulé.

À vous de jouer !

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian has 3782 posts and counting.See all posts by florian

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.