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 :
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.
Afficher les extensions des noms de fichier et les fichiers cachés dans l'explorateur Windows
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'
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)
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)
Copier tous les fichiers contenus dans le dossier rules téléchargé dans C:\Snort\rules
(ouvrir PowerShell en mode Administrateur)
$Env:Path += ';C:\Snort\bin'
[System.Environment]::SetEnvironmentVariable('Path', [System.Environment]::GetEnvironmentVariable('Path', [System.EnvironmentVariableTarget]::Machine) + ';C:\Snort\bin', [System.EnvironmentVariableTarget]::Machine)
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 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 any
Par :
ipvar EXTERNAL_NET !$HOME_NET
Remplacer :
var RULE_PATH ../rules
Par :
var RULE_PATH C:\Snort\rules
Commenter :
var SO_RULE_PATH ../so_rules
En :
# var SO_RULE_PATH ../so_rules
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:
En :
config logdir: C:\Snort\log
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 $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
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
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
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 !
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'
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)
snort -i 1 -T -c C:\Snort\etc\snort.conf
(Si le résultat est positif, alors on avance! Sinon on débug !)
Décommentez les règles qui vous intéressent dans tous les fichiers C:\Snort\rules puis lancer Snort en mode IDS
snort -c C:\Snort\etc\snort.conf -i 1 -A console
snort -c C:\Snort\etc\snort.conf -i 1