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:

- `/opt/docker/suricata` - Konfiguration: `/opt/docker/suricata/config/suricata.yaml` - GeoIP-Daten: `/usr/share/GeoIP/*.mmdb` (im Container) - Log-Datei: `/var/log/geoipupdate.log`

## 🐳 Docker Compose Setup

Container für Suricata und EveBox via Docker Compose:

docker-compose.yml (gekürzt & anonymisiert): ```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:

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

Container-Check: ```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` ```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: ```bash sudo crontab -e ```

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

## 📁 Logrotate für GeoIP-Logs

/etc/logrotate.d/geoipupdate: ```conf /var/log/geoipupdate.log {

  weekly
  rotate 4
  compress
  missingok
  notifempty
  create 644 root root

} ```

Test: ```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)

- TLS für EveBox über Reverse Proxy - GeoLite2-API-Key Integration ins Update-Skript - Visualisierung z. B. mit Metabase oder Grafana