Académique Documents
Professionnel Documents
Culture Documents
Objectifs :
L’objectif de ce TP est de mettre en place un système de détection d’intrusion en se basant sur
le logiciel libre Snort. C’est un système de détection d'intrusion libre qui est capable d'effectuer
en temps réel des analyses de trafic et de logger les paquets sur un réseau IP. Il peut effectuer
des analyses de protocoles, recherche/correspondance de contenu et peut être utilisé pour
détecter une grande variété d'attaques.
Travail demandé :
Dans le cadre de ce TP, nous nous intéressons essentiellement aux aspects suivants :
- Comprendre et assimiler le rôle d’un système de détection d’intrusion dans la
sécurité des réseaux ;
- Installer du logiciel Snort et les logiciels requis ;
▪ Installation des pré-requis
▪ Installation de SNORT
▪ Configurations
▪ Configuration de mysql
▪ Configuration de Snort
Déroulement du TP :
Durant ce TP nous allons travailler avec deux machines, la première est pour configurer Snort
alors que la deuxième agira comme un client malveillant.
Comme le montre la maquette ci-dessus, nous allons utiliser une machine virtuelle (Machine 1)
sur laquelle nous allons mettre en place Snort ainsi que d’autres services qui sont nécessaire à
son bon fonctionnement. La deuxième machine (Machine 2) agira comme une machine du
réseau extérieur
Les deux machines vont communiquer via la passerelle de vmwar (@IP : 192.168.231.2)
Libprelude
IDMEF offre aussi un vocabulaire précis, qu’il est courant d’utiliser dans le domaine de la
détection d’intrusions. Par exemple, une classification correspond au nom d’une alerte, un
impact celui d’un niveau d’attaque.
L’intérêt de Prelude est de pouvoir centraliser les alertes dans sa base de données et de les
normaliser au format IDMEF, puis visualisable dans une interface web.
Installation
On commence l’installation de snort par les commandes suivantes :
$ sudo cd /tmp
$ sudo cd snort-2.8.4.1
$ sudo make
Utilisateur et groupe
Pour l’administration de l’application Snort, il faut créer un utilisateur d’administration et un
groupe (cette étape peut être optionnelle) :
Règles Snort
Ajout des règles Snort:
$ sudo cd /tmp
Règles Emerging
Ajout des règles Emerging (optionnel) :
$ sudo cd /etc/snort
MySQL
Création de la base de données
Pour le stockage des alertes de Snort, et pour une visualisation plus claire que dans un fichier
de logs, il est possible de créer une base de données (tout en conservant la sortie en logs) :
> exit
$ sudo cd /tmp/snort-2.8.4.1/schemas
Vérification
Et enfin, pour vérifier que la base de données a bien été construite :
> exit
Configuration
Pour configurer Snort, il faut éditer le fichier snort.conf.
Configuration de base
Dans le fichier snort.conf, voici les paramètres de base à indiquer pour le bon fonctionnement
de Snort :
Pour relayer les alertes de snort vers le serveur Prelude, il faut également ajouter cette ligne :
Puis, il est important pour la communication entre Snort et Prelude de configurer la librairie de
Prelude. Pour cela, il faut préciser l’adresse du serveur Prelude dans le fichier client.conf dans
le repertoire /usr/local/etc/prelude/default.
server-addr = 192.168.1.200
Puis y ajouter cette ligne de test, qui sert à envoyer des alertes lorsque Snort sniffe et détecte
des pings sur le réseau :
alert icmp any any -> any any (msg:"test ICMP";sid:10000001;)
Lancement de Snort
Démarrage de Snort:
$ sudo /usr/local/snort/bin/snort -c /etc/snort/snort.conf
Test
Lancement du test de la règle local.rules :
$ sudo ping x.x.x.x
Vérification
Puis vérification de la présence des alertes générées, normalement, après le test, dans la base de
données, et dans le fichier de logs :
$ sudo vim /var/log/snort/alert
et/ou
Optimisation
Classification et Référence
Pour un meilleur fonctionnement de Snort, il faut inclure deux fichiers supplémentaires
dans snort.conf. Ces derniers permettent la gestion des priorités des alertes (niveaux,
classification, …etc), et l’usage des références dans les règles de Snort, d’après notre
installation, ces fichiers se trouvent dans /etc/snort.
include classification.config
include reference.config
Déclaration de serveurs
Afin de préciser les différents serveurs présents sur le réseau que Snort surveille, il faut éditer
dans le fichier snort.conf, les différentes variables disponibles telles que :
...
Voici un exemple :
...
include $RULE_PATH/other-ids.rules
# include $RULE_PATH/web-attacks.rules
...
Utilisation
Administration de Snort
Commande snort
Snort ne possède qu’une seule commande, snort, cette dernière regroupe toutes les options
nécessaires pour le fonctionnement de l’application.
Usage :
Démarrage de Snort
Pour démarrer Snort, il faut entrer cette commande :