OSSEC : installation
OSSEC : installation jppNote : cet article est ancien (historique presque) voir la dernière version ici.
L'installation pour tests a été faite sur une machine Centos 5.5 virtualisée avec XEN.
Après récupération des sources (pour moi version 2.4.1) et détarage dans un répertoire d'installation il suffit de lancer le script "install.sh"
Après le choix de la langue (fr pour moi) un récapitulatif de votre système s'affiche
=====================================================================
OSSEC HIDS v2.4.1 Script d'installation - http://www.ossec.net Vous êtes sur le point d'installer OSSEC HIDS. Vous devez avoir une compilateur C préinstallé sur votre système. Si vous avez des questions ou des commentaires, envoyez un email à dcid@ossec.net (ou daniel.cid@gmail.com). - Système: Linux machine.domaine 2.6.18-194.3.1.el5 - Utilisateur: root - Hôte: machine.domaine -- Appuyez sur Entrée pour continuer ou Ctrl-C pour annuler. -- |
======================================================================
On appuye bien sûr sur entrée ... et l'on doit alors choisir l'option d'installation entre :
serveur serveur d'analyse OSSEC
agent agent transmettant à un serveur
local machine indépendante
Pour cette première approche je choisis "local"
Pour le répertoire d'installation je garde "/var/ossec". Je configure les alertes par Email et saisis une adresse mail valide en précisant le serveur de mail à utiliser (localhost) puisque j'ai un serveur Postfix local.
Je précise ensuite que je veux démarrer le démon de controle d'intégrité et le moteur de détection de rootkit.
=======================================================================
1- Quel type d'installation voulez-vous (serveur, agent, local ou aide) ? local - Installation en local choisie. 2- Définition de l'environnement d'installation. - Choisissez votre répertoire d'installation de OSSEC HIDS [/var/ossec]: - L'installation sera faite sur /var/ossec . 3- Configuration de OSSEC HIDS. 3.1- Voulez-vous une alerte par email ? (o/n) [o]: o - Quel est votre adresse email ? xxxxxx@xxxxxx - Quel est l'adresse IP ou le nom d'hôte de votre serveur SMTP ? localhost 3.2- Voulez-vous démarrer le démon de vérification d'intégrité ? (o/n) [o]: o - Lancement de syscheck (démon de vérification d'intégrité). 3.3- Voulez-vous démarrer le moteur de détection de rootkit ? (o/n) [o]: o 3.4- La réponse active vous permet d'éxécuter des commandes spécifiques en fonction d'évènement. Par exemple, vous pouvez bloquer une adresse IP ou interdire l'accès à un utilisateur spécifique. Plus d'information sur : http://www.ossec.net/en/manual.html#active-response - voulez-vous démarrer la réponse active ? (o/n) [o]: o - Par défaut, nous pouvons activer le contrôle d'hôte et le pare-feu (firewall-drop). Le premier ajoute un hôte dans /etc/hosts.deny et le second bloquera l'hôte dans iptables (sous linux) ou dans ipfilter (sous Solaris, FreeBSD ou NetSBD). - Ils peuvent aussi être utilisés pour arrêter les scans en force brute de SSHD, les scans de ports ou d'autres formes d'attaques. Vous pouvez aussi les bloquer par rapport à des évènements snort, par exemple. - Voulez-vous activer la réponse pare-feu (firewall-drop) ? (o/n) [o]: o - pare-feu (firewall-drop) activé (local) pour les levels >= 6 - liste blanche (white list) par défaut pour la réponse active : - 192.168.1.x - 192.168.1.y - Voulez-vous d'autres adresses IP dans votre liste (white list) ? (o/n)? [n] o |
=============================================================================
J'ajoute ici les adresses IP que je ne veux pas voir bannir lors des tests ...
=============================================================================
3.6- Mise en place de la configuration pour analyser les logs suivants : -- /var/log/messages -- /var/log/secure -- /var/log/maillog - Si vous voulez surveiller d'autres fichiers, changez le fichier ossec.conf en ajoutant une nouvelle valeur de nom de fichier local. Pour toutes vos questions sur la configuration, consultez notre site web http://www.ossec.net . --- Appuyez sur Entrée pour continuer --- |
=============================================================================
Ensuite la compilation commence et est très courte .
=============================================================================
- Configuration correctement terminée. - Pour démarrer OSSEC HIDS: /var/ossec/bin/ossec-control start - Pour arrêter OSSEC HIDS: /var/ossec/bin/ossec-control stop - La configuration peut être visualisée ou modifiée dans /var/ossec/etc/ossec.conf Merci d'utiliser OSSEC HIDS. Si vous avez des questions, suggestions ou si vous trouvez un bug, contactez nous sur contact@ossec.net ou en utilisant la liste de diffusion publique sur ossec-list@ossec.net ( http://www.ossec.net/en/mailing_lists.html ). Plus d'information peut être trouver sur http://www.ossec.net --- Appuyez sur Entrée pour finir (peut-être plus d'info plus bas). --- |
=============================================================================
Un script de démarrage "/etc/init.d/ossec" a été ajouté et activé correctement dans la machine.
Un petit reboot pour valider le tout et ça repart, on peut au passage voir le démarrage de OSSEC. Un premier mail de lancement est aussitôt envoyé, c'est une alerte de niveau 3 (les niveaux vont de 1 à 15, 15 étant l'alerte maxi) me signalant le démarrage du démon :
OSSEC HIDS Notification.
2010 Jun 29 14:06:13
Received From:machine.domaine->ossec-monitord
Rule: 502 fired (level 3) -> "Ossec server started."
Portion of the log(s):
ossec: Ossec started.
--END OF NOTIFICATION
Je me connecte en "root" sur la machine, nouvelle alerte de niveau 4 cette fois.
Je me connecte avec un autre utilisateur cela déclenche un nouveau mail de "first time user logged in". Une autre connexion avec le même utilisateur ne déclenche aucun mail. Tout cela semble bel et bon.
OSSEC : Mysql
OSSEC : Mysql jppAprès l'installation qui se passe très simplement et la vérification de l'installation (cf article précédent) il va falloir tester ce logiciel, ce qui peut prendre un certain temps !
J'avais malheureusement oublié d'installer le support MYSQL, j'ai du réaliser une petite manipulation pour activer le support Mysql et relancer l'installation.
Activation du support Mysql :
- Charger la bibliothèque de développement ((mysql-devel.i386 sur Centos)
- aller dans le répertoire "src" de l'installateur et lancer la commande
make setdb
Qui réponds gentiment :
============================================================
Error: PostgreSQL client libraries not installed.
Info: Compiled with MySQL support.
============================================================
Il faut ensuite relancer le script "install.sh",
Après avoir choisi le français, je choisis de mettre à jour mon installation ainsi que les règles. La compilation démarre ... et se termine par l'installation.
........ OSSEC HIDS v2.4.1 Stopped Starting OSSEC HIDS v2.4.1 (by Trend Micro Inc.)... Started ossec-maild... Started ossec-execd... Started ossec-analysisd... Started ossec-logcollector... Started ossec-syscheckd... Started ossec-monitord... Completed. - Configuration correctement terminée. - Pour démarrer OSSEC HIDS: /var/ossec/bin/ossec-control start - Pour arrêter OSSEC HIDS: /var/ossec/bin/ossec-control stop - La configuration peut être visualisée ou modifiée dans /var/ossec/etc/ossec.conf Merci d'utiliser OSSEC HIDS. Si vous avez des questions, suggestions ou si vous trouvez un bug, contactez nous sur contact@ossec.net ou en utilisant la liste de diffusion publique sur ossec-list@ossec.net ( http://www.ossec.net/en/mailing_lists.html ). Plus d'information peut être trouver sur http://www.ossec.net --- Appuyez sur Entrée pour finir (peut-être plus d'info plus bas). --- - Mise à jour complète. |
Il faut ensuite s'occuper de la base de données :
- Créer la base
- Créer l'utilisateur
- Donner les droits adéquats à l'utilisateur sur la base
- Créer le schéma en allant dans le répertoire d'installation puis dans "src/os_dbd" où un fichier "mysql.schema" n'attends que votre bon vouloir et la commande :
mysql --user=le_user --password=le_password -D la_base <mysql.schema
Après contrôle 8 tables sont créées dans le schéma.
Il est temps d'aller ajouter le paramétrage qui va bien dans le fichier (xml) de configuration de OSSEC. Il suffit d'ajouter en tête du fichier /var/ossec/etc/ossec.conf le petit bout de XML suivant :
<ossec_config> <database_output> <hostname>le_host</hostname> <port>3306</port> <username>ossec_user</username> <password>ossec_password</password> <database>ossec_database</database> <type>mysql</type> </database_output> </ossec_config> |
Exécuter avec ferveur l'incantation suivante :
- /var/ossec/bin/ossec-control enable database
- Stopper et relancer le service.
L'enregistrement est alors effectué dans la base Mysql (Postgresql est aussi admis).
Petite remarque : l'installation crée de nouveaux utilisateurs et un groupe "ossec" et la plupart des process ne tournent pas avec les privilèges de "root" ce qui est un gage de stabilité/sécurité.
Tests en cours .... la suite au prochain article.
OSSEC : Interface WEB
OSSEC : Interface WEB jppNote 2019, il est possible d'utiliser la version décrite ici comme interface avec OSSEC.
Récupérer l'archive "ossec-wui....", pour moi la version 0.3, la détarer dans un répertoire tranquille. Il suffit ensuite de recopier le nouveau répertoire ossew-wui-0.3 dans l'arborescence WEB, pour moi /var/www/ossec-wui-0.3.
Il faut ensuite ajouter le groupe "ossec" à l'utilisateur sous lequel Apache est lancé (apache pour Centos, www-data pour Debian).
Il faut ensuite se rendre dans le répertoire /var/www/ossec... et y lancer le script de configuration "setup.sh" :
[root@xxxxxxx ossec-wui-0.3]# ./setup.sh Setting up ossec ui... Username: xxxxxx New password: Re-type new password: Adding password for user xxxxxx Setup completed successfuly. |
Dans /var/www j'ai ensuite fait un lien ossec-wui-0.3 --> ossec puis dans le répertoire /etc/httpd/conf.d j'ai ajouté le fichier suivant :
<Directory "/var/www/ossec"> Options Indexes AllowOverride None Order allow,deny Allow from all </Directory> |
On relance Apache et l'accès est ensuite direct par http://localhost/ossec.
Quelques images de l'interface Web (un peu "rude") mais qui semble assez commode pour les recherches.
Image 1 : vue lors de l'accès
Image 2 : critères de recherche :
Cette interface se révèle assez commode pour les recherches.
OSSEC : Installation serveur
OSSEC : Installation serveur jppSi comme moi vous trouvez OSSEC "pas mal" vous pouvez installer des agents sur d'autres machines, pour cela il vous suffira de modifier votre machine originale en mode "serveur".
Note juillet 2018 : cette version est aujourd'hui obsolete, voir l'article sur la version 3.0.0 stable.
Il faut malheureusement détruire son installation existante et refaire une installation.
Détruire les éléments suivants :
/var/ossec
/etc/ossec-init.conf
/etc/init.d/ossec
et
./rc.d/rc2.d/S99ossec
./rc.d/rc0.d/K15ossec
./rc.d/rc4.d/S99ossec
./rc.d/rc1.d/K15ossec
./rc.d/rc5.d/S99ossec
./rc.d/rc6.d/K15ossec
./rc.d/rc3.d/S99ossec
Il suffit alors comme d'habitude de se rendre dans le répertoire d'installation et de lancer l'inévitable "install.sh".
Si vous désirez utiliser le stockage dans une base Mysql, n'oubliez pas d'activer la fonctionnaité "Mysql" (voir article).
On choisit la langue, et on frappe "Entrée" sur l'invite ...
======================================================================
... /... -- Appuyez sur Entrée pour continuer ou Ctrl-C pour annuler. -- 1- Quel type d'installation voulez-vous (serveur, agent, local ou aide) ? serveur - Installation du serveur choisie. 2- Définition de l'environnement d'installation. - Choisissez votre répertoire d'installation de OSSEC HIDS [/var/ossec]: - L'installation sera faite sur /var/ossec . 3- Configuration de OSSEC HIDS. 3.1- Voulez-vous une alerte par email ? (o/n) [o]: o - Quel est votre adresse email ? toto@monserveur - Quel est l'adresse IP ou le nom d'hôte de votre serveur SMTP ? 192.168.1.xxx 3.2- Voulez-vous démarrer le démon de vérification d'intégrité ? (o/n) [o]: O - Lancement de syscheck (démon de vérification d'int&grité). 3.3- Voulez-vous démarrer le moteur de détection de rootkit ? (o/n) [o]: O - Lancement de rootcheck (détection de rootkit). 3.4- La réponse active vous permet d'éxécuter des commandes spécifiques en fonction d'événement. Par exemple, vous pouvez bloquer une adresse IP ou interdire l'accès à un utilisateur spécifique. Plus d'information sur : http://www.ossec.net/en/manual.html#active-response - voulez-vous démarrer la réponse active ? (o/n) [o]: O - Réponse active activée. - Par défaut, nous pouvons activer le contrôle d'hôte et le pare-feu (firewall-drop). Le premier ajoute un hôte dans /etc/hosts.deny et le second bloquera l'hôte dans iptables (sous linux) ou dans ipfilter (sous Solaris, FreeBSD ou NetSBD). - Ils peuvent aussi être utilisés pour arrêter les scans en force brute de SSHD, les scans de ports ou d'autres formes d'attaques. Vous pouvez aussi les bloquer par rapport à des événements snort, par exemple. - Voulez-vous activer la réponse pare-feu (firewall-drop) ? (o/n) [o]: o - liste blanche (white list) par défaut pour la réponse active : - 192.168.2.xxx - 192.168.2.xxx - Voulez-vous d'autres adresses IP dans votre liste (white list) ? (o/n)? [n]: o - IPs (séparées par des espaces) : 192.168.1.xxx 3.5- Voulez-vous activer fonctionnalités syslog (port udp 514) ? (o/n) [o]: n --- Fonctionnalité syslog désactivée. 3.6- Mise en place de la configuration pour analyser les logs suivants : -- /var/log/messages -- /var/log/secure -- /var/log/maillog -- /var/log/httpd/error_log (apache log) -- /var/log/httpd/access_log (apache log) - Si vous voulez surveiller d'autres fichiers, changez le fichier ossec.conf en ajoutant une nouvelle valeur de nom de fichier local. Pour toutes vos questions sur la configuration, consultez notre site web http://www.ossec.net . ... ... ... la compil se passe ... ... ... - Le Système est Redhat Linux. - Script d'initialisation modifié pour démarrer OSSEC HIDS pendant le boot. - Configuration correctement terminée. - Pour démarrer OSSEC HIDS: /var/ossec/bin/ossec-control start - Pour arrêter OSSEC HIDS: /var/ossec/bin/ossec-control stop - La configuration peut être visualisée ou modifiée dans /var/ossec/etc/ossec.conf Merci d'utiliser OSSEC HIDS. Si vous avez des questions, suggestions ou si vous trouvez un bug, contactez nous sur contact@ossec.net ou en utilisant la liste de diffusion publique sur ossec-list@ossec.net ( http://www.ossec.net/en/mailing_lists.html ). Plus d'information peut être trouver sur http://www.ossec.net --- Appuyez sur Entrée pour finir (peut-être plus d'info plus bas). --- - Vous devez ajouter le(s) agent(s) avant qu'ils aient un accès autorisé. Lancez 'manage_agent' pour les ajouter ou les supprimer: /var/ossec/bin/manage_agents Plus d'information sur: http://www.ossec.net/en/manual.html#ma |
====================================================================
Dès le service lancé on constate l'ouverture d'un port en écoute :
lsof -Pn | grep UDP | grep oss
ossec-rem 5859 ossecr 4u IPv4 152930 UDP *:1514
après avoir démarré un poste muni d'un agent on peut voir dans le log de celui-ci la trace de la connection au serveur OSSEC (/var/ossec/logs/ossec.log) :
2010/06/30 14:24:03 ossec-agentd(4102): INFO: Connected to the server (192.168.1.124:1514).
2010/06/30 14:29:37 ossec-syscheckd: INFO: Finished creating syscheck database (pre-scan completed).
Pour le reste du fonctionnement il est identique à celui de la version locale.