Inhaltsverzeichnis

zurück

Suricata + EveBox + GeoIP: Einrichtung im Docker-Setup

Diese Dokumentation beschreibt die vollständige Einrichtung von Suricata, EveBox und GeoIP2 in einer Docker-basierten Umgebung – inklusive automatischer GeoIP-Aktualisierung und Logrotation.

Stand: 2025-07-08


🔧 Verzeichnisstruktur

Alle relevanten Dateien befinden sich in:


🐳 Docker Compose Setup

Container für Suricata und EveBox via Docker Compose:

docker-compose.yml (gekürzt & anonymisiert):

snippet.yaml
services:
  suricata:
    image: jasonish/suricata:latest
    volumes:
      - ./config:/etc/suricata
      - ./geoip:/usr/share/GeoIP:ro
    networks:
      - docker_backend
    command: -i eth0

  evebox:
    image: jasonish/evebox:latest
    ports:
      - "5636:5636"
    volumes:
      - ./evebox-data:/var/lib/evebox
    networks:
      - docker_backend

📦 GeoIP-Daten aktualisieren

GeoIP-Daten (GeoLite2-*.mmdb) wurden manuell heruntergeladen und in das Volume /opt/docker/suricata/geoip gelegt.

Suricata erwartet standardmäßig:

snippet.yaml
geoip-database: /usr/share/GeoIP/GeoLite2-Country.mmdb

Container-Check:

snippet.bash
docker exec -it suricata bash
suricata --build-info | grep -i geoip
ls -l /usr/share/GeoIP/*.mmdb

🔁 Cronjob zur GeoIP-Aktualisierung

Skript: /usr/local/bin/update-geoip.sh

snippet.bash
#!/bin/bash
LOGFILE="/var/log/geoipupdate.log"
DATABASE_DIR="/opt/docker/suricata/geoip"
 
mkdir -p "$DATABASE_DIR"
cd "$DATABASE_DIR"
 
wget -q -O GeoLite2-Country.mmdb "https://example.com/GeoLite2-Country.mmdb"
wget -q -O GeoLite2-City.mmdb "https://example.com/GeoLite2-City.mmdb"
wget -q -O GeoLite2-ASN.mmdb "https://example.com/GeoLite2-ASN.mmdb"
 
chown root:root GeoLite2-*.mmdb
chmod 644 GeoLite2-*.mmdb
 
echo "$(date): GeoIP update complete." >> "$LOGFILE"

Cronjob aktivieren:

snippet.bash
sudo crontab -e

Eintragen:

0 3 * * * /usr/local/bin/update-geoip.sh

📁 Logrotate für GeoIP-Logs

/etc/logrotate.d/geoipupdate:

snippet.conf
/var/log/geoipupdate.log {
    weekly
    rotate 4
    compress
    missingok
    notifempty
    create 644 root root
}

Test:

snippet.bash
logrotate --debug /etc/logrotate.d/geoipupdate
logrotate -f /etc/logrotate.d/geoipupdate

📊 EveBox Web Interface

EveBox Web-UI erreichbar unter:

https://<deine-domain>:5636

⚠️ Hinweis: Die Meldung Failed to open GeoIP verschwindet nach korrektem Mount und Neustart.


🧩 To-Do (optional)