Prelude, ou Prelude-IDS, est un systĂšme de dĂ©tection d’intrusion (IDS) hybride composĂ© de types de dĂ©tecteurs hĂ©tĂ©rogĂšnes :
- un NIDS : NetWork Intrusion Detection System ;
- un HIDS : Host based Intrusion Detection System
- un LML : Log Monitoring Lackey.
Son installation n’Ă©tant pas totalement aisĂ©e et pour aider mon ami « Argos » qui peine dessus :-p , voici une petite check-list pour vous aider.
Principe de fonctionnement
Prelude est décliné en plusieurs modules:
* libprelude : le module général, obligatoire
* libpreludedb : pour l’interconnexion avec une base de donnĂ©es
* prelude-manager : le serveur qui centralise les informations
* prelude-lml : module d’analyse des logs
* prelude-pflogger: module d’analyse des logs pf (*BSD)
* prewikka : le front-end prelude
Depuis la version 0.9, Prelude n’inclue plus d’IDS.
Télécharger sur http://www.prelude-ids.org/ :
libprelude-0.9.14.tar.gz prelude-lml-0.9.10.tar.gz prelude-pflogger-0.9.0-rc2.tar.gz
libpreludedb-0.9.12.tar.gz prelude-manager-0.9.8.tar.gz prewikka-0.9.11.4.tar.gz
NB: Bien Ă©videmment, changer les numĂ©ros des version par les derniĂšres disponibles đ
Les IDS :
http://la-samhna.de/samhain/samhain-current.tar.gz
http://www.snort.org/dl/current/snort-2.7.0.tar.gz (non dĂ©taillĂ© aujourd’hui, j’expliquerais plus en dĂ©tails le fonctionnement de Snort dans un autre billet)
Packages pré-requis (exemple pour Debian, a adapter à votre distribution) :
apt-get install libpcap-dev flex byacc gtk-doc-tools libssl-dev mysql-server libmysqlclient10-dev
libxml2-dev libpcre3-dev libfam-dev gnutls-bin libgcrypt11-dev libgnutls11-dev libgpg-error-dev
libopencdk8-dev libtasn1-2-dev libxmlsec1 libxmlsec1-gnutls
Attention version de libgnutls-dev en 1.0.7 minimum
Egalement python et python-dev
Installation de libprelude
libprelude-0.9.14# ./configure –enable-gtk-doc
Dumping configuration
Generate documentation : yes
Libtool dynamic loader : Convenience
Perl binding : yes
Python binding : yes
make make install
Ou sur Debian (Testing)
apt-get install libprelude2 libprelude-dev
Installation de preludedb
libpreludedb-0.9.12# ./configure
make et make install
Editer /etc/ld.so/conf et ajouter /usr/local/lib
executer : ldconfig
Mysql
mysql> create database prelude ;
Query OK, 1 row affected (0.06 sec)
mysql> GRANT ALL PRIVILEGES ON prelude.* TO prelude@’localhost’ IDENTIFIED BY ‘prelude’;
Query OK, 0 rows affected (0.05 sec)
$ mysql -u prelude prelude -p < /usr/local/share/libpreludedb/classic/mysql.sql
Enter password:
Installation de Prelude Manager
prelude-manager-0.9.8# ./configure
make et make install
Editer /usr/local/etc/prelude-manager/prelude-manager.conf
prelude-adduser add prelude-manager –uid 0 –gid 0
Installation de Prelude-lml
Sous Debian (Testing)
apt-get install prelude-lml
Enregistrer l’IDS dans le Prelude-manager
prelude-adduser register prelude-lml « idmef:w admin:r » 127.0.0.1 –uid 1000 –gid 1000
Dans un autre terminal (aka nouvelle session ssh si Ă distance), lancer le service Prelude-manager :
prelude-adduser registration-server prelude-manager
RĂ©pondre aux questions (il s’agit d’un Ă©change de clĂ©s TLS pour que le plugin s’authentifie sur le Prelude-Manager)
Editer le fichier /etc/prelude-lml/prelude-lml.conf
file = /var/log/messages
file = /var/log/syslog
file = /var/log/auth.log
et
[Pcre]
ruleset=/etc/prelude-lml/ruleset/pcre.rules
Dans le répertoire ruleset, éditer le fichier pcre.rules et commenter les champs de détection inutiles.
Installation de Samhain
$ ./configure  »’–with-prelude »’
$ make
# make install
# make install-boot
Editer /etc/samhainrc :
[Log]
PreludeSeverity=crit
PreludeClass=EVENT
[Misc]
PreludeProfile=samhain
Enregistrer l’IDS dans prelude :
prelude-adduser register samhain « idmef:w » 127.0.0.1 –uid 1000 –gid 1000
Dans un autre terminal, lancer le service serveur
prelude-adduser registration-server prelude-manager
Noter le one-shot password et répondre aux questions
Enter the one-shot password provided by the « prelude-adduser » program:
enter registration one-shot password:
confirm registration one-shot password:
connecting to registration server (127.0.0.1:5553)…
Anonymous authentication to registration-server successful.
Sending certificate request.
Receiving signed certificate.
Receiving CA certificate.
samhain registration to 127.0.0.1 successful.
Initialiser la base
samhain -t init (ou samhain -t update pour la mise Ă jour)
Puis lancer le service
samhain -t check
Installation de Prewikka
Prérequis : Les templates Cheetah sur http://cheetahtemplate.org/
Cheetah-2.0rc8#python setup.py install
Installation de Prewikka
prewikka-0.9.11.4#python setup.py install
Création de la base Mysql
mysql> CREATE database prewikka;
Query OK, 1 row affected (0.05 sec)
mysql> GRANT ALL PRIVILEGES ON prewikka.* TO prewikka@’localhost’ IDENTIFIED BY ‘prewikka’;
Query OK, 0 rows affected (0.03 sec)
$ mysql -u prewikka prewikka -p < /usr/share/prewikka/database/mysql.sql
Enter password:
Editer le fichier /etc/prewikka/prewikka.conf
Renseigner les noms et password des bases mysql
Créér les Vhost Apache :
<VirtualHost *:80>
ServerName my.server.org
Setenv PREWIKKA_CONFIG « /etc/prewikka/prewikka.conf »
<Location « / »>
AllowOverride None
Options ExecCGI
<IfModule mod_mime.c>
AddHandler cgi-script .cgi
</IfModule>
Order allow,deny
Allow from all
</Location>
Alias /prewikka/ /usr/share/prewikka/htdocs/
ScriptAlias / /usr/share/prewikka/cgi-bin/prewikka.cgi
</VirtualHost>
En cas de problĂšmes python, recompiler depuis les sources :
sources/libprelude-0.9.14/bindings/python# python setup.py install
Fichier de conf des clients :
/etc/prelude/default
Dans global.conf
NodeName = toto.machine.et
Dans client.conf
server_address = ip du prelude manager
Voila un petit aide mĂ©moire qui ne se veut nullement un Tutoriel d’installation, je ne peux que vous inviter Ă lire le « Handbook » sur le site de PrĂ©lude qui contient toutes les informations nĂ©cessaires pour installer et configurer votre systĂšme.