System-Linux

Aller au contenu | Aller au menu | Aller à la recherche

Compilation, Installation et Configuration de Snort et de l'interface web base avec MySQL.

snort.png

Tutoriel pour faire fonctionner Snort avec MySQL et l'interface web base pour les remontés d'alerte de Snort.

Prérequis :

Télécharger snort :

http://www.snort.org/

Télécharger barnyard :

http://www.snort.org/dl/barnyard/

Barnyard fait office de tampon entre Snort et MySQL afin de soulager votre serveur.

Téléchargement de l'interface web Base :

http://puzzle.dl.sourceforge.net/sourceforge/secureideas/base-1.4.3.1.tar.gz

Base est la meilleur interface web du moment pour Snort.

Téléchargement de Oinkmaster :

http://oinkmaster.sourceforge.net/download.shtml

Oinkmaster vous permet de maintenant vos rules à jour automatiquement.

_Autres programmes additionnels :__

Vous pourrez les trouver à cette adresse :

http://www.snort.org/downloads/additional-downloads/

Installation :

wget http://www.snort.org/dl/snort-2.8.3.2.tar.gz
wget http://www.snort.org/dl/barnyard/barnyard-0.2.0.tar.gz
tar xvzf snort-2.8.3.2.tar.gz
tar xvzf barnyard-0.2.0.tar.gz
mkdir /opt/barnyard020
mkdir /opt/snort2832
cd /opt
ln -s snort2832/ snort
ln -s barnyard020/ barnyard
cd /opt/SOURCES/barnyard-0.2.0

Compilation de barnyard :

./configure --prefix=/opt/barnyard --enable-mysql --with-mysql-includes=/opt/mysql/include --with-mysql-libraries=/opt/mysql
/lib
make
make install

Compilation de snort :

Normalement vous aurez quelques dépendances à satisfaire mais elle vous seront demandé explicitement. (ex: libpcap-devel)

./configure --prefix=/opt/snort --enable-mysql --with-mysql-includes=/opt/mysql/include --with-mysql-libraries=/opt/mysql
make
make install

Création de la base de donnée Mysql :

cd /opt/SOURCES/snort-2.8.3.2/schemas

La vous devriez trouver un fichier du nom de create_mysql.

Créér une base de donnée et un utilisateur dans mysql pour snort,

Vous trouvez un tutoriel sur les commandes mysql ICI, vous avez aussi la possibilité de le faire avec phpmyadmin.

mysql -u root -p
CREATE DATABASE snort DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
localhost' IDENTIFIED BY 'snort' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit

Injection du fichier fournit :

mysql -u root -p -D snort < create_mysql

Configuration de snort :

mkdir -p /var/log/snort
cp -a /opt/SOURCES/snort-2.8.3.2/etc /opt/snort/
touch /var/log/snort/snort.log
useradd snort
groupadd snort                  

Pour l'utilisateur snort :

Il est preferable de mettre un shell nul pour la sécurité

vi /etc/passwd
snort:x:5030:5030::/dev/null:/bin/false

Configuration de l'interface web base :

Il faut installer cette interface php dans le DocumentRoot de votre apache, pour l'utiliser il faut avoir aupravant installer adodb.

tar xvzf base-1.4.1.tar.gz
chown -R user-apache: base-php4

Après rendez vous ici avec votre navigateur : http://ip-de-votre-serveur/base-php4 ou alors ici : http://base.domain.fr si vous avez configurer un virtualhost

Installation de Adodb :

Télécharger le ici :

http://sourceforge.net/project/showfiles.php?group_id=42718

Désarchivez le dans /opt par exemple, à l'installation de l'interface base le chemin vous sera demandé.

Pour moi par exemple qui est fais un lien dans /opt/ :

cd /opt
ln -s adodb5 adodb

c'est /opt/adodb

Lancer snort :

Attention pour lancer snort il faut avoir les rules et pour avoir les rules il faut créer un compte ici :

https://www.snort.org/snort-rules/#rules

Après avoir créez votre compte, télécharger le rules de votre choix et désarchivez les dans le repertoire : /opt/snort/

cd /opt/snort/
tar xvzf snortrules-snapshot-CURRENT.tar.gz

Vous pouvez rajouter les rules Community fait par des gens comme vous et moi mais en plus compétant :p :

Elles sont téléchargeable sur le site de snort au même endroit que les Current.

cd /opt/snort
Community-Rules-CURRENT.tar.gz

Le fichier snort.conf :

Éditez le et modifier en fonction :

Par exemple pour surveiller qu'une interface décommentez :

var HOME_NET $eth0_ADDRESS

Pour la connexion à la base mysql :

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

Si vous rencontrez de probleme pour démarrer snort utilisez l'option pour débugage, lancer snort comme ceci :

cd /opt/snort/bin
./snort -c ../etc/snort.conf

Vous aurez surement comme moi un probleme de librairie :

cd /usr/local/lib
ln -s /opt/snort/lib/snort_dynamicrules snort_dynamicrules
ln -s /opt/snort/lib/snort_dynamicpreprocessor snort_dynamicpreprocessor
ln -s /opt/snort/lib/snort_dynamicengine snort_dynamicengine

Une fois OK :

Démarrer votre Snort comme ceci :

./snort -m 027 -D -d -l /var/log/snort/ -u snort -g snort -c /opt/snort/etc/snort.conf -S HOME_NET=[192.168.1.0/24] -i eth0

Vous pouvez remplacer l'adresse-ip/xx par une simple adresse ip si vous voulez surveiller un seul serveur.

Attention !

Avant d'avoir des remontées pertinentes il vous faudra effectuer quelques manipulations, dans le repertoire etc de snort vous trouverez un fichier nommé threshold.conf, ce fichier vous permettra de ne pas remonter des fausses alertes.

Exemple pour moi avec des remontés d'alertes lotus ( j'avoue ne pas avoir d'appli lotus sur mon nunux :p) :

cd /opt/snort/etc
vi threshold.conf

Pour que ce fichier soit prit en compte il faudra décommenter son include dans snort.conf

include threshold.conf

Dans le fichier threshold.conf rajouté ceci (à adapter bien sur):

# Attaques sur lotus domino
suppress gen_id 1, sig_id 13819 , track by_dst, ip 91.120.175.14

Comme vous pouvez le constater pour créer ce genre de règle il faut connaitre le gen_id et le sig_id de la rules en question, pour cela dans l'interface web base passe votre souris sur snort comme dans l'image si dessous :

snort rules jpeg

Vous devriez avoir l'information en bas a gauche de votre navigateur comme sur cette image :

snort threshold jpeg

Après cette modification il vous faudra redémarrer snort et ensuite vous n'aurez plus d'alertes d'attaques sur lotus.

Configurer oinkmaster pour avoir les dernières oinkmaster rules à jour automatiquement :

Rendez vous à l'article d'installation et de configuration de Oinkmaster.

Autre petite astuce :

Si vous faites confiance totalement à certaine adresse ip vous pouvez faire en sorte que snort n'analyse pas le trafique en provenance de celle ci (pour gagner en performance) pour cela il suffit à la fin de votre ligne de commande de lancement de snort de rajouter ceci :

"not host 92.121.200.xxx"

Affinage de votre snort.conf :

Si vous protégez un réseau essentiellement composé de linux une modification est à faire. Chercher frag3 dans votre fichier et modifier la ligne comme ci dessous :

preprocessor frag3_engine: policy linux timeout 180 detect_anomalies
Par GanGan | le lundi, février 23 2009 08:00

Commentaires

1. abdoulive

mercredi, novembre 11 2009 | 00:59

salut

si on veux que snort log ses alertes sur un autre répertoire "exemple: /var/log/asterisk"
( a la place de /var/log/snort )

quel sont les démarche a suivre ???

merci d'avance