Ceci est une ancienne révision du document !



Snort Inline : Système de prévention d'intrusion

L'IPS Snort Inline est une version modifiée du fameux IDS Snort (Système de détection d'intrusion) pour en faire un IPS (Système de prévention d'intrusion ), une solution capable de bloquer les intrusions/attaques réseau.

Il reçoit les paquets envoyés par le firewall Netfilter avec l'aide de la librairie libipq, les compare avec des règles de signature Snort et les marque en "drop" s'ils correspondent à une règle, puis finalement les renvoie vers Netfilter où les paquets Snort_Inline marqués sont rejetés.

Site officiel : http://snort-inline.sourceforge.net/

0) Paquets requis :

sudo apt-get install apache2 mysql-server php5 php5-mysql build-essential libpcre3-dev iptables-dev libnet0-dev libmysqlclient12-dev  libmysqlclient12-dev checkinstall libnet libnet-dev

Soyez attentif à ne pas installer libnet 1.1.x (package libnet1-dev). Sinon, comme indiqué sur le site web de Snort_Inline, la compilation de Snort_Inline contre cette version de libnet ne fonctionnera pas.

Installation alternative de libnet (voir si toujours d'actualité)
echo "Téléchargez et décompressez libdnet:"

wget http://prdownloads.sourceforge.net/libdnet/libdnet-1.11.tar.gz?download
tar -xvf libdnet-1.11.tar.gz
echo "Accédez au dossier libdnet et installez la librairie:"

cd libdnet-1.11
./configure
make
checkinstall

1) Téléchargement

echo "Téléchargez Snort_Inline et décompressez le. "
version=2.6.1.5

http://prdownloads.sourceforge.net/snort-inline/snort_inline-$version.tar.gz?download
tar -xvf snort_inline-$version.tar.gz

echo "stocker le fichier de configuration"
mkdir /etc/snort_inline

echo "stocker les règles Snort"
mkdir /etc/snort_inline/rule

echo "Copiez les fichiers de configurations"
cp snort_inline-$version/etc/* /etc/snort_inline/

Ouvrir fichier /etc/snort_inline/snort_inline.conf, recherchez la ligne "var RULE_PATH" et changez la comme ci-dessous :

var RULE_PATH /etc/snort_inline/rules
echo "classification.config: définit des URLs pour les références trouvées dans les règles"
cp snort_inline-$version/etc/classification.config /etc/snort_inline/rules/

echo "reference.config: inclus de l'information pour la priorité des règles."
cp snort_inline-$version/etc/reference.config /etc/snort_inline/rules/

echo "dossier de journalisation"
mkdir /var/log/snort_inline

2) Paramétrer Mysql

Ajoutez un mot de passe MySQL pour l'utilisateur root:

mysqladmin -u root password new_root_password

echo "Créez la base de données"
echo "create database snort;"
mysql -u root -p

echo "créer un utilisateur pour snort"
grant all on snort.* to snortuser@localhost identified by 'snortpassword'; 

echo "Rechargez les priviléges mysql"
flush privileges;
exit;

echo "créer les tables dans la base de données snort"
mysql -u root -p snort < snort_inline-$version/schemas/create_mysql

Ouvrez le fichier snort_inline.conf:

#vi /etc/snort_inline/snort_inline.conf

Après la ligne avec "output alert_fast: snort_inline-fast", ajoutez:

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

3) Compilation de snort

echo "Vérifier les dépendances et préparer l'outil à être compilé pour MySQL."
cd snort_inline-$version
./configure --with-mysql

echo "compilation"
make

checkinstall

4) Ajout de règles

Il est nécessaire d'installer les règles de signature Snort et de les maintenir à jour. Il existe plusieurs site maintenant des liste de signature.

echo "Installer oinkmaster"
apt-get install oinkmaster

Site officiel de snort

  • Site officiel de snort : Pour télécharger les règles Snort, nous avons besoin de créer un compte gratuit sur le site web de Snort. Une fois connecté avec votre compte Snort, vous pouvez obtenir un code en bas de page.

Ouvrir le fichier /etc/oinkmaster.conf :

sudo gedit /etc/oinkmaster.conf<code>

Modifiez le paramètre "url" : <code>url = http://www.snort.org/pub-bin/oinkmaster.cgi/code/snortrules-snapshot-2.4.tar.gz

Ajoutez la ligne suivante:

modifysid * "^alert" | "drop" 

Création du dossier de sauvegarde.

mkdir /etc/snort_inline/backup
echo "Ajouter un utilisateur appelé oinkmaster"
useradd oinkmaster

echo "Définir les permissions"
chown -R oinkmaster /etc/snort_inline/backup
chown -R oinkmaster /etc/snort_inline/rules
chown -R oinkmaster /var/run/oinkmaster
chmod 644 /etc/snort_inline/snort_inline.conf

Teste du script oinkmaster :

su oinkmaster
oinkmaster#oinkmaster -o /etc/snort_inline/rules -b /etc/snort_inline/backup 2>&1

Mise à jour automatique (chaque jour à 00:30) :

crontab -e -u oinkmaster
30 00 * * * oinkmaster -o /etc/snort_inline/rules -b /etc/snort_inline/backup 2>&1 >> /dev/null 2>&1

Bleeding snort

Ouvrir le fichier /etc/oinkmaster.conf et ajouter :

url = http://www.bleedingsnort.com/bleeding.rules.tar.gz

Editer le fichier /etc/snort_inline/snort_inline.conf et ajouter :

include $RULE_PATH/bleeding.rules
include $RULE_PATH/bleeding-attack_response.rules
include $RULE_PATH/bleeding-dos.rules
include $RULE_PATH/bleeding-drop.rules
include $RULE_PATH/bleeding-dshield.rules
include $RULE_PATH/bleeding-exploit.rules
include $RULE_PATH/bleeding-game.rules
include $RULE_PATH/bleeding-inappropriate.rules
include $RULE_PATH/bleeding-malware.rules
include $RULE_PATH/bleeding-p2p.rules
include $RULE_PATH/bleeding-scan.rules
include $RULE_PATH/bleeding-web.rules

Teste du script oinkmaster :

su oinkmaster
oinkmaster#oinkmaster -o /etc/snort_inline/rules -b /etc/snort_inline/backup 2>&1

Autres sites

Gazette Linux n°118 — Septembre 2005 (traduction en français) :


Contributeurs principaux : Psychederic

  • snort_inline.1260200479.txt.gz
  • Dernière modification: Le 07/12/2009, 16:41
  • (modification externe)