Sécurité : Installation de l’IDS Prelude sur debian

Plop à tous …
Aujourd’hui je suis en forme alors … je fait un « gros tuto » ^^ from scratch, comme très peu de tuto sont à jour de ce côté là autant tout faire de zéro ;).

[La super intro trop naze]
Je dois tout d’abord avouer que je savais pas trop ce que c’était un IDS avant que je l’installe ^^ (enfin j’avais une petite idée, mais je ne m’attendais pas à un truc aussi complet avec prelude). Donc voilà ça sert à quoi ?? ça permet d’avoir une idée des menaces/évènement en « temps réel » sur votre réseau/machine, et avec prelude on peut faire pas mal de chose, que ce soit suivre l’authentification des utilisateurs sur le réseau jusqu’à la détection d’attaque sur un service en particulier (http, avec la possibilité de coupler la chose avec le mod_security), ou bien la « préparation » d’une attaque avec la détection des « Services Recognition » et encore plein d’autre réjouissance.

Pourquoi j’installe ça ?? C’est toujours et encore pour le super projet de licence en Dev ^^ (et ouai on fait du réseau en Dev :D). Et comme je savais que j’allais faire un tuto dessus, je me suis mis de côté la manipulation (ça peut toujours me servir).

Donc voilà, pour ce tuto il nous faut au moins un serveur (avec plusieurs se serait le pied, car on peut faire un truc tentaculaire en connectant plusieurs sondes/logger sur le prelude-manager, ce qui peut être très intéressant sur un grand réseau).
[/La super intro trop naze]

Pour commencer l’installation … tout débute par un gentil apt-get install comme toutes les histoires d’amour à la debian … par contre je vous conseil pas d’éxecuter la commande direct … autant y aller paquet par paquet (en suivant le tuto quoi …), parce que certain mettent pas mal de temps à s’installer.

Sinon, pour les barbares …
[sourcecode language=bash]apt-get install mysql-server prelude-manager prelude-lml prelude-correlator prewikka libapache2-mod-python librelude-dev snort-rules-default arpwatch screen[/sourcecode]

Donc vous remarquerez qu’il faut :

  • Un serveur apache (pas vraiment obligatoire, mais c’est super sympa avec prewikka) avec le mod python (et le mod_security si votre serveur est destiné à héberger des applications web)
  • Un serveur mysql (ça c’est malheureusement obligatoire, j’aurais bien voulu m’en passer mais bon …).
  • Prelude-lml est un logiciel qui va parser tous les logs (ou presque … faut configurer la chose quoi) de votre machine (on peut l’installer sur tous les serveurs d’un réseau, histoire d’avoir un bon suivi)
  • Prelude-manager est un logiciel qui s’occupe de tous centraliser (la logique voudrait qu’on en install qu’un seul ^^).
  • ArpWatch permet de détecter certaine attaque de type arp poisonning (assez sympa …)
  • Snort-rules-default qui contient pas mal de règle de détection …
  • Screen qui sera juste utilisé pour l’installation qui peut être longue … très longue 😉

Vous aurez remarqué que l’on installe pas snort … on compilera la version dont on a besoin dans un autre tuto plus tard.
Donc première chose que l’on fait :

[sourcecode language=bash]apt-get install mysql-server prewikka libapache2-mod-python librelude-dev snort-rules-default arpwatch screen[/sourcecode]

Répondez bien à toutes les questions (genre mots de passe de base de données, gardez-les dans un coin)

Installation de prelude-manager
[sourcecode language=bash]
apt-get install prelude-manager
[/sourcecode]
Lorsqu’il en est à :
prelude-manager
ça peut durer plusieurs minutes (pour ma part 20 minutes) … donc vous pouvez aller jouer à WoW … (on peut pas avancer sans lui …).

Installation de prelude-lml
Une fois le truc d’au-dessus terminé :
[sourcecode language=bash]
screen -S registration-lml
prelude-admin registration-server prelude-manager
[/sourcecode]
Cette commande vous donne un mot de passe qu’il faudra noter (c’est un One Time Password, c’est un mdp unique … c’est pour ça qu’il est resté dans le screenshot, il n’est plus valable ;)) … ce qui doit vous donner :
prelude-registration-server
On fait un Ctrl+a et ensuite d pour détacher la console et lancez

screen -S register-lml
apt-get install prelude-lml
prelude-admin register prelude-lml "idmef:w admin:r" 127.0.0.1 --uid 0 --gid 0

et voilà … vous pouvez jouer à WoW pendant une heure ou deux, puis lorsque la dernière commande vous demande un mot de passe :
prelude-otp-lml
Rentrez le mot de passe que vous avez noté, puis faites faite de nouveau Ctrl+a puis d et faite un screen -r registration-lml.
Il vous demandera si vous voulez autoriser la connexion, répondez y :
prelude-manager-otp-registration
Qui vous donnera normalement ceci :
registration-prelude-manager-ok

Tapez exit puis screen -r register-lml et si vous avez un beau Successful qui s’affiche c’est bon …
successful-prelude-lml
Tapez exit et passez à la suite …
C’est bon z’avez suivi ??? On continu ^^.

Installation de prelude-correlator

C’est pareil qu’au-dessus (et il ne me semble pas très utile donc vous pouvez zapper ^^), sinon :
[sourcecode language=bash]
screen -S registration-correlator
prelude-admin registration-server prelude-manager
[/sourcecode]
Notez le mot de passe et faites Ctrl + a puis d pour détacher le terminal et faites :

screen -S register-correlator
apt-get install prelude-correlator
prelude-admin register prelude-correlator "idmef:w admin:r" 127.0.0.1 --uid 0 --gid 0

et voilà … vous pouvez ENCORE jouer à WoW pendant une heure ou deux, puis lorsque la dernière commande vous demande un mot de passe rentrez celui que vous venez de noter.
Puis faites Ctrl + a et d puis screen -r registration-correlator et répondez y … si vous avez un beau Successfull qui s’affiche c’est bon … Je vous avez prévenu c’est du déjà vu ^^.

Donc maintenant on peut faire :
[sourcecode language=bash]
/etc/init.d/prelude-manager start
/etc/init.d/prelude-lml start
/etc/init.d/prelude-correlator start #si vous l’avez installé
[/sourcecode]
Et maintenant on passe à un truc cool histoire de se détendre les yeux avant de passer à la compilation de snort …

Installation de prewikka :

C’est un superbe frontend écrit en perl qui permet d’avoir l’ensemble des informations récupéré d’un coup d’oeil. Normalement, vous l’avez installé avec l’apt-get d’avant donc y’a juste à rajouter le module python dans apache (a2enmod python) et rajouter ce superbe VirtualHost à faire pâlir grand-mère :

Changez bien sûr le servername …


ServerName prewikka.mondomaine.org
ServerAdmin admin@domain.com

SetHandler mod_python
PythonHandler prewikka.ModPythonHandler
PythonOption PrewikkaConfig /etc/prewikka/prewikka.conf


SetHandler none

Alias /prewikka /usr/share/prewikka/htdocs
Alias /htdocs /usr/share/prewikka/htdocs

C’est violent hein ?? AVANT de redémarrer apache (sinon vous tomberez sur une page blanche qui boucle) ouvrez le fichier /etc/prewikka/prewikka.conf donnez les info de votre base de données renseignez normalement lors de l’installation de prelude-manager (si vous ne vous souvenez plus du mot de passe, regardez du côté de /etc/prelude-manager/prelude-manager.conf).

puis un gentil /etc/init.d/apache2 restart et logguez vous sur la page via le compte admin avec le mdp admin. Vous ne devriez pas avoir grand chose pour le moment … si ce n’est les deux logiciels « prelude-manager » et « prelude-lml ».

Voilà … la suite sera pour plus tard … sinon c’est l’indigestion …

20 réflexions sur « Sécurité : Installation de l’IDS Prelude sur debian »

  1. Beau boulot! Apres des heures de recherche je tombe enfin sur un tuto pour ma debian qui ne date pas de mathusalem!

    Sinon une petite faute sur le paquet librelude-dev ou il faut lire libprelude-dev

    Mais surtout l’emploi de screen ne facilite pas l’acces au debutant et embrouille un peu.

  2. Merci pour la faute, pour l’emploi de screen, j’ai trouvé plus simple de l’expliquer ainsi plutôt que de devoir nommer des terminaux (avec le risque que la personne se plante de terminal)

  3. Beau travail en effet. J’essaye en vain de faire marcher prewikka mais j’y arrive pas, tu aurais plus de détails sur la chose? J’ai des pb avec le virtual host :/

  4. Pour le virtualhost, qu’elles problèmes as-tu ?
    Faut pas oublier d’autoriser l’user www-data (ou l’user web sur ta machine) à lire le fichier de conf de prewikka, sinon tu tombe sur une erreur 500.

    Sinon normalement, il faut juste changer le ServerName avec celui de ta machine, et tu peux y accéder par : http://prewikka.tamachine.fr

    Faut aussi que prewikka.tamachine.fr renvoi sur une ip (cf. dns ou hosts).

    Je viens de remarquer que j’ai écris : « frontend écrit en perl » alors que l’on charge un module python pour pouvoir le lancer …

  5. J’arrivais pas à faire un virtual host sur ma machine, mais ça c’est bon. Il faut que je comprenne bien comment ça a marché et ça ira normalement ^^ Pour le moment j’ai accès via l’adresse IP uniquement, je sais pas vraiment pourquoi (c’est un peu le bordel sur ma machine, j’essaye pas mal de trucs en ce moment)

    Merci

  6. slt gaetan
    merci pour ce tuto.
    j’ai suivi le tuto tout se passe bien jusqu’a l’intallation de prelude lml

    j’ai une erreur :

    Starting Prelude LML: prelude-lmlinvoke-rc.d: initscript prelude-lml, action « start » failed.
    dpkg: error processing prelude-lml (–configure):
    subprocess installed post-installation script returned error exit status 1
    No apport report written because MaxReports is reached already
    Errors were encountered while processing:
    prelude-lml
    E: Sub-process /usr/bin/dpkg returned an error code (1)
    j’essaie depuis une semaine et j’y arrive pas.si tu peux m’aider stp
    merci d’avance

  7. salut, il faudrait tenter un dpkg-reconfigure prelude-lml, il semblerait soit que l’installation ait plantée, ou que le script de lancement de prelude-lml soit hs (tenter de réinstaller le paquet pourrait corriger le problème).

    Sinon, je conseil l’installation d’ossec qui est un équivalent de prelude-lml, avec la prévention (ban d’ip) en plus et des checks de rootkit hebdomadaire

  8. merci pour ta reponse gaetan quand j’essais dpkg-reconfigure prelude-lml voila ce qu’il me donne :
    /usr/sbin/dpkg-reconfigure: prelude-lml is broken or not fully installed
    voila effectivement j’ai telechargé le paquet prelude lml et je voudrais savoir si je l’installe n’importe ou dans repertoire precis.?
    pour ossec aurais tu un tuto comme celui la merci d’avance

  9. Plop,

    Suis je le seul a en avoir chiez pour installé prelude-manager ?

    – 1er truc bizarre il se connecte a mysql avec un user postgre
    – 2eme il lui manque ses propres fichiers de confs comme tls.conf …

    Si on veut le lier a postgresql et non mysql (ce qu il gere) il essaye de créer plusieurs fois la relation _format ce qui empeche toute avancée …

  10. est-tu sûr de ta configuration ? Pour ma part, je n’ai rien eu à faire de plus que ce qu’il y a dans ce tuto (avec les paquets de base d’une debian Squeeze).

    Sinon, j’ai préféré ne plus utiliser mysql comme support pour les logs, car en cas d’attaques/prises d’info, le serveur mysql risque de prendre une grosse partie de la charge (crawling/scan, …)

  11. Je suis aussi en Squeeze …

    J’essaye de lier prelude a postgres pour l’instant mais j’ai l »erreur de la relation _format dont j’ai déja parlé (avec le dbconfig-common qui est inclut dans le paquet)

  12. Bon il semble que le problème de relation vienne du fait qu’il ai besoin d’avoir un rôle de superuser (sur postgres)

    Me reste plus que l’erreur avec le tls.conf qu’il n’a pas

  13. Apres etre reparti de zero j ai passé toutes les erreurs, les install successives semblent avoir pourri les conf malgré les purges entre les install.

  14. Bonjour,

    J’obient egalement l’erreur :

    dpkg : erreur de traitement de prelude-lml (–configure) :
    le sous-processus script post-installation installé a retourné une erreur de sortie d’état 1
    configured to not write apport reports
    Des erreurs ont été rencontrées pendant l’exécution :
    prelude-lml
    E: Sub-process /usr/bin/dpkg returned an error code (1)
    Échec de l’installation d’un paquet. Tentative de réparation :
    Paramétrage de prelude-lml (1.0.0-1+b1) …
    Starting Prelude LML: prelude-lmlinvoke-rc.d: initscript prelude-lml, action « start » failed.
    dpkg : erreur de traitement de prelude-lml (–configure) :
    le sous-processus script post-installation installé a retourné une erreur de sortie d’état 1
    Des erreurs ont été rencontrées pendant l’exécution :
    prelude-lml

    Une idée ?

    Merci

  15. Salut,

    Pour contourner le souci du (Cédric, entre autre) script d’installation de la version 1.0.0-1+b1 de prelude-lml, il suffit d’installer la version Wheezy.

    :~$ acp prelude-lml
    prelude-lml:
    Installé : 1.0.0-2+b1
    Candidat : 1.0.0-2+b1
    Table de version :
    *** 1.0.0-2+b1 0
    90 http://ftp.fr.debian.org/debian/ wheezy/main amd64 Packages
    50 http://ftp.fr.debian.org/debian/ sid/main amd64 Packages
    100 /var/lib/dpkg/status
    1.0.0-1+b1 0
    990 http://ftp.fr.debian.org/debian/ squeeze/main amd64 Packages
    :~$

    A +

  16. salut tout le monde
    tout d’abord merci pour le tuto il est vraiment utile.
    pour ma part j’ai utilisé 2 terminal en mode root car j’ai eu un problème avec le mot de passe lors de l’installation de prelude-lml.
    Et pour avoir l’interface prewikka fonctionnelle j’ai changé les droits du fichier prewikka.conf

  17. bonjour tt le monde
    un grand merci à Gaëtan pour le tuto
    juste j’ai un problème j’arrive pas à lancer prewikka erreur 500 sachant que j’ai attribuer les bon droit « 755 »
    quand je tape 127.0.0.1/prewikka il s’affiche une page ou se trouve les dossier des images et css..
    pour la configuration tt s’est passé normal
    Mercii pour vos futur réponses 🙂
    merci pour vos reponse

  18. Salut, Hamza, il se pourrait que ton serveur Apache n’est pas supporté le python handler, vérifie qu’il est installé et fonctionnelle

Les commentaires sont fermés.