Wazuh: Installation

As a newcomer to the cybersecurity industry, I'm on an exciting journey of continuous learning and exploration. Join me as I navigate, sharing insights and lessons learned along the way
Search for a command to run...

As a newcomer to the cybersecurity industry, I'm on an exciting journey of continuous learning and exploration. Join me as I navigate, sharing insights and lessons learned along the way
No comments yet. Be the first to comment.
SIEM / outil de détection d’intrusion (IDS) qui permet de surveiller et protéger les systèmes.
Cet article présente la mise en place d’un environnement de détection, combinant Zeek, Suricata avec la stack ELK (Elasticsearch, Logstash, Kibana). Il permet de mettre en avant la gestion des logs avec ELK, l’analyse réseau avec Zeek et Suricata, pu...
Ce lab a pour but de concevoir et déployer une infra sécurisée et segmentée sur Google Cloud Platform (GCP) en utilisant Terraform et Ansible. Bonne lecture :) Composants Voici les différentes technologies et composants du projet. Infrastructure Te...
Cet article présente la mise en place d’un environnement de détection, combinant Zeek, Suricata avec la stack ELK (Elasticsearch, Logstash, Kibana). Il permet de mettre en avant la gestion des logs avec ELK, l’analyse réseau avec Zeek et Suricata, pu...

Dans cet article, on va déployer une application Python Flask sur Kubernetes. Un premier article montrant les premiers pas avec Kubernetes et Minikube est disponible ici Kubernetes: Simplifying Container Orchestration Pré-requis Docker: pour créer l...

Kubernetes ou K8s est une plateforme open-source utilisée pour automatiser le déploiement et la gestion des applications conteneurisées. Une application conteneurisée est une application qui fonctionne à l’intérieur d’un conteneur, un environnement l...

Lien : https://www.root-me.org/fr/Challenges/App-Script/ELF32-System-2 On veut pouvoir lire le mot de passe du fichier .passwd mais il n’est lisible que par le propriétaire du fichier app-script-ch12-cracked. Le code source de ch12.c utilise la fonc...

Wazuh est une plateforme open-source qui offre des moyens de détecter des menaces, de répondre aux incidents, de surveiller l'intégrité des fichiers et de fournir une visibilité sur l'ensemble de l'infrastructure. Wazuh est essentiellement un SIEM, utilisé par de nombreuses organisations en matière de sécurité.
Tout d'abord, voici les 4 principaux composants de Wazuh :
Le serveur Wazuh analyse les données collectées par les différents agents. Il détecte les menaces, génère des alertes et propose des solutions aux incidents. Les informations sont centralisées au niveau du serveur Wazuh pour fournir une vue d'ensemble de la sécurité de l'infrastructure.
L'indexeur Wazuh agit comme une base de données en répertoriant les alertes et incidents générés par le serveur Wazuh. Il permet de stocker et d'analyser les données de sécurité collectées, facilitant ainsi la détection des menaces et la réponse aux incidents.
L'agent Wazuh est installé directement sur les terminaux à surveiller (poste de travail, serveur, machine virtuelle, etc.). L'agent collecte tous les événements de sécurité, les données du système, les logs et bien plus encore, puis envoie les informations au serveur Wazuh.
Le dashboard (tableau de bord) fournit une interface utilisateur graphique pour analyser et gérer les alertes.

Voici une image provenant de Linode qui illustre le fonctionnement de Wazuh.
Il est important de noter que l'agent Wazuh peut être installé sur macOS, Windows et Linux. Pour les systèmes Linux, il est recommandé d'utiliser une version 64 bits pour une meilleure compatibilité.
La documentation détaillée est disponible sur le site officiel de Wazuh.
Dans notre article, l'installation se fera sur Debian du système d'exploitation Linux.
À partir de là, il suffit de suivre les étapes décrites dans la documentation.
***Si les pacakges curl ne sont pas encore installés, faire la commande sudo apt install curl gpg si la commande curl est introuvable.
Ajouter la clé GPG
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && chmod 644 /usr/share/keyrings/wazuh.gpg
Ajouter le dépot Wazuh
echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list
Mettre à jour les informations des paquets
sudo apt update && sudo apt upgrade && sudo apt-get install debconf adduser procps curl gnupg apt-transport-https filebeat debhelper libcap2-bin
Télécharger le script wazuh-certs-tool.sh et le fichier config.yml. Cela permettra d'ajouter les addresses IP du/des serveur/s, de l'indexeur et du dashboard.
curl -sO https://packages.wazuh.com/4.8/wazuh-certs-tool.sh && curl -sO https://packages.wazuh.com/4.8/config.yml
Vérifier que les deux fichiers ont bien été créés avec la commande dir

Modifier le fichier config.yml avec la commande nano /config.yml
Ajouter l'adresse IP de la machine Debian pour l'indexeur, le serveur et le tableau de bord. Cette approche utilise le mode "single node" où un seul serveur gère toutes les fonctions. Une autre approche serait la configuration en mode "multinode", où plusieurs serveurs sont impliqués, avec une machine dédiée au tableau de bord et une autre servant d'indexeur. La configuration "single node" simplifie la gestion et les déploiements.


Notez qu'il est important à ce niveau de conserver les noms des indexer , server et dashboard
Exécuter le script suivant pour générer les certificats et compresser les fichiers
bash ./wazuh-certs-tool.sh -A
tar -cvf ./wazuh-certificates.tar -C ./wazuh-certificates/ .
rm -rf ./wazuh-certificates
Installer le paquet wazuh-indexer , wazuh-manager et wazuh-dashboard
"Wazuh-indexer" installe Elasticsearch, qui est utilisé pour l'indexation et la recherche des logs collectés par Wazuh.
"wazuh-manager" installe le serveur Wazuh
"wazuh-dashboard" installe Kibana, qui est l'interface web utilisée pour visualiser les alertes et les données dans Wazuh
sudo apt install wazuh-indexer wazuh-manager wazuh-dashboard -y
À noter que cette installation peut durer quelques minutes 😉
Configurer le "wazuh-indexer"
nano /etc/wazuh-indexer/opensearch.yml

À ce niveau il faut mettre l'adresse IP du serveur au "network.host".
Déployer les certificats de l'indexer
Exécuter les commandes suivantes en remplacant le nom du nœud d’indexeur Wazuh si il a été modifé à l'étape 6 et 9. Si vous ne l'avez pas modifié, il devrait être "node-1".
NODE_NAME=node-1
Les commandes pour déployer les certificats
mkdir /etc/wazuh-indexer/certs
tar -xf ./wazuh-certificates.tar -C /etc/wazuh-indexer/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./admin.pem ./admin-key.pem ./root-ca.pem
mv -n /etc/wazuh-indexer/certs/$NODE_NAME.pem /etc/wazuh-indexer/certs/indexer.pem
mv -n /etc/wazuh-indexer/certs/$NODE_NAME-key.pem /etc/wazuh-indexer/certs/indexer-key.pem
chmod 500 /etc/wazuh-indexer/certs
chmod 400 /etc/wazuh-indexer/certs/*
chown -R wazuh-indexer:wazuh-indexer /etc/wazuh-indexer/certs
Activer et démarrer le service wazuh-indexer
sudo systemctl daemon-reload
sudo systemctl enable wazuh-indexer
sudo systemctl start wazuh-indexer
Initialisation du cluster
/usr/share/wazuh-indexer/bin/indexer-security-init.sh
Tester l'installation du cluster
Remplacer <WAZUH_INDEXER_IP_ADDRESS> par l'adresse IP de l'indexer
sudo curl -k -u admin:admin https://<WAZUH_INDEXER_IP_ADRESS>:9200
La sortie devrait ressembler à ceci, indiquant que l'installation a été réussie.

curl -k -u admin:admin https://<WAZUH_INDEXER_IP_ADRESS>:9200/_cat/nodes?v
Installation du Wazuh manager
sudo systemctl daemon-reload
sudo systemctl enable wazuh-manager
sudo systemctl start wazuh-manager
sudo systemctl status wazuh-manager
Après quelques minutes, le service wazuh-manager devrait être installé.

Démarrer le service filebeat
apt install filebeat
Télécharger et configurer le fichier de confuguration filebeat
curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.8/tpl/wazuh/filebeat/filebeat.yml
nano /etc/filebeat/filebeat.yml

Modifier l'adresse IP localhost par celui de l'indexer (la même adresse IP depuis l'étape 6)
Créer le fichier filebeat keystore pour stocker en toute sécurité les informations d’authentification.
filebeat keystore create
Ajouter le nom d'utilisateur et le mot de passe par défaut au keystore
echo admin | filebeat keystore add username --stdin --force
echo admin | filebeat keystore add password --stdin --force
Le nom d'utilisateur et le mot de passe sont tous deux spécifiés à "admin".
Télécharhger le template d'alertes pour le wazuh indexer
curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/v4.8.2/extensions/elasticsearch/7.x/wazuh-template.json
chmod go+r /etc/filebeat/wazuh-template.json
Installer le module wazuh pour filebeat
curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.4.tar.gz | tar -xvz -C /usr/share/filebeat/module
Déployer les certificats
Ici encore une fois, remplacer le nom du certificat <SERVER_NODE_NAME> par le nom utilisé lors de la création des certificats. Si vous n'avez rien modifié, il restera "wazuh-1"
NODE_NAME=wazuh-1
mkdir /etc/filebeat/certs
tar -xf ./wazuh-certificates.tar -C /etc/filebeat/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./root-ca.pem
mv -n /etc/filebeat/certs/$NODE_NAME.pem /etc/filebeat/certs/filebeat.pem
mv -n /etc/filebeat/certs/$NODE_NAME-key.pem /etc/filebeat/certs/filebeat-key.pem
chmod 500 /etc/filebeat/certs
chmod 400 /etc/filebeat/certs/*
chown -R root:root /etc/filebeat/certs
Redémarrer le service filebeat
sudo systemctl daemon-reload
sudo systemctl enable filebeat
sudo systemctl start filebeat
Vérifier que filebeat est installé avec succès
filebeat test output
Vous devriez obtenir la sortie suivante, avec l'adresse IP de votre serveur.

Configurer le wazuh dashboard
nano /etc/wazuh-dashboard/opensearch_dashboards.yml
Modifier l'adresse IP "opensearch.hosts" et mettre celui de l'indexer

Déployer les certificats pour le wazuh-dashboard
Remplacez le <DASHBOARD_NODE_NAME> par le nom utilisé lors de la configuration du fichier config.yml à l'étape 6 au niveau du tableau de bord. Si vous n'avez rien modifié, il restera "dashboard".
NODE_NAME=dashboard
mkdir /etc/wazuh-dashboard/certs
tar -xf ./wazuh-certificates.tar -C /etc/wazuh-dashboard/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./root-ca.pem
mv -n /etc/wazuh-dashboard/certs/$NODE_NAME.pem /etc/wazuh-dashboard/certs/dashboard.pem
mv -n /etc/wazuh-dashboard/certs/$NODE_NAME-key.pem /etc/wazuh-dashboard/certs/dashboard-key.pem
chmod 500 /etc/wazuh-dashboard/certs
chmod 400 /etc/wazuh-dashboard/certs/*
chown -R wazuh-dashboard:wazuh-dashboard /etc/wazuh-dashboard/certs
Pour vérifier le nom du nœud de votre tableau de bord Wazuh, faire la commande cat config.yml ou nano config.yml
Démarrer le service wazuh-dashboard
sudo systemctl daemon-reload
sudo systemctl enable wazuh-dashboard
sudo systemctl start wazuh-dashboard
Vous pouvez vérifier l'état des services avec les commandes suivantes:
sudo systemctl status wazuh-dashboard
sudo systemctl status wazuh-manager
sudo systemctl status wazuh-indexer



On voit que les services sont actifs.
Une fois l'installation terminée, il faut se connecter avec https://<adresseIP_server> .

Pour conclure, Wazuh est une solution open-source solide et flexible de gestion des informations et des événements de sécurité (SIEM). Grâce à ses composants principaux — le serveur, l'indexeur, l'agent et le tableau de bord — Wazuh offre une surveillance complète de l'infrastructure, la détection des menaces, la réponse aux incidents et la gestion de l'intégrité des fichiers. Son installation, bien que détaillée, est facilitée par une documentation complète sur le site officiel. La prochaine étape est le déploiement des agents sur les terminaux suivie de la configuration des alertes.