pfSense : installer l’IDS Snort

pfSense : installer l’IDS Snort

Nous allons voir dans cet article comment installer le package Snort sur un routeur/pare-feu pfSense, et ainsi en faire un IDS voir même un IPS !

Avant de commencer, il convient d’abord d’expliquer un peu ce qu’est un IDS et la différence avec un IPS.

IDS :

Système de détection d’intrustion en français, c’est un service qui va surveiller le réseau et alerter en cas de trafic malicieux, mais il ne va pas prendre lui-même des mesures pour bloquer/mitiger ces attaques ou tentatives d’attaques. Snort est un IDS.

IPS :

Système de prévention d’intrusion, c’est ce service qui va permettre de bloquer, mitiger, rediriger les attaques sur le réseau. Snort a une option permettant de bloquer les hôtes malveillants agissants sur le réseau, mais cette fonctionnalité reste basique et en entreprise il est conseillé de bien séparer IDS/IPS, mais nous verrons tout de même son activation ici 😉

Bien, une fois notre pfSense installé et configuré, nous nous rendons dans le Packet Manager :

On clique ensuite sur Install puis Confirm et l’installation se lance ! Rien de très compliqué donc.

Une fois installé, Snort apparaîtra dans l’onglet Services. Une fois rendu dessus, nous allons dans un premier temps aller sur l’onglet Global Settings :

La première étape est donc d’activer le téléchargement de règles gratuites, en cochant la première case (Enable Snort VRT). Il faudra renseigner une clé et pour l’obtenir il vous faudra créer un compte sur le site officiel de Snort (très rapide à effectuer, ne vous en faites pas).

Et ensuite nous pouvons cocher les cases :

  • Enable Snort GPLv2, pour les règles communautaires ;
  • Enable ET Open, qui sont des règles proposées par la société ET ;
  • Enable OpenAppID, éventuellement, qui est une autre société ;

Et ensuite, pour les derniers paramètres il convient simplement de configurer l’update pour les différentes règles, c’est-à-dire le délai avant de vérifier les mises à jour pour les différentes règles ou pour de nouvelles :

12H est suffisant, mais en entreprise il conviendra de mettre 6H par précaution. Et pour l’heure de début de vérification pour les updates, j’ai choisi 01:00 (à vous de choisir l’heure qui vous convient).

Une fois cliqué sur Save, nous pouvons nous rendre sur l’onglet Updates et manuellement mettre à jour les différentes règles que nous avons cochées juste avant (ici cela prendra un peu plus de temps, car nous allons toutes les télécharger une première fois, forcément) :

Une fois la mise à jour terminé, nous approchons de la fin ! Rendons-nous donc sur Snort interfaces pour choisir l’interface (ou les interfaces) sur laquelle Snort va écouter et analyser le trafic :

Ici nous choisissons donc l’interface de notre choix (LAN ici), puis une courte description, et ensuite nous cochons simplement le fait d’envoyer les alertes sur le système de log interne, ce qui est toujours bien.

A noter qu’ici, nous pouvons justement faire de Snort un IPS, en cochant la case Block Offenders :

En faisant cela, Snort va donc bloquer les hôtes générant des alertes… Faites donc bien attention en production, car nous ne sommes jamais à l’abri de faux positifs ! (Un serveur WSUS qui fait des scans de temps à autre et hop, c’est le ban !)

Et enfin pour le reste nous n’allons pas nous y attarder, il s’agit de l’algorithme pour la recherche d’intrusion ainsi que les options avancées :

On valide et le tour est joué !

L’avant dernière étape est d’activer toutes les règles précédemment téléchargées en nous rendant dans LAN Categories, sur Snort Interfaces, LAN en cochant l’option Use IPS Policy :

On valide donc le tout, et on retourne à la liste des interfaces de Snort pour cliquer sur Start :

Hop là ! Rien de plus simple ! On peut même s’amuser un peu pour vérifier que Snort fonctionne bel et bien et tenter de lancer un petit nmap via Kali Linux, histoire de voir si nous arrivons à passer sous les radars ou non…

Woops, on dirait bien qu’on est grillé… et idem avec un petit wpscan :

Et bien voilà ! C’était un article ma foi assez rapide mais désormais vous savez comment installer et configurer Snort en tant qu’IDS/IPS sur un pfSense !

10 commentaires

comments user
Victor

Merci, je n ai jamais installé via pfsense.
A essayer.

    comments user
    Mairien Anthony

    Merci à vous d’avoir pris le temps de lire !

comments user
Doys

Pourquoi choisir l’interface Lan et non Wan ?
J’ai fait la même manip, une simple consultation d’une page, ban les ips
en effet, ca bloque bien mais ca bloque tous !

    comments user
    Mairien Anthony

    Car ici c’était un lab, et l’attaquant étant dans le LAN, donc j’ai fait écouté l’IDS sur cette interface, mais tu es libre d’adapter à ton besoin !

    Effectivement mettre en place un IPS sans affiner les règles peut très vite bloquer beaucoup de trafic, il faut y aller à tâtons.

      comments user
      Doys

      Certes mais ce n’est pas expliqué dans ton tuto.
      Il me semble que le plus important est la gestion des régles.
      De comment débloqué un faux positif, les “sid/gid”.
      En l’état, Snort bloque 100% du traffic
      Faire ton scan depuis le LAN, snort fera des alertes mais ne bloquera rien (car ton IP est en white list).

      C’est pas une critique pour critiqué mais pour améliorer.
      Je met tous doucement en place un PfSence + Snort, c’est comme ca que je suis tomber ici (pour la gestion des régles)
      Installer Snort est “basique”, mais une personne souhaitant installé un snort en production sera vite bloqué sans savoir pourquoi.

      Mais je te remercie pour ta réponce et pour ton tuto

        comments user
        Mairien Anthony

        Ah pas de soucis haha, les critiques surtout commes les tiennes sont toujours les bienvenues !

        Cet article date de décembre 2019, entre temps j’ai d’ores et déjà commencé à re-travailler sur une version plus poussée, et je prends bien note de ton message 😉

        Après, le soucis, c’est qu’expliquer entièrement comment débloquer un faux-positif, comment utiliser le mirroring de port pour mieux analyser les flux, expliquer les différentes best practices… ça demande beaucoup beaucoup de travail haha !

comments user
xavier

Bonjour, article très intéressant, j’aurais voulu savoir si cela “consommait” beaucoup de ressources sur le pfsense ? la mémoire, le poids des logs ?

Merci

    comments user
    Mairien Anthony

    Hello xavier, je t’avoue que je n’ai plus du tout ces infos en tête… le mieux serait de regarder du côté du site officiel de pfSense, pour voir un peu les recommandations. De mémoire niveau logs ce n’est pas trop gros (ça ne reste que du texte), mais niveau RAM Snort/Suricata ont tendance à être pas mal gourmand…

    A vérifier !

comments user
Grimaud Fotso

Salut, Dans mon pfsence, il n’y a pas de paquets disponibles a télécharger, pourtant le ping sur google.ca fonctionne. comment résoudre le problème?

comments user
Mairien Anthony

Hello Grimaud !

Désolé pour le retard. Quand tu dis “pas de paquets dispos à télécharger”, tu as un message d’erreur ? Car ça m’a l’air bizarre, j’allais dire vérifies tes DNS mais si tu sais ping google.ca, tout devrait être ok…

Laisser un commentaire

You May Have Missed