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 generic
Konfiguration 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
- https://medium.com/@kerberoasting/wazuh-and-office-365-email-notifications-c7de4aac0cda
- https://maikroservice.com/identity-management-wazuh-and-authentik
- https://documentation.wazuh.com/4.9/user-manual/wazuh-indexer/index-life-management.html
- https://www.digitalocean.com/community/tutorials/how-to-use-certbot-standalone-mode-to-retrieve-let-s-encrypt-ssl-certificates-on-ubuntu-22-04
- https://snapcraft.io/install/certbot-dns-ovh/ubuntu
- https://certbot-dns-ovh.readthedocs.io/en/stable/