Wazuh
Installation et utilisation de wazuh
Last updated
Installation et utilisation de wazuh
Last updated
Wazuh est une plateforme de sécurité open-source qui offre des fonctionnalités de surveillance des menaces, de détection des intrusions, de gestion de la conformité et de réponse aux incidents. Elle combine des capacités d'analyse de sécurité, comme la détection des malwares, le monitoring de l'intégrité des fichiers, l'analyse des logs, et la gestion des vulnérabilités, pour fournir une visibilité complète sur l'infrastructure informatique. Wazuh est conçu pour être extensible et scalable, ce qui le rend adapté à une variété d'environnements, des petites entreprises aux grandes organisations.
On installera wazuh en single node.
Deux types d'installations seront faites, via le package manager APT puis via Docker
L'installation via package manager est disponible sur le blog de FIKARA Bilal sur une verison 4.8 de wazuh
Install wazuh on debian using apt
Nous installerons wazuh, configurerons un nginx en reverse proxy avec du SSL puis une authentification via LDAP
Exécuter le script d'installation de Docker
Démarrez le service Docker
Télécharger le binaire Docker Compose
Accorder des autorisations d'exécution
Tester l'installation pour vous assurer que tout va bien
Cloner le référentiel Wazuh
Entrez ensuite dans le single-node
répertoire pour exécuter toutes les commandes décrites ci-dessous dans ce répertoire.
Fournir un groupe de certificats pour chaque nœud de la pile afin de sécuriser la communication entre les nœuds
Les noeuds Wazuh sont Wazuh_Indexer, Wazuh_Manager et Wazuh_Dashboard . Notre install Wazuh est en single node ( tout en un )
Editer le generate-indexer-certs.yml
avec un éditeur de votre choix.
Le fichier devrait ressembler à ça
Si votre système utilise un proxy, ajoutez ce qui suit au generate-indexer-certs.yml
fichier. Sinon, ignorez cette étape particulière
Sinon, ignorez cette étape particulière
Exécuter la commande suivante pour obtenir les certificats souhaités
Cela enregistre les certificats dans le config/wazuh_indexer_ssl_certs
répertoire.
Démarrer le single node à l'aide de docker compose en arrière plan
Pour savoir quand l'indexeur Wazuh est opérationnel, le conteneur du tableau de bord Wazuh utilise curl
pour exécuter plusieurs requêtes vers l'API de l'indexeur Wazuh. Vous pouvez vous attendre à voir plusieurs messages de journal ou «Wazuh dashboard server is not ready yet » jusqu'au démarrage de l'indexeur Wazuh. Ensuite, le processus de configuration se poursuit normalement. Le démarrage de l'indexeur Wazuh prend environ 1 minute. Vous pouvez trouver les informations d'identification par défaut de l'indexeur Wazuh dans le fichier docker-compose.yml
du conteneur
Wazuh est maintenant accessible sur https://<ip_de_votre_serveur>
Utilise les identifiants admin
Le nom d'utilisateur et le mot de passe par défaut du tableau de bord Wazuh sont admin
et SecretPassword
. Chose qui sera modifiée
Il existe deux types d'utilisateurs Wazuh : Utilisateurs de l'indexeur Wazuh et Utilisateurs de l'API Wazuh : Wazuh off
Pour changer le mot de passe de ces utilisateurs Wazuh, les étapes suivantes doivent être exécutées depuis le répertoire single-node/
Les users qu'on modifiera seront admin et kibanaserver ( les users par défaut )
admin : nom d'utilisateur pour l'indexer ( pourra se connecter à l'interface web avec tous les droits )
kibanaserver : nom d'utilisateur pour le dashboard ( se connecte également à l'interface web en droit limité si restreint )
wazuh-wui : username pour l'api ( ne pourra pas se connecter en web )
S'il y a des users personnalisés il faut les ajouter internal_users.yml
fichier. Dans le cas contraire, l'exécution de cette procédure les supprime
Arrêter la pile de déploiement si elle est en cours d'exécution
Exécuter cette commande pour générer le hachage de votre nouveau mot de passe. Une fois le conteneur lancé, saisissez le nouveau mot de passe et appuyez sur Entrée
Si vous comptez modifier deux users, vous devez donc générer deux hash avec la commande précédente
Copier le hachage généré
Ouvrir le config/wazuh_indexer/internal_users.yml
fichier. Localisez le bloc correspondant à l'utilisateur pour lequel vous modifiez le mot de passe
Remplacez le hachage
admin
utilisateur :
Remplacez la ligne hash surlignée par le hash généré précédemment à l'intérieur des ""
kibanaserver
utilisateur
Ouvrez le docker-compose.yml
fichier. Remplacez toutes les occurrences de l'ancien mot de passe par le nouveau
Avertissement
N'utilisez pas les caractères $ ou & dans votre nouveau mot de passe. Ces caractères peuvent provoquer des erreurs lors du déploiement.
admin
utilisateur :
Modifier SecretPassword par le mot de passe défini lors de la génération du hash
kibanaserver
utilisateur
Modifier kibanaserver par le mot de passe défini lors de la génération du hash
Démarrer la pile de déploiement
Exécuter et noter le nom du premier conteneur de l'indexeur Wazuh : single-node-wazuh.indexer-1
Entrer dans le conteneur
Définir les variables suivantes
Attendre que l'indexeur Wazuh s'initialise correctement.
Le temps d'attente peut varier de deux à cinq minutes. Cela dépend de la taille du cluster, des ressources attribuées et de la vitesse du réseau.
Ensuite, exécutez le securityadmin.sh
script pour appliquer toutes les modifications.
Quitter le conteneur de l'indexeur Wazuh
Se connecter avec les nouvelles informations d'identification sur le tableau de bord Wazuh
La connexion se fera sans certificat ssl. Pour configurer le https il faut configurer Nginx
wazuh-wui
est l'utilisateur qui se connecte à l'API Wazuh par défaut. Suivez ces étapes pour modifier le mot de passe.
Le mot de passe des utilisateurs de l'API Wazuh doit comporter entre 8 et 64 caractères. Il doit contenir au moins une lettre majuscule et une lettre minuscule, un chiffre et un symbole.
Ouvrir le fichier config/wazuh_dashboard/wazuh.yml
et modifiez la valeur du password
paramètre
Modifier le mot de passe surligné par celui souhaité
Ouvrir le docker-compose.yml
fichier. Remplacez toutes les occurrences de l'ancien mot de passe par le nouveau.
Modifier le mot de passe surligné par celui défini au dessus pour le user wazuh-wui
Par défaut, le docker-composer expose les ports suivants :
Dans notre configuration actuelle, le conteneur "single-node-wazuh.dashboard-1" est configuré pour écouter par défaut sur son port 5601 et sur le port 443 de son hôte (notre serveur). Cependant, l'installation de Nginx posera un conflit car Nginx écoute nativement sur les ports 80 et 443. Pour résoudre ce conflit, deux solutions sont envisageables : soit modifier le port d'écoute de Nginx en le configurant pour écouter sur d'autres ports tels que 8080 et 8443, soit modifier le port d'écoute de l'hôte du conteneur en changeant par exemple le port 443 du conteneur en 5601 sur l'hôte.
Nous opterons pour la solution qui est de modifier le port d'écoute de l'hôte du conteneur. il passera de 443 à 5601 afin que Nginx puisse écouter en 443
On stoppe le conteneur Dashboard, on le supprime des conteneurs actifs et on arrête l'instance Docker en cours
On change le port d'écoute
On ouvre le fichier docker-compose. yml et on modifie le port d'écoute sur notre hôte :
Précédemment en : 443:5601 on le passe en 5601:5601 ( en dessous de ports )
Ca veut dire que notre conteneur écoute sur son port 5601 et sur le port 5601 de notre machine
On redémarre notre instance docker compose
On passe maintenant à la configuration de notre nginx
Dissocier le fichier de configuration NGINX par défaut
Si certificat, le configurer au préalable et faire pointer dans le fichier de conf du site
Extraire clé du pfx :
Extraire certif
Configurer maintenant le site
La partie importante du site est la partie location qui redirige notre nginx reverse proxy vers notre serveur lui meme en port 5062 pour faire point vers notre conteneur single-node-wazuh.dashboard-1
On lie le fichier de configuration.
tester le site
redémarrer nginx
Les commandes ici nécessitent de se connecter en bash à l'intérieur de conteneurs. les option -u 0 des commandes dcokers spécifie une connexion avec l'user root
Si des commandes ne s'effectuent pas ( introuvable par exemple ) installez les.
Lancez un apt-get update puis installez les paquets dont vous avez besoin
Le ldap se configure dans le wazuh indexer
Config du fichier conf config.yml
Générer un certificat pour LDAPS avant de poursuivre. Si vous voulez continuez sans certificats supprimez ou commentez la ligne pemtrustedcas_filepath:
,changez le port au niveau du fichier de conf en 389 et ignorez la prochaine étape situées entre les deux lignes
Attribuer les droits du certificats au user wazuh-indexer
Configurer le fichier de config comme suit :
Regarder la doc officielle Opensearch pour plus d'info : Opensearch
La Doc officielle Wazuh n'explique pas la conf de LDAP avec Docker, mais elle est très utile. Les chemins de répertoires diffèrent lors d'une install docker : Wazuh DOC LDAP
Exécuter le securityadmin.sh
pour charger les modifs apporter au config.yml
Configurer le fichier roles_mapping.yml
pour mapper le rôle (CN) que nous avons dans notre serveur LDAP au rôle du Wazuh_indexer approprié. Dans notre cas, nous mappons les utilisateurs du groupe Sys dans notre AD au all_access
rôle sur le wazuh indexer.
Ne modifiez que la ligne all_acces. Si vous avez besoin de toucher aux autres blocs connaissez en les conséquences
Exécuter le securityadmin
script pour charger les modifications de configuration apportées dans le roles_mapping.yml
fichier
Vérifier la valeur de run_as
dans le /usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml
fichier de configuration et passez le à false s'il ne l'est pas
Pour cette vérification il faut changer de conteneur :
La conf ressemble à ca. Le mdp est celui du user pour l'API défini au plus haut ( wazuh-wui )
Sortir du conteneur et le relancer
Se connecter maintenant avec un user de Sys.
1514
Wazuh TCP
1515
Wazuh TCP
514
Wazuh UDP
55000
API Wazuh
9200
Wazuh indexeur HTTPS
443
Tableau de bord Wazuh HTTPS