Installer et configurer Prélude

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.

Ce billet a été posté dans linux, sécurité et taggé , , , , . Bookmark ce permalink.

Comments are closed.