Retourner au contenu. Retourner à la navigation

 

Surveillance réseau avec Snort

by Celtikipooh @ 11/08/2007
A travers cet article, vous découvrirez comment utiliser Snort, un des meilleurs IDS libres.

Installation et configuration de Snort

1-Installation des pré-requis


Comme évoqué précédemment, plusieurs pré-requis sont nécessaires pour faire fonctionner Snort. Si vous avez une distribution relativement récente, tous seront normalement disponibles dans votre système de packages. Les paquets à installer sont:

-apache2
-mysql-server
-php5
-php-pear
-php5-mysql
-php5-gd


Par exemple sur un système basé sur Debian, on utilisera la commande apt-get install en root pour installer tous ces packages. Si vous optez pour une installation par les sources, elle n'aura normalement rien de compliquée (les traditionnels ./configure puis make et enfin make install). Pour plus d'informations, une petite recherche sur le site du laboratoire pourra vous combler.


2-Installation de snort


Il est temps maintenant d'installer Snort. Il est lui aussi disponible en deux versions à savoir via le système de packages et via les sources disponibles sur le site officiel (il va de soi que la version par les sources est plus récente que celle présente dans les packages).

2-1-Installation via package


Vu que nous avons décidé de travailler avec la base de données MySQL qui représente un bon rapport qualité/simplicité, le package à télécharger se nomme snort-mysql et est disponible sur les distributions relativement récentes (il existe d'autres packages pour d'autres utilisations et bases de données comme par exemple snort-pgsql pour PostgreSQL).

Voici donc une installation par package classique. La seule spécification vient du fait qu'à la fin de l'installation, Snort demandera quelques spécificités telles que le réseau que l'on souhaite surveiller (si vous voulez surveiller n'importe quel réseau, le mot clé "any" peut-être utilisé).

Ensuite, il convient de répondre "Non" lors de la configuration de la base de données. Ce point sera vu plus tard. Snort est désormais installé.

2-2-Installation par les sources


La première chose à faire pour une installation via les sources est bien entendu de récupérer les-dites sources. Celles de snort sont disponibles à l'adresse suivante:
www.snort.org/dl/

Une fois l'archive téléchargée, avant de faire quoique ce soit, il convient de récupérer les paquets nécessaires (comme des paquets relatifs à MySQL ou encore la librairie libpcap qu'utilise Snort) à la compilation et l'installation (si cela n'est pas déjà fait). Voici la liste des paquets à récupérer:

-build-essential
-libnet1-dev
-libpcap0.8-dev
-libpcre3-dev
-libmysqlclient12-dev
-checkinstall


Encore une fois, sur les distributions récentes, ces paquets sont disponibles via le gestionnaire de paquets et ne présente donc aucune difficulté particulière d'installation.

Une fois ces paquets installés, nous pouvons passer directement à l'extraction des sources. (A noter que cet article est réalisé avec la dernière version en date de Snort, à savoir la version 2.7).

#tar -xvf snort-2.7.0.1.tar.gz


Avant de commencer l'installation et la compilation, nous allons créer des dossiers spécifiques à Snort afin qu'il puisse y stocker ses fichiers de configurations. Sous un système Linux, les fichiers de configurations se trouvent en général dans le dossier etc/. C'est donc ici que nous allons créer les nouveaux dossiers:

#mkdir /etc/snort
#mkdir /etc/snort/rules


Le deuxième dossier, comme son nom l'indique, servira à stocker les règles de sécurité. Une fois cela fait, nous allons copier les fichiers présents dans le etc/ du dossier d'extraction dans le dossier que nous venons de créer. Dans le dossier rules que nous avons créé, nous y placerons les fichiers classification.config et reference.config

#cp <repertoire_extraction>/snort-2.7.0.1/etc/* /etc/snort/
#cp <repertoire_extraction>/snort-2.7.0.1/etc/classification.config /etc/snort/rules/
#cp <repertoire_extraction>/snort-2.7.0.1/etc/reference.config /etc/snort/rules/


Pour des mesures de sécurité évidentes, il est préférable de créer un utilisateur Snort dédié qui aura son propre répertoire pour stocker les log de Snort. On utilisera donc la classique commande Unix useradd de la façon suivante:

#useradd snort -m -d /var/log/snort -s /bin/false -c utilisateur_snort


Le dossier sera créé également. Tous ces pré-requis réalisés on peut maintenant passer à la compilation et l'installation de Snort.

Pour cela, il convient de se rendre dans le dossier d'extraction de Snort et de taper la commande suivante:

# ./configure --with-mysql
(l'option with-mysql est ici utilisée puisque l'article est rédigé avec cette base de données. Si vous en utilsez PostgreSQL par exemple, vous utiliserez l'option --with-pqsql)


Une fois la configuration terminée, il ne manque plus qu'à compiler et installer comme tous les logiciels linux:

# make && make install

(avec le checkinstall évoqué dans les pré-requis, vous pouvez, sur une distribution, installer le logiciel et créer un paquet .deb avec checkinstall au lieu de faire un make install).

Si tous les pré-requis ont été réalisés, l'installation devrait se faire sans problème. Rappelez-vous que dans les deux installations, nous avons choisi de ne pas configurer la base de données. Avant d'utiliser Snort, il est donc obligatoire de configurer notre base de données MySql.


2-3-Configuration de la base de données Snort.


Il est important de noter que nous présenterons ici une configuration pour MySQL. Pour une autre base de données, il faudra suivre scrupuleusement le même schéma mais en adaptant avec les commandes spécifiques à la base de données. Reportez-vous à la documentation de votre base de données pour ça.

Pour commencer, nous allons configurer un mot de passe pour l'administrateur de la base de données MySQL. En effet, par défaut, le serveur ne demandera pas de mot de passe pour cet utilisateur si il n'a jamais été configuré explicitement, ce qui représenterait une tare énorme en terme de sécurité. Pour faire cela, nous allons entrer la commande:

#mysqladmin -u root password <Votre mot de passe root>


Une fois cela fait, il faut se connecter au serveur et créer la base de données qui sera utilisée par Snort.

#mysql -u root -p


Après avoir rentré votre mot de passe root nouvellement configuré, un prompt mysql apparait. Pour créer la base de données, voici la commande à taper:

mysql>create database snortdb;

(à noter que vous pouvez donner le nom que vous voulez). Cette base de données a été créée avec l'utilisateur root. Il faut donc en donner les droits à l'utilisateur snort que nous avons créé un peu plus haut dans cet article. Pour cela, nous allons utiliser la commande suivante:

mysql>GRANT ALL ON snortdb.* TO snort@127.0.0.1 IDENTIFIED BY 'password';


Vous remplacerez donc snortdb par le nom de la base de données de Snort, snort par votre utilisateur snort système et vous lui choisirez un mot de passe. Un petit flush privileges pour recharger les privilèges nouvellement créés et vous pouvez sortir de MySQL (exit).

La base de données est maintenant créée, il convient de la remplir avec les tables que snort utilisera. Ces tables sont normalement fournies avec le logiciel. Pour l'installation via les packages un petit dpkg -L snort-mysql peut-être nécessaire pour les trouver. Concernant l'installation via les sources, ces scripts de création de tables se trouvent dans le dossier 'schemas' du dossier d'extractions des sources. Il existe un script spécifique pour chaque base de données. Dans notre cas, nous choisirons bien sûr celui concernant mysql. Nous le chargeons dans la base de la façon suivante:

# mysql -u root -p snortdb < <chemin ...>/snort-2.7.0.1/schemas/create_mysql


(ceci est un exemple avec les sources, vous choisirez le bon chemin si vous avez installé snort via le paquet snort-mysql)
Une fois cela fait, vous pouvez vérifier que les tables sont bien créées en faisant, dans MySQL:

mysql> desc snortdb.schema;


en remplaçant snortdb par le nom de votre base de données Snort. Si vous pouvez voir la structure de la table Schema c'est que tout s'est bien passé. La base de données est maintenant configurée. Vous pouvez quitter. Nous allons maintenant nous intéresser à Snort en lui-même.


2-4-Lancement de Snort


Avant de lancer Snort, nous devons bien entendu le configurer. Les fichiers de configuration se trouve dans /etc/snort. Prenons le premier fichier de configuration: /etc/snort/snort.conf. Nous devons spécifier à l'intérieur de ce fichier les informations spécifiques à la base de données qu'il doit utiliser. Le fichier étant assez long et conséquent, une recherche (Ctrl-f dans un éditeur) avec comme critère 'db' vous permettra de retrouver facilement la section qu'il faut. Une fois dans la bonne section, éditez-la (décommentez-la si nécessaire) de façon à ce que la ligne ressemble à ça:

output database: log, mysql, user=snort password=password dbname=snortdb host=localhost


Les sections devront bien sûr être renseignées avec votre configuration. Dernière étape dans le fichier de configuration, décommenter et modifier au besoin la section suivante:

ruletype redalert
{  
type alert

   output alert_syslog: LOG_AUTH LOG_ALERT

   output database: log, mysql, user=snort password=password dbname=snortdb host=127.0.0.1

}


Cette section définit une règle de sécurité. Elle permet en réalité de faire du logging dans la base de données MySQL ce qui est notre but au sein de cet article. Une fois que cela est configuré, enregistrez et quittez le fichier de configuration. Il reste une ultime étape avant le lancement de Snort: récupérer les règles de sécurité. Pour cela, il faut aller sur le site officiel de Snort. La récupération des règles nécessite la création d'un compte sur le site de Snort. Une fois cela fait, vous pourrez récupérer les "rules" qui, une fois extraites, devront toutes être placées dans le dossier rules du dossier /etc/snort.

Voilà l'heure est venue de lancer Snort avec la commande suivante:

# snort -i eth0 -u snort -c /etc/snort/snort.conf


Ici, on lance Snort en premier plan (il y a possibilité de le lancer en daemon) pour qu'il écoute sur l'interface eth0 (remplacez par celle que vous souhaitez), qu'il soit lancé avec l'utilisateur snort que nous avons créé précédemment pour assurer une meilleure sécurité et qu'il utilise le fichier de configuration /etc/snort/snort.conf. Si la base de données est correctement configurée et les règles correctement placées, Snort devrait normalement se lancer sans aucun soucis.

Pour analyser son fonctionnement, il suffit de provoquer une intrusion (non dangeureuse évidemment) et via phpmyadmin par exemple, en actualisant les tables, voir les informations sur l'attaque.

Par Celtikipooh Dernière modification 16/08/2007 11:48
Navigation
Actualités
25/05/2009 Install-Party Mandriva Linux 2009 Spring
30/04/2009 Sortie de Mandriva 2009 Spring
13/03/2009 Soirée Open Source - Performances Open Storage / ZFS
13/03/2009 Conférence Symfony avec Fabien Potencier
18/02/2009 Wine 1.1.15
Plus d'actualités...
Articles
22/05/2008 Première approche de Qmail
19/05/2008 Test de la distribution Elive 1.0 Gem
14/05/2008 GNUPG introduction à la cryptographie et utilisation de GnuPG
21/02/2008 GNU / Screen
03/09/2007 The Linux File System Encryption API
More articles
Tips
02/02/2009 Des favoris synchronisés
27/01/2009 OpenSUSE: Comment supprimer les icônes d'aide
23/01/2009 Beep en ligne de commande
21/01/2009 Connaître son ip public derrière un routeur
28/04/2008 Mozilla Firefox : Google Talk et Facebook Chat
More tips
Codes
09/04/2008 Chapitre 13 - Administration DNS et DHCP
09/04/2008 Chapitre 06 - Service web avec Apache
04/04/2008 Chapitre 09 - PureFTPd
04/04/2008 Chapitre 06 - Scripting Bash
01/04/2008 Chapitre 20 - Haute Disponibilité
More codes
Courses
13/09/2006 Module 3
23/02/2006 Module 2
23/02/2006 Module 1
More courses
Formation Linux

Supinfo Training Center has the first Linux Certification. The training is 13 days and allow you to pass the LPI 101 and 102.

more info
 
 
Vous êtes ici :
Articles Surveillance réseau avec Snort Installation et configuration de Snort