Docker-Monitoring mit Wazuh-Agent

Ab Seite 165 beschreibe ich in meinem Buch anhand eines Beispielszenarios, wie Docker-Container mit Wazuh überwacht werden können. Bei modernen Linux-Distributionen wie Debian (ab Version 12 „Bookworm”) oder Ubuntu (ab Version 22.04/23.04) müssen virtuelle Umgebungen (venv) angelegt werden, in denen Pakete wie gewohnt mit pip installiert werden können. In PEB 668 ist beschrieben, dass die Python-Installation dort als von der Distribution verwaltet markiert ist. Globale Paketänderungen mit pip sollten unterbleiben, um den Paketmanager (apt, dnf etc.) nicht zu beeinträchtigen. 

Die Distribution legt dazu eine Marker-Datei an und signalisiert damit Werkzeugen wie pip, dass sie in dieser Basisumgebung keine Pakete mehr global installieren oder ändern sollen. Das Ziel besteht darin, Konflikte zwischen vom Paketmanager bereitgestellten Python-Paketen und manuell mit pip installierten Versionen zu vermeiden, da diese im schlimmsten Fall das System unbenutzbar machen können.

Im Folgenden finden Sie eine Schritt-für-Schritt-Anleitung zur Einrichtung des Docker-Monitorings mit Wazuh-Agent inklusive Virtual Environment für Python, wie sie in der Wazuh-Dokumentation beschrieben wird. Das Ziel besteht darin, Docker-Events zuverlässig zu erfassen, ohne das systemweite Python-Setup zu verändern.

Stellen Sie sicher, dass auf dem Docker-Host Folgendes installiert und eingerichtet ist:

  • Docker (Docker Engine)
  • Wazuh-Agent installiert und beim Wazuh-Server registriert
  • Root- oder sudo-Zugriff

Docker-Monitoring erfordert, dass der Agent auf dem gleichen System läuft, wo auch Docker installiert ist.

Schritt 1: System-Pakete & Python-Virtual-Environment vorbereiten

Installiere die erforderlichen Pakete und Tools:

sudo apt update
sudo apt install -y python3 python3-venv python3-pip 

Schritt 2: Virtual Environment für Docker Listener erstellen

Lege ein Verzeichnis für das virtuelle Environment an, z. B.:

sudo mkdir -p /opt/wazuh/venv-docker-listener
sudo chown $USER:$USER /opt/wazuh/venv-docker-listener
cd /opt/wazuh/venv-docker-listener

Erstelle ein virtuelles Python-Environment:

python3 -m venv venv

Aktiviere das Environment:

source venv/bin/activate

Schritt 3: Abhängigkeiten im Virtual Environment installieren

Im aktivierten venv installiere die Docker-Bibliothek und benötigte Pakete:

pip install --upgrade pip
pip install docker==7.1.0 urllib3==1.26.20 requests==2.32.2

Diese Versionen entsprechen den Anforderungen für das Docker-Listener-Modul. 

Schritt 4: Shebang im DockerListener-Skript anpassen

Öffne das Skript (Pfad kann je nach Installation variieren, Standard ist):

sudo nano /var/ossec/wodles/docker/DockerListener

Ersetze die erste Zeile (Shebang) durch den Pfad zu deinem venv-Interpreter:

#!/opt/wazuh/venv-docker-listener/venv/bin/python3

Schritt 5: Wazuh-Agent konfigurieren

Füge in der Agent-Config /var/ossec/etc/ossec.conf folgenden Block hinzu (innere Struktur wie in der Doku):

<ossec_config>
  <wodle name="docker-listener">
    <interval>10m</interval>
    <attempts>5</attempts>
    <run_on_start>yes</run_on_start>
    <disabled>no</disabled>
  </wodle>
</ossec_config>

Damit wird das Docker-Listener-Modul aktiviert, was Docker-Events durch den Agent sammelt und an den Manager weiterleitet. 

Schritt 5: Wazuh-Agent neu starten

sudo systemctl restart wazuh-agent

Schreibe einen Kommentar