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 :
- decoder.rules
- preprocessor.rules
- sensitive-data.rules
En :
- decoder.rules.BAK
- preprocessor.rules.BAK
- sensitive-data.rules.BAK
(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 !
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
↑ Haut de page