Mahdi Bouzarouata - Snort Config

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 15

Université Cadi Ayyad

Ecole Nationale des Sciences Appliquées de Safi


Département Informatique, Réseaux et Télécommunications
Filière: Génie Informatique
Niveau: 5ème Année

PROJET DE SECURITE
Thème:

Snort/Mysql et Base

Réalisé par :
BOUZAROUATA Mahdi

Encadré par :
Pr. Mustapha Hedabou

Année universitaire: 2014/2015


Préparation environnement :

On fait une mise à jour du système :

1) sudo apt-get update


2) sudo apt-get upgrade

Ensuite, on applique quelque configuration de la carte réseau

3) sudo apt-get install ethtool


4) sudo ethtool -K eth0 gro off
5) sudo ethtool -K eth0 lro off

puis, on installe quelque packages nécessaire à la compilation :

6) apt-get -y install libwww-perl libnet1 libnet1-dev libpcre3 libpcre3-dev autoconf libcrypt-


ssleay-perl libtool libssl-dev build-essential automake gcc make flex bison

On installe la bibliothèque libdnet, qui fournit une interface simplifiée, portable à plusieurs
routines de mise en réseau de bas niveau, y compris la manipulation des adresses réseau :

7) mkdir /usr/local/snort
8) mkdir /usr/local/snort
9) cd /usr/local/snort
10) wget http://libdnet.googlecode.com/files/libdnet-1.12.tgz
11) tar xzvf libdnet-1.12.tgz
12) cd libdnet-1.12/
13) ./configure
14) make
15) make install
16) ln -s /usr/local/lib/libdnet.1.0.1 /usr/lib/libdnet.1
Et pour capturer le trafic Réseau, on va installer l’outil libpcap, qui permet de sauvegarder
les paquets capturés dans un fichier, et la lecture de fichiers provenant de captures
précédentes :

17) cd /usr/local/snort
18) wget http://www.tcpdump.org/release/libpcap-1.3.0.tar.gz
19) tar zxf libpcap-1.3.0.tar.gz
20) cd libpcap-1.3.0
21) ./configure
22) make
23) make install
24) echo “/usr/local/lib” >> /etc/ld.so.conf
25) ldconfig –v

Les nouvelles versions de Snort ont introduit une nouvelle API d'acquisition de données (Data
AcQuisition library DAQ). Alors on aura besoin de télécharger et l'installer avant de mettre en
place le serveur Snort :

26) cd /usr/local/snort
27) Wget
http://switch.dl.sourceforge.net/project/snort/OLD%20STUFF%20THAT%20YOU%20S
HOULDNT%20USE/daq-2.0.2.tar.gz
28) tar zxvf daq-2.0.2.tar.gz
29) cd daq-2.0.2
30) ./configure
31) make
32) make install
Installation et configuration de Snort
33) sudo apt-get install snort

Pendant l’installation de Snort, on doit mentionner le sous-réseau protégé par l’IDS, ici c’est :
192.168.21.0/24.

Apres on va editer le fichier de configuration de Snort :

34) sudo gedit /etc/snort/snort.conf


35) Line #51 :
ipvar HOME_NET 192.168.21.0/24

Puis on remplace la ligne #536 par cette ligne :

36) output unified2: filename snort.log, limit 128, mpls_event_types, vlan_event_types

On sauvegarde le changement, puis on redémarre le service de Snort :

37) sudo service snort restart

et on supprime les entrées de journal précédentes de Log de Snort :

38) sudo rm /var/log/snort/snort.log

Snort utilise un langage de description de règles légère simple, souple et assez puissant, ces
règles sont appliquées sur les paquets sniffés par Snort, et sont définit dans le fichier de
configuration des rules de Snort :

39) sudo gedit /etc/snort/rules/local.rules

Dans ce fichier on met deux règles, une pour le protocole ICMP, qui sera déclenché si il y a
un Ping sue le réseau, et l’autre règle sur le protocole http de port 80 :

40) alert icmp any any -> $HOME_NET any (msg:"ICMP Test NOW!!!"; classtype:not-
suspicious; sid:1000001; rev:1;)
41) alert tcp any any -> $HOME_NET 80 (msg:"HTTP Test NOW!!!"; classtype:not-
suspicious; sid:1000002; rev:1;)

Installation et Configuration de Barnyard2


Barnyard est une couche applicative qui exploite les événements générés par Snort au format
« unifié », et permet de prendre en charge l’inscription des événements en base de données
(MySQL) et libère donc des ressources à Snort qui peut d’avantage se concentrer sur la
détection des intrusions.
On installe d’abord les dépendances de compilation de Baynard2 :
42) sudo apt-get install autoconf
43) sudo apt-get install libtool
44) sudo apt-get install libpcap-dev
45) sudo apt-get install libmysqlclient-dev
Puis passe à l’installation du package Baynard2 :
46) cd /usr/src
47) sudo wget https://github.com/firnsy/barnyard2/tarball/master
48) sudo tar -zxf master
49) cd firnsy-barnyard2*
50) sudo autoreconf -fvi -I ./m4
51) sudo ./configure --with-mysql --with-mysql-libraries=/usr/lib/i386-linux-gnu
52) sudo make
53) sudo make install
54) sudo cp /usr/local/etc/barnyard2.conf /etc/snort
55) sudo cp schemas/create_mysql /usr/src
56) sudo mkdir /var/log/barnyard2

Puis on modifie le fichier de configuration de Baynard2 :


57) sudo gedit /etc/snort/barnyard2.conf
Et on remplace la ligne #227 par :
58) output alert_fast (au lieu de output alert_fast: stdout )
et à la fin de ce fichier, on décommente la ligne #348, et remplace cette ligne par :
59) output database: log, mysql, user=snort password=rootroot dbname=snort host=localhost

( snort est le nom utilisateur de base de données, rootroot et son password, localhost est
l’adresse du base de données )
Installation et Configuration de MySQL :
On installe le serveur de base de données MySQL par la commande suivante :
60) sudo apt-get install mysql-server
(Entrer le mot de passe du l’utilisateur root du BD : rootroot)
Puis on créer un utilisateur snort, et ses droit d’accès, les bases de données Snort et Archive :
61) sudo mysql -u root –p (mot de passe rootroot)
62) create database snort;
63) create database archive;
64) grant usage on snort.* to snort@localhost;
65) grant usage on archive.* to snort@localhost;
66) set password for snort@localhost=PASSWORD('rootroot');
67) grant all privileges on snort.* to snort@localhost;
68) grant all privileges on archive.* to snort@localhost;
69) flush privileges;
70) exit
Ensuite on génère les tables de MySQL à partir de la structure interne de Snort :
71) sudo mysql -u root –p rootroot
72) use snort;
73) source /usr/src/create_mysql;
74) show tables; (Affichages des tables importés)
75) exit

Test de Snort et Barnyard2 :

On vérifie si le service de Snort est démarré :


76) sudo service snort restart
Et on lance manuellement Baynard2 avec la commande :
77) sudo /usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w
/var/log/barnyard2/bylog.waldo -C /etc/snort/classification.config
Barnyard2 va probablement déclencher une erreur en raison d'un fichier manquant sid-
msg.map. Ce fichier n’est plus inclus dans la source Snort, mais il ‘est tenu par Barnyard2.
Et pour remédier à ce problème, on va utiliser un script oinkmaster nommé create-sidmap.pl
qui va nous générer le sid-msg.map.
creation de sid-msg.map :
78) cd /usr/share/oinkmaster
79) sudo bash -c "sudo ./create-sidmap.pl /etc/snort/rules > /etc/snort/sid-msg.map"
On lance barnyard2, et cette fois on n’aura pas d’erreurs :
80) sudo /usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w
/var/log/barnyard2/bylog.waldo -C /etc/snort/classification.config (CRTL+C
pour sortir)

Démarrage autorun de Barnyard2 :


On a besoin que Barnyard2 se lance automatiquement au démarrage. Faisons un script rapide
et facile au démarrage.
81) sudo touch /etc/init.d/runbarnyard2
82) sudo gedit /etc/init.d/runbarnyard2
Et on met ce script à l’intérieur :

#!/bin/sh

case $1 in
start)
echo "Starting Barnyard2"
sudo bash -c "barnyard2 -D -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -n"
echo 'Barnyard2 started.'
;;
stop)
echo "Stopping Barnyard2"
sudo killall barnyard2
echo 'Barnyard2 stopped.'
;;
restart)
$0 stop

sleep 4
$0 start
;;
*)
echo "usage: $0 (start|stop|restart)"
;;
esac
exit 0
83) sudo chmod 700 /etc/init.d/runbarnyard2
84) sudo update-rc.d runbarnyard2 defaults 21 00
et pour lancer Baynard2 comme étant un Deamon, on modifie le fichier Baynard2.conf :
85) sudo gedit /etc/snort/barnyard2.conf
86) on décommente la ligne «config daemon »
Et pour lancer le Daemon de Baynard2, on peut utiliser la commande suivante :
87) sudo /etc/init.d/runbarnyard2 start/stop/restart

Installation et configuration de Apache2 / BASE

Installation de Apache2 :
88) sudo apt-get install apache2
89) sudo apt-get install libapache2-mod-php5
90) sudo apt-get install libphp-adodb
Puis on modifie le fichier, "/etc/php5/apache2/php.ini", la ligne de "error_reporting", et on la
change en :
91) error_reporting = E_ALL & ~E_NOTICE
Ensuite on ajoute l’autorisation pour « www/base » dans le fichier
« /etc/apache2/apache2.conf »:

-----------------------------------------------------------------------------------------------------

<Directory /var/www/html/base>
AllowOverride All
Require all granted
</Directory>
-----------------------------------------------------------------------------------------------------

Et on redémarre le serveur Apache avec la commande :


92) sudo service apache2 restart
Installation des dépendances de BASE :
93) sudo apt-get install php-pear
94) sudo apt-get install libwww-perl
95) sudo apt-get install php5-gd
96) sudo pear config-set preferred_state alpha
97) sudo pear channel-update pear.php.net
98) sudo pear install --alldeps Image_Color Image_Canvas Image_Graph

A ce stade, une erreur va être déclenché en affichant «ne pouvait pas extraire le fichier
package.xml ». Cela est dû à une évolution de PEAR. Et pour remédier à ce problème on doit
manuellement installer les six 6 PEAR Packages.
Installation de BASE :

99) cd /usr/src
100) sudo wget https://code-jinchengjiang.googlecode.com/files/base-1.4.5.tar.gz
101) sudo tar -zxf base-1.4.5.tar.gz
102) sudo cp -r base-1.4.5 /var/www/html/base
103) sudo chown -R www-data:www-data /var/www/html/base
104) sudo service apache2 restart

Configuration de BASE :
On lance la page web « http://localhost/base », puis on suit les 5 étapes de configuration en
saisissant les paramètres nécessaires.

Activation syslog logging


Pour configurer la journalisation syslog de Snort, on doit décommenter la ligne suivate dans le
fichier « sudo gedit /etc/snort/snort.conf » :
105) gedit sudo gedit /etc/snort/snort.conf
106) décommenter « output alert_syslog: LOG_AUTH LOG_ALERT »
107) sudo service snort restart
108) sudo gedit /etc/snort/barnyard2.conf
109) output alert_syslog: LOG_AUTH LOG_ALERT
110) sudo /etc/init.d/runbarnyard2 restart

Test de Configuration global :

Pour tester le système, on va faire un ping d’une autre machine, dans notre cas la machine
host @IP 192.168.21.50, puis on vérifie l’interface BASE.
Machine host :

Et voici le ping vers l’IDS Snort :

Et maintenant on va voir l’interface de BASE (http://localhost/base):

Apres Authentification, on peut voir toutes les informations sur le Dashboard de Snort :
Et vue qu’on a fait beaucoup de requete Ping, le taux d’erreur ICMP est grand :
On accède de l’extérieur, vers le serveur web à l’app de BASE :

On aura des alerte TCP :


Et plus précisément :

Pour verifier les logs en Base de données, voici une prise d’écran de la table event avec
phpMyAdmin :

Vous aimerez peut-être aussi