Wazuh: Installation

Wazuh: Installation

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é.

Composants

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é.

Installation

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.

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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
    
  5. Vérifier que les deux fichiers ont bien été créés avec la commande dir

  6. 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.

  7. Notez qu'il est important à ce niveau de conserver les noms des indexer , server et dashboard

  8. 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
    
  9. 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 😉

  10. Configurer le "wazuh-indexer"

    nano /etc/wazuh-indexer/opensearch.yml
    

    À ce niveau il faut mettre l'adresse IP du serveur au "network.host".

  11. 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
    
  12. Activer et démarrer le service wazuh-indexer

    sudo systemctl daemon-reload
    sudo systemctl enable wazuh-indexer
    sudo systemctl start wazuh-indexer
    
  13. Initialisation du cluster

    /usr/share/wazuh-indexer/bin/indexer-security-init.sh
    
  14. 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
    
  15. 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é.

  16. Démarrer le service filebeat

    apt install filebeat
    
  17. 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)

  18. Créer le fichier filebeat keystore pour stocker en toute sécurité les informations d’authentification.

    filebeat keystore create
    
  19. 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".

  20. 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
    
  21. 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
    
  22. 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
    
  23. Redémarrer le service filebeat

    sudo systemctl daemon-reload
    sudo systemctl enable filebeat
    sudo systemctl start filebeat
    
  24. 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.

  25. Configurer le wazuh dashboard

    nano /etc/wazuh-dashboard/opensearch_dashboards.yml
    

    Modifier l'adresse IP "opensearch.hosts" et mettre celui de l'indexer

  26. 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

  27. 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.

Interface Wazuh

Une fois l'installation terminée, il faut se connecter avec https://<adresseIP_server> .

Conclusion

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.

Did you find this article valuable?

Support FIKARA BILAL by becoming a sponsor. Any amount is appreciated!