Installation und Einrichtung Wazuh

7 Minuten, 94 Sekunden

Installation und Einrichtung Wazuh

Diese Anleitung beschreibt die Schritte zur Installation und Einrichtung eines Wazuh-Servers auf Ubuntu 22.04 Basis, um eine umfassende Überwachungs- und Sicherheitslösung für Ihr Netzwerk bereitzustellen.

Voraussetzungen

  • Betriebssystem: Linux-Server mit Ubuntu 22.04 in der Minimalinstallation
  • Hardware: mindestens 8 GB RAM, mindestens 50 GB Speicherplatz und eine CPU mit mindestens 4 Kernen

Installation

Im ersten Schritt erfolgt die Aktualisierung des Systems:

sudo apt update && sudo apt upgrade -y

Anschließend erfolgt die Installation von Wazuh über die All-in-One-Option. Dies ist der schnellste Weg, um die wichtigsten Komponenten von Wazuh in Betrieb zu nehmen:

curl -sO https://packages.wazuh.com/4.9/wazuh-install.sh && sudo bash ./wazuh-install.sh -a

Nach Abschluss der Installation durch den Assistenten werden in der Ausgabe die Zugangsdaten sowie eine Bestätigung der erfolgreichen Installation angezeigt.

INFO: --- Summary ---
INFO: You can access the web interface https://<wazuh-dashboard-ip>:443
    User: admin
    Password: <ADMIN_PASSWORD>
INFO: Installation finished.

Wazuh ist nun installiert und grundlegend eingerichtet. Sie können über https://<wazuh-dashboard-ip> und Ihre Zugangsdaten auf die Weboberfläche zugreifen.

Beim erstmaligen Aufruf des Wazuh-Dashboards zeigt der Browser eine Warnmeldung an, da das Zertifikat nicht von einer vertrauenswürdigen Quelle stammt. Dies werden wir später während der Einrichtung ändern.

Notiz Die Passwörter für alle Wazuh-Indexer- und Wazuh-API-Benutzer sind in der Datei wazuh-passwords.txt innerhalb von wazuh-install-files.tar zu finden. Um sie anzuzeigen, führen Sie den folgenden Befehl aus:

sudo tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt

Einrichtung

Mailversand (SMTP Auth)

Wazuh bietet keine native Unterstützung für SMTP mit Authentifizierung, daher wird ein Relay-Server wie Postfix installiert:

sudo apt update && sudo apt install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules

Wählen Sie im Installationsfenster die Option Keine Konfiguration und bearbeiten Sie anschließend die Datei /etc/postfix/main.cf oder erstellen Sie sie, falls sie bislang nicht existiert. Fügen Sie die folgende Konfiguration hinzu:

relayhost = [smtp.mailserver.com]:587  
mynetworks = 127.0.0.0/8  
inet_interfaces = loopback-only  
smtp_use_tls = yes  
smtp_always_send_ehlo = yes  
smtp_sasl_auth_enable = yes  
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd  
smtp_sasl_security_options = noanonymous  
smtp_sasl_tls_security_options = noanonymous  
smtp_tls_security_level = encrypt  
smtp_generic_maps = hash:/etc/postfix/generic  
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt  
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination

Danach müssen Sie die Dateien /etc/postfix/sasl_passwd und /etc/postfix/generic, die für die Authentifizierung verwendet werden, erstellen:

sudo nano /etc/postfix/sasl_passwd

Ergänzen Sie nun die geöffnete Datei um Folgendes (passen Sie Servername, E-Mail-Adresse und Passwort entsprechend an):

[smtp.mailserver.com]:587 email@yourdomain:password

Nach dem Speichern müssen die Dateiberechtigungen entsprechend angepasst werden:

sudo chown root:root /etc/postfix/sasl_passwd  
sudo chmod 0600 /etc/postfix/sasl_passwd  
sudo postmap /etc/postfix/sasl_passwd

Nun legen Sie noch die genericKonfiguration an:

sudo nano /etc/postfix/generic

Tragen Sie Folgendes ein, wobei email@yourdomain durch Ihre E-Mail-Adresse ersetzt wird:

root@localdomain email@yourdomain  
@localdomain email@yourdomain

Abschließend müssen Sie noch die Berechtigungen für die allgemeine Datei konfigurieren und den Mailserver-Dienst neu starten:

sudo chown root:root /etc/postfix/generic  
sudo chmod 0600 /etc/postfix/generic  
sudo postmap /etc/postfix/generic
sudo systemctl restart postfix

Sie können die erfolgreiche Konfiguration überprüfen, indem Sie folgendes Kommando eingeben:

echo "This is a test email" | mail -s "Relay E-Mail Test" emailsendto@domain -a "FROM:email@yourdomain"

War der Test erfolgreich, können Sie mit der Bearbeitung der Datei /var/ossec/etc/ossec.conf von Wazuh fortfahren. Dazu passen Sie folgende Einträge nach Ihren Gegebenheiten an:

<global>  
  <email_notification>yes</email_notification>  
  <smtp_server>localhost</smtp_server>  
  <email_from>email@yourdomain</email_from>  
  <email_to>emailsendto@domain</email_to>  
</global>

Zum Abschluss starten Sie den Wazuh-Manager Dienst neu:

sudo systemctl restart wazuh-manager

Index-Optimierung (Speicherfreigabe)

Es ist ratsam, eine automatisierte ILM-Policy zu implementieren, um alte Indizes automatisch zu löschen und das System zu optimieren. So können Sie z.B. eine Policy erstellen, die Indizes älter als 90 Tage löscht.

Öffnen Sie dazu das Menü oben links, navigieren Sie zur Index management und wählen Sie Index Management aus. Klicken Sie auf State management policies und anschließend auf Create policy erstellen. Wählen Sie den Visual editor aus und klicken Sie auf Continue.

Tragen Sie im Abschnitt „Richtlinieninformationen“ eine eindeutige Richtlinien-ID ein, z. B. wazuh-alert-retention-policy. Optional können Sie die Richtlinie im Feld „Beschreibung“ näher erläutern.

Klicken Sie unter ISM templates auf Àdd template hinzufügen und geben Sie ein Indexmuster wie wazuh-alerts-* ein, um diese Richtlinie automatisch auf zukünftige Alarmindizes anzuwenden.

Klicken Sie auf Add state, um einen Status für die Indexlöschung zu erstellen. Geben Sie einen Namen ein, z. B. delete_alerts.

Klicken Sie auf Add action und wählen Sie als Aktionstyp Delete. Klicken Sie erneut auf Add action und anschließend auf Save state, um die Änderungen zu sichern.

Klicken Sie erneut auf Add state, um einen Anfangsstatus zu erstellen, und geben Sie einen Namen ein, z. B. initial.

Wählen Sie auf der Registerkarte Order die Option Add before und anschließend delete_alerts.

Klicken Sie auf Add transition und wählen Sie delete_alerts als Zielstatus aus.

Unter Condition wählen Sie Minimum Index Age. Geben Sie den Aufbewahrungszeitraum ein, z. B. 90d für 90 Tage, in das Feld Minimum Index Age.

Klicken Sie auf Add transition, dann auf Save state, und schließlich auf Create.

Wählen Sie unter Index Management die Option Indices aus. Markieren Sie den Index oder die Indizes, denen die Richtlinie zugewiesen werden soll. Klicken Sie anschließend auf Actions > Apply policy.

Wählen Sie die in den vorherigen Schritten erstellte Richtlinie aus dem Menü Policy ID aus. Klicken Sie auf Apply, um die Auswahl anzuwenden.

Let's Encrypt (OVH DNS-Validation)

Mit dem Certbot-Snap stellen Sie sicher, dass Sie stets die aktuelle Version von Certbot verwenden. Die automatische Zertifikatserneuerung sowie die DNS-Challenge zur Zertifikatsanforderung sind bereits vorkonfiguriert. Um loszulegen, installieren Sie die Pakete wie folgt:

sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo snap set certbot trust-plugin-with-root=ok
sudo snap install certbot-dns-ovh

Führen Sie den folgenden Befehl aus, um den Certbot vom Snap-Verzeichnis mit dem Benutzerverzeichnis zu verknüpfen:

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Erstellen Sie als Nächstes eine Datei für die Anmeldeinformationen wie folgt:

sudo mkdir -p /root/.secrets/certbot/
sudo nano /root/.secrets/certbot/ovh.ini

und geben Sie die OVH API-Anmeldedaten für den "Application Key", "Application Secret" und "Consumer Key" ein:

# OVH API credentials used by Certbot
dns_ovh_endpoint = ovh-eu
dns_ovh_application_key = XXXXXXXXXXXXXXXX
dns_ovh_application_secret = XXXXXXXXXXXXXXXXXXXXXXXXXXXX
dns_ovh_consumer_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXX

Setzen Sie anschließend die Dateiberechtigungen wie folgt:

sudo chmod 600 /root/.secrets/certbot/ovh.ini

Einen Funktionstest können Sie durch Eingabe des folgenden Kommandos durchführen:

sudo certbot certonly --dns-ovh --dns-ovh-credentials /root/.secrets/certbot/ovh.ini --dns-ovh-propagation-seconds 60 --dry-run -d example.com

Verlief der Test erfolgreich, dann können Sie das Zertifikat final ausstellen lassen:

sudo certbot certonly --dns-ovh --dns-ovh-credentials /root/.secrets/certbot/ovh.ini --dns-ovh-propagation-seconds 60 -d example.com

Im nächsten Schritt erstellen Sie ein neues Script zur Integration des Zertifikates in Wazuh. Dazu führe Sie folgende Kommandos aus:

sudo mkdir -p /root/bin && sudo nano /root/bin/wazuh-certbot.sh

und fügen den folgenden Inhalt in die neu erstellte Datei ein. Achten Sie darauf, die Beispieldaten <YOUR_DOMAIN_NAME> durch Ihre eigenen Daten zu ersetzen:

#!/bin/bash

cp /etc/wazuh-dashboard/certs/wazuh-dashboard-key.pem /etc/wazuh-dashboard/certs/wazuh-dashboard-key.pem.bak
cp /etc/wazuh-dashboard/certs/wazuh-dashboard.pem /etc/wazuh-dashboard/certs/wazuh-dashboard.pem.bak

cp /etc/letsencrypt/live/<YOUR_DOMAIN_NAME>/privkey.pem /etc/wazuh-dashboard/certs/wazuh-dashboard-key.pem
cp /etc/letsencrypt/live/<YOUR_DOMAIN_NAME>/fullchain.pem /etc/wazuh-dashboard/certs/wazuh-dashboard.pem

chown wazuh-dashboard:wazuh-dashboard /etc/wazuh-dashboard/certs/*
chmod 600 /etc/wazuh-dashboard/certs/*

systemctl restart wazuh-dashboard

Anschließend muss die neu erstellte Datei ausführbar gemacht werden. Verwenden Sie dafür den folgenden Befehl:

sudo chmod 750 /root/bin/wazuh-certbot.sh

Öffnen Sie die Domänenkonfigurationsdatei unter /etc/letsencrypt/renewal/<YOUR_DOMAIN_NAME>.conf und ergänzen Sie am Ende der Datei den Erneuerungs-Hook:

# Options used in the renewal process
...
[renewalparams]
...
renew_hook = sh /root/bin/wazuh-certbot.sh 

Testen Sie den Erneuerungs-Hook, indem Sie den folgenden Befehl ausführen:

sudo certbot renew --dry-run

Die Ausgabe sollte wie folgt aussehen:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/<YOUR_DOMAIN_NAME>.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Simulating renewal of an existing certificate for <YOUR_DOMAIN_NAME>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded:
/etc/letsencrypt/live/<YOUR_DOMAIN_NAME>/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Führen Sie abschließend das Skript für den Zertifikatsaustausch in Wazuh einmal manuell aus:

sudo sh /root/bin/wazuh-certbot.sh

Beim Aufrufen der Wazuh-Dashboard-Seite sollte die Zertifikatswarnung nun nicht mehr angezeigt werden.

Sysmon (Installation und Konfiguration)

Öffnen Sie zur Installation von Sysmon eine PowerShell mit Administratorrechten auf dem Windows-Rechner. Laden Sie anschließend die erforderlichen Dateien herunter und speichern Sie sie im Download-Ordner:

Invoke-WebRequest -Uri https://raw.githubusercontent.com/olafhartong/sysmon-modular/refs/heads/master/sysmonconfig.xml -OutFile ${env:userprofile}\Downloads\sysmonconfig.xml; Invoke-WebRequest -Uri https://download.sysinternals.com/files/Sysmon.zip -OutFile ${env:userprofile}\Downloads\Sysmon.zip; Expand-Archive ${env:userprofile}\Downloads\Sysmon.zip -DestinationPath ${env:userprofile}\Downloads\;

Im nächsten Schritt muss Sysmon unter Verwendung der zuvor festgelegten Konfiguration wie folgt installiert werden:

& ${env:userprofile}\Downloads\Sysmon64.exe -accepteula -i ${env:userprofile}\Downloads\sysmonconfig.xml

Es ist nun notwendig, diesem Agenten mitzuteilen, dass Sie die Sysmon-Ereignisse überwachen möchten. Dazu müssen Sie diesen Code in die Konfiguration des Agenten aufnehmen, indem wir die ossec.conf entsprechend anpassen:

<localfile>
  <location>Microsoft-Windows-Sysmon/Operational</location>
  <log_format>eventchannel</log_format>
</localfile>

Starten Sie den Agenten neu, um die Änderungen anzuwenden.

Abschluss

Damit ist das Tutorial zu "Installation und Einrichtung Wazuh" abgeschlossen. Wenn Sie Fragen haben, senden Sie eine Mail an

Quellen

Zurück