Configurer Snort (IDS) sur Windows 11

Introduction

Snort possède une version Windows, un peu plus limitée (IDS), mais fonctionnelle (avec un peu de patience).

Voici comment procéder en partant d'une installation de Windows 11 Pro Standard :


1) Télécharger et installer les paquets requis

Télécharger et installer : Npcap, 7-zip, snort 2.9.20, vc_redist16
(pour l'instant, je ne montre pas pour la version 3 de Snort. Je verrai si j'ai le temps de le faire plus tard).

Pour Npcap, vous pouvez autoriser le wifi lors de l'installation. Laisser tout le reste par défaut pour les 4 paquets.


2) Afficher les extensions et fichiers cachés

Afficher les extensions des noms de fichier et les fichiers cachés dans l'explorateur Windows


3) Télécharger les règles Snort

S'enregistrer sur le site snort.org (créer un compte.. c'est gratuit)

Confirmer le mail, se loguer puis télécharger les règles 'Registered' (pas communautaires) 'snortrules-snapshot-29200.tar.gz'


4) Décompresser les règles

Double-Décompresser le fichier snortrules-snapshot-29200.tar.gz avec 7-zip.

(Attention, Windows Defender se réveille et vous bloque les téléchargements et la décompression, il faut intervenir et autoriser les fichiers)


5) Sauvegarder les fichiers preproc_rules existants

Dans C:\Snort\preproc_rules

Renommez les 3 fichiers :

En :

(Puis copier les 3 fichiers du dossier preproc_rules téléchargé au même endroit)


6) Copier les règles

Copier tous les fichiers contenus dans le dossier rules téléchargé dans C:\Snort\rules


7) Ajouter au PATH

(ouvrir PowerShell en mode Administrateur)

$Env:Path += ';C:\Snort\bin'

8) Recharger le PATH

[System.Environment]::SetEnvironmentVariable('Path', [System.Environment]::GetEnvironmentVariable('Path', [System.EnvironmentVariableTarget]::Machine) + ';C:\Snort\bin', [System.EnvironmentVariableTarget]::Machine)

9) Configurer le fichier snort.conf

Faire une copie du fichier C:\Snort\etc\snort.conf en C:\Snort\etc\snort.conf.BAK par sécurité.

Ouvrir le bloc-note en mode Administrateur et ouvrir le fichier C:\Snort\etc\snort.conf :

Remplacer ipvar HOME_NET

Remplacer :

ipvar HOME_NET any

Par :

ipvar HOME_NET 192.168.1.0/24

(c'est l'adresse IP du réseau 'LAN' que Snort devra protéger)

Remplacer ipvar EXTERNAL_NET

Remplacer :

ipvar EXTERNAL_NET any

Par :

ipvar EXTERNAL_NET !$HOME_NET

Remplacer var RULE_PATH

Remplacer :

var RULE_PATH ../rules

Par :

var RULE_PATH C:\Snort\rules

Commenter var SO_RULE_PATH

Commenter :

var SO_RULE_PATH ../so_rules

En :

# var SO_RULE_PATH ../so_rules

Remplacer WHITE_LIST_PATH et BLACK_LIST_PATH

Remplacer :

var WHITE_LIST_PATH ../rules
var BLACK_LIST_PATH ../rules

En :

var WHITE_LIST_PATH C:\Snort\rules
var BLACK_LIST_PATH C:\Snort\rules

Remplacer config logdir

Remplacer :

# config logdir:

En :

config logdir: C:\Snort\log

Remplacer les chemins dynamiques

Remplacer :

# path to dynamic preprocessor libraries
dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/
# path to base preprocessor engine
dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so
# path to dynamic rules libraries
dynamicdetection directory /usr/local/lib/snort_dynamicrules

Par :

# path to dynamic preprocessor libraries
dynamicpreprocessor directory C:\Snort\lib\snort_dynamicpreprocessor
# path to base preprocessor engine
dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll
# path to dynamic rules libraries
# dynamicdetection directory C:\Snort\lib\snort_dynamicrules

Remplacer whitelist et blacklist

Remplacer :

whitelist $WHITE_LIST_PATH/white_list.rules, \
blacklist $BLACK_LIST_PATH/black_list.rules

Par :

whitelist $WHITE_LIST_PATH/whitelist.rules, \
blacklist $BLACK_LIST_PATH/blacklist.rules

Remplacer les slashes dans les includes

Se positionner sur 'include $RULE_PATH/local.rules'. Lancer le remplacement (CTRL+H) de '/' pour '\' pour toutes les lignes include $RULE_PATH jusqu'à x11.rules

Décommenter les règles de préprocesseurs

Remplacer :

# include $PREPROC_RULE_PATH/preprocessor.rules
# include $PREPROC_RULE_PATH/decoder.rules
# include $PREPROC_RULE_PATH/sensitive-data.rules

Par :

include $PREPROC_RULE_PATH\preprocessor.rules
include $PREPROC_RULE_PATH\decoder.rules
include $PREPROC_RULE_PATH\sensitive-data.rules

Configurer les logs d'alerte

Dans la Section 'Step #6: Configure output plugins', placer les lignes suivantes :

# Logs d'alerte :
output alert_fast: alert_fast.txt
output alert_full: alert_full.txt

(Attention avec le log alert_full.txt, il se remplit extrêmement vite (1Mo toutes les 10minutes) à cause des innombrables IP télémétriques de Windows que Snort fait remonter en tant que Trafic potentiellement mauvais - et il n'a pas tort - ... .et ça finit par peser très lourd, très vite...). Il y a donc des stratégies à mettre en place !

📥 Télécharger snort.conf


10) Créer le fichier whitelist.rules

Créer une copie du fichier C:\Snort\rules\blacklist.rules, renommer cette copie whitelist.rules

Ouvrir whitelist.rules avec notepad et modifier '# BLACKLIST RULES' en '# WHITELIST RULES'


11) Repérer l'interface réseau

Repérer l'interface réseau sur laquelle mettre Snort en écoute :

(Ouvrir PowerShell en mode Admin)

snort -W

(récupérer le numéro d'Index correspondant à la carte réseau voulue.. je prends la 1 en exemple)


12) Test de la configuration de Snort

snort -i 1 -T -c C:\Snort\etc\snort.conf

(Si le résultat est positif, alors on avance! Sinon on débug !)


13) Lancer Snort en mode IDS

Décommentez les règles qui vous intéressent dans tous les fichiers C:\Snort\rules puis lancer Snort en mode IDS

En mode Console

snort -c C:\Snort\etc\snort.conf -i 1 -A console

Directement dans les logs

snort -c C:\Snort\etc\snort.conf -i 1

⬆️ Retour en haut de la page