WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Mise en place d'un système de détection d'intrusion avec snort.

( Télécharger le fichier original )
par Yanice CHACHA
Ecole Supérieure de Gestion d'Informatique et des Sciences - Licence en Ingénierie Informatique et Réseaux (Option: Systèmes Réseaux et Sécurité;) 2013
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

IV- Installation et Configuration de snort

1. Configuration matériel

- une machine virtuelle Debian 7.6 (serveur) configurée avec deux cartes réseaux : une en « host-only » servant d'interface de management et l'autre en bridge servant d'interface de collection ; mémoire ram 1giga. L'iso de la distribution debian7.6-nestinst est disponible sur le lien http://www.debian.org/distrib/netinst

- une machine virtuelle Debian 7.6 version desktop dans le même réseau host-only pour les tests

2. Installation et configuration

Après l'installation de la machine serveur qui abritera le service snort, il est nécessaire de mettre à jour le système pour disposer des versions récentes des services nécessaire au bon fonctionnement du serveur Debian. Il s'agit de lancer sur le serveur la commande apt-get update && apt-get upgrade en mode root.

Pour l'administration du serveur à distance il faut ensuite installer le service ssh par la commande apt-get install openssh-server toujours en tant que super administrateur (root).

A présent toute l'installation et les configurations vont se faire depuis ma machine physique avec l'outil de connexion à distance putty

- Je me connecte alors avec putty et je passe en root

Réalisé et présenté par Yanice CHACHA

25

Mise en place d'un système de détection d'intrusion avec SNORT

a- Installation des dépendances et prérequis

- L'installation de snort nécessite certaines dépendances qu'il faut impérativement installer de la manière suivante :

# apt-get update && apt-get -y install apache2 apache2-doc autoconf automake bison ca-certificates ethtool flex g++ gcc gcc-4.4 libapache2-modphp5

libcrypt-ssleay-perl libmysqlclient-dev libnet1 libnet1-dev libpcre3 libpcre3-dev libphp-adodb libssl-dev libtool libwww-perl make mysqlclient

mysql-common mysql-server ntp php5-cli php5-gd php5-mysql php-pear sendmail sysstat usbmount

Réalisé et présenté par Yanice CHACHA

26

Mise en place d'un système de détection d'intrusion avec SNORT

- Certains prérequis sont également nécessaires. Il s'agit des paquets libpcap, libdnet, et DAQ qu'il faut télécharger et compiler de la manière suivante :

Compilation de libpcap:

# cd /usr/src && wget http://www.tcpdump.org/release/libpcap-1.6.1.tar.gz

# tar -zxf libpcap-1.6.1.tar.gz && cd libpcap-1.6.1

# ./configure --prefix=/usr && make && make install

Compilation de libdnet:

# cd /usr/src && wget http://libdnet.googlecode.com/files/libdnet-1.12.tgz

# tar -zxf libdnet-1.12.tgz && cd libdnet-1.12

# ./configure --prefix=/usr --enable-shared && make && make install

Compilation de daq:

# cd /usr/src && wget https://www.snort.org/downloads/snort/daq-2.0.2.tar.gz

# tar -zxf daq-2.0.2.tar.gz && cd daq-2.0.2

# ./configure && make && make install

- Après compilation il est nécessaire de mettre à jour le chemin vers certaines librairies partagées ; ceci passe par l'exécution des commandes suivantes :

# echo >> /etc/ ld.so.conf /usr/lib

# echo >> /etc/ ld.so.conf /usr/local/lib && ldconfig

b- Installation et configuration de snort

Cette étape consiste à récupérer le paquet snort-2.9.6.2.tar.gz sur le site officiel de snort. Les captures ci-dessus expliquent le cheminement à suivre :

- Configuration interface

Réalisé et présenté par Yanice CHACHA

27

Mise en place d'un système de détection d'intrusion avec SNORT

- On se déplace dans le répertoire /usr/src

- on télécharge le paquet compressé de snort-2.9.6.2

- ensuite on le décompresse avec la commande tar

- On se déplace ensuite dans le répertoire obtenu pour effectuer la compilation

Réalisé et présenté par Yanice CHACHA

28

Mise en place d'un système de détection d'intrusion avec SNORT

Réalisé et présenté par Yanice CHACHA

29

Mise en place d'un système de détection d'intrusion avec SNORT

-make et make install

Réalisé et présenté par Yanice CHACHA

30

Mise en place d'un système de détection d'intrusion avec SNORT

- On crée les répertoires à utiliser pour la configuration de snort :

Réalisé et présenté par Yanice CHACHA

31

Mise en place d'un système de détection d'intrusion avec SNORT

- Création des fichiers à utiliser pour la configuration de snort

- Création du groupe snort et ajout de l'utilisateur snort à ce groupe

Mise en place d'un système de détection d'intrusion avec SNORT

- On rend l'utilisateur snort propriétaire des fichiers de journalisation (logs)

Réalisé et présenté par Yanice CHACHA

32

- Copie des fichiers de configuration dans les dossiers principaux de configuration

Réalisé et présenté par Yanice CHACHA

33

Mise en place d'un système de détection d'intrusion avec SNORT

- On télécharge un exemplaire du fichier snort.conf

Mise en place d'un système de détection d'intrusion avec SNORT

Réalisé et présenté par Yanice CHACHA

34

- Copie de l'exemplaire du fichier snort.conf dans /usr/local/etc/snort/

Réalisé et présenté par Yanice CHACHA

35

Mise en place d'un système de détection d'intrusion avec SNORT

- Edition du fichier snort.conf : # vi /usr/local/etc/snort/snort.conf

On modifie les lignes suivantes: 45, 48, 104, 109, 110, 293, 521 et 543

- Sur les lignes 45 et 46 on inique l'adresse du réseau local comme suit

Réalisé et présenté par Yanice CHACHA

36

Mise en place d'un système de détection d'intrusion avec SNORT

- On applique les modifications à la ligne 104 comme telle

- On modifie les lignes 109 et 110 comme dans la capture

Réalisé et présenté par Yanice CHACHA

37

Mise en place d'un système de détection d'intrusion avec SNORT

- On ajoute juste après «decompress_depth 65535» max_gzip_mem 104857600 sur la ligne 293

- On ajoute ces paramètres sur la ligne 521 output unified2: filename snort.log, limit 128

- On supprime ou on commente toutes les lignes «include $RULE_PATH» sauf celle de «local.rules» après la ligne 543

- On édite le fichier local.rules dans /usr/local/etc/snort/rules/

- # vi /usr/local/etc/snort/rules/local.rules

Mise en place d'un système de détection d'intrusion avec SNORT

- On entre une simple règle comme ceci pour tester:

- alert icmp any any -> $HOME_NET any (msg:"ICMP test"; sid:10000001; rev:1;)

- on enregistre et on ferme

Réalisé et présenté par Yanice CHACHA

38

- on fait un premier essai pour voir si snort répond à l'alerte

Réalisé et présenté par Yanice CHACHA

39

Mise en place d'un système de détection d'intrusion avec SNORT

- résultat du test

Réalisé et présenté par Yanice CHACHA

40

Mise en place d'un système de détection d'intrusion avec SNORT

Installation et configuration de barnyard :

On récupère l'archive master.tar.gz et on le décompresse et on se déplace ensuite dans le dossier barynyard2 -master obtenu

- # cd /usr/src && wget https://github.com/firnsy/barnyard2/archive/master.tar.gz

- # tar -zxf master.tar.gz && cd barnyard2-* - Ensuite on tape les commandes suivantes :

- On déplace le fichier de configuration barnyard2.conf dans /usr/local/etc/snort et on copie le fichier create_mysql dans /usr/src

# mv /usr/local/etc/barnyard2.conf /usr/local/etc/snort

# cp schemas/create_mysql /usr/src

- Il faut alors configurer barnyard2 en éditant son fichier de configuration de la manière suivante

Mise en place d'un système de détection d'intrusion avec SNORT

- On modifie les lignes 27, 28, 29 et 30 comme ci-après

Réalisé et présenté par Yanice CHACHA

41

- Ensuite on modifie la ligne 227 comme suit

Réalisé et présenté par Yanice CHACHA

42

Mise en place d'un système de détection d'intrusion avec SNORT

- Par finir on ajoute à la fin de ce fichier la ligne suivante :

output database: log, mysql, user=snort password=<mypassword> dbname=snort host=localhost où « mypassword » est le mot de passe qui sera utiliser lors de la création de la base de donnée snort (mot de passe de l'utilisateur snort)

Réalisé et présenté par Yanice CHACHA

43

Mise en place d'un système de détection d'intrusion avec SNORT

- Il faut ensuite créer la base snort en suivant les étapes ci-dessus

# mysql -u root -p # ici on entre le mot de passe créer lors de l'installation de mysql-server

mysql> create database snort;

mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;

mysql> SET PASSWORD FOR snort@localhost=PASSWORD ('mypassword'); # ajouter le mot de passe de l'utilisateur snort

mysql> use snort;

mysql> source /usr/src/create_mysql mysql> show tables; # on devrait voir la listes des nouvelles tables qui ont été importées.

mysql> exit

- Maintenant on démarre snort et barnyard avec la commande ci-dessous :

# /usr/local/bin/snort -q -u snort -g snort -c /usr/local/etc/snort/snort.conf -i eth1&

# /usr/local/bin/barnyard2 -c /usr/local/etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /usr/local/etc/snort/bylog.waldo -C /usr/local/etc/snort/classification.config &

- Ensuite on ping l'interface de mangement depuis une autre machine - Résultat du ping :

La commande suivante montre que barnyard est correctement inséré dans la base de données:

# mysql -u root -p -D snort -e "select count(*) from event"

- On configure apache ; on copie le fichier default-ssl dans sites-enabled - Par suite on édite le fichier /etc/php5/apache2/php.ini

Réalisé et présenté par Yanice CHACHA

44

Mise en place d'un système de détection d'intrusion avec SNORT

- En modifiant la ligne 463

- On active alors le module ssl avec la commande a2enmod ssl et configure également PHP avec les options ci-après

- # pear config-set preferred_state alpha && pear channel-update pear.php.net

- # pear install --alldeps Image_Color2 Image_Canvas Image_Graph

- Il faut alors redémarrer le service apache2 pour que la configuration prenne effet :

/etc/init.d/apache2 restart

c- Installation de BASE pour la gestion des alertes depuis une interface graphique

- La première étape consiste déjà à télécharger le paquet et le décompresser et donner ensuite provisoirement les droits sur le dossier extrait tous les utilisateurs utilisant le système

# cd /usr/src && wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz

# tar -zxf base-1.4.5.tar.gz && cp -r base-1.4.5 /var/www/base # chmod 777 /var/www/base

Réalisé et présenté par Yanice CHACHA

45

Mise en place d'un système de détection d'intrusion avec SNORT

- On se connecte sur l'interface pour finir la configuration de base comme le montre les captures suivantes :

- On clique sur continue et on renseigne la langue : dans mon cas j'ai pris «English » et puis on indique le chemin sur d'accessibilité de la base adoddb : /usr/share/php/adodb sur continue

Réalisé et présenté par Yanice CHACHA

46

Mise en place d'un système de détection d'intrusion avec SNORT

- On renseigne alors les paramètres sur la base de données

- On clique sur continues et ensuite Clique "create baseag" une base qui va s'étendre au support snort

Réalisé et présenté par Yanice CHACHA

47

Mise en place d'un système de détection d'intrusion avec SNORT

- L'étape qui suit est celle de l'authentification pour se connecter sur Base

-On va dès à présent créer un script pour mettre en marche snort et barnyard au démarrage : Ce script sera placé dans /etc/init.d/ :

# vi /etc/init.d/snortbarn

#! /bin/sh

#

### BEGIN INIT INFO

# Provides: snortbarn

# Required-Start: $remote_fs $syslog mysql

# Required-Stop: $remote_fs $syslog

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

Réalisé et présenté par Yanice CHACHA

48

Mise en place d'un système de détection d'intrusion avec SNORT

# X-Interactive: true

# Short-Description: Start Snort and Barnyard

### END INIT INFO

. /lib/init/ vars.sh

. /lib/lsb/init-functions

mysqld_get_param() {

/usr/sbin/mysqld --print-defaults | tr " " "\n" | grep -- "--$1" | tail -n 1 | cut -d= -f2

}

do_start()

{

log_daemon_msg "Starting Snort and Barnyard" ""

# Make sure mysql has finished starting

ps_alive=0

while [ $ps_alive -lt 1 ];

do

pidfile=`mysqld_get_param pid-file`

if [ -f "$pidfile" ] && ps `cat $pidfile` >/dev/null 2>&1; then ps_alive=1; fi

sleep 1

done

/sbin/ifconfig eth1 up

/usr/local/bin/snort -q -u snort -g snort -c /usr/local/etc/snort/snort.conf -i eth1 &

/usr/local/bin/barnyard2 -q -c /usr/local/etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w

/usr/local/etc/snort/bylog.waldo -C

/usr/local/etc/snort/classification.config 2> /dev/null &

log_end_msg 0

return 0

}

do_stop()

{

log_daemon_msg "Stopping Snort and Barnyard" ""

kill $(pidof snort) 2> /dev/null

Mise en place d'un système de détection d'intrusion avec SNORT

kill $(pidof barnyard2) 2> /dev/null

log_end_msg 0

return 0

}

case "$1" in

start)

do_start

;;

stop)

do_stop

;;

restart)

do_stop

do_start

;;

*)

echo "Usage: snort-barn {start|stop|restart}" >&2

exit 3

;;

esac

exit 0

- Il faut ensuite rendre ce fichier exécutable et créer les liens symboliques de démarrage En exécutant les commandes :

# chmod +x /etc/init.d/snortbarn # insserv -f -v snortbarn

Snort et barnyard démarreront maintenant automatiquement au démarrage

 
 
 

Réalisé et présenté par Yanice CHACHA

49

Réalisé et présenté par Yanice CHACHA

50

Mise en place d'un système de détection d'intrusion avec SNORT

- L'étape suivante est la mise à jour des règles avec pulledpork dont il faut récupérer l'archive et faire les manipulations suivantes :

# cd /usr/src && wget https://pulledpork.googlecode.com/files/pulledpork-0.7.0.tar.gz

# tar -zxf pulledpork-0.7.0.tar.gz && cd pulledpork-0.7.0

# cp pulledpork.pl /usr/local/bin && cp etc/*.conf /usr/local/etc/snort

Ces captures ci-dessus expliquent clairement la procédure

Réalisé et présenté par Yanice CHACHA

51

Mise en place d'un système de détection d'intrusion avec SNORT

Réalisé et présenté par Yanice CHACHA

52

Mise en place d'un système de détection d'intrusion avec SNORT

- Ensuite il la commande ci-dessus pour désactiver tous les blocks de règles fwsam # echo pcre:fwsam >> /usr/local/etc/snort/disablesid.conf

Réalisé et présenté par Yanice CHACHA

53

Mise en place d'un système de détection d'intrusion avec SNORT

- Et on démarre pulledpork avec les commandes ci-dessous # chmod +x /usr/local/bin/ pulledpork.pl

# /usr/local/bin/ pulledpork.pl -c /usr/local/etc/snort/pulledpork.conf -T -l

Réalisé et présenté par Yanice CHACHA

54

Mise en place d'un système de détection d'intrusion avec SNORT

Les fichiers local.rules et snort.rules apparaîtront alors dans le répertoire /usr/local/etc/snort/rules.

- On supprimer alors le fichier index.html par défaut dans /var/www, on retire alors le droit d'écriture au groupe et aux autres sur le répertoire base dans /var/www. Il est nécessaire aussi d'arrêter les processus snort et barnyard2 et on supprime le contenu des répertoires log de snort et barnyard2

# rm /var/www/index.html

# chmod 755 /var/www/base

# pkill snort && pkill barnyard2

# rm -rf /var/log/snort/* /var/log/barnyard2/*

Réalisé et présenté par Yanice CHACHA

55

Mise en place d'un système de détection d'intrusion avec SNORT

- Par suite on réédite le fichier snort.conf à la ligne 542 de la manière suivante : # vi /usr/local/etc/snort/snort.conf

Réalisé et présenté par Yanice CHACHA

56

Mise en place d'un système de détection d'intrusion avec SNORT

- En ajoutant à la ligne 542 include $RULE_PATH/snort.rules

- Par finir on redémarre snortbarn

# /etc/init.d/snortbarn restart

Réalisé et présenté par Yanice CHACHA

57

Mise en place d'un système de détection d'intrusion avec SNORT

Exemple de règle snort

Cette règle permet :

- De générer une alerte icmp (un ping)

- Provenant de n'importe quel hôte du réseau local

- Vers n'importe quel autre hôte du réseau local

- Et renvoie un message : ICMP test

- Ainsi que l'identifiant de la signature dans la base de données

Réalisé et présenté par Yanice CHACHA

58

Mise en place d'un système de détection d'intrusion avec SNORT

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Tu supportes des injustices; Consoles-toi, le vrai malheur est d'en faire"   Démocrite