5.4 KiB
Konfigurationsreferenz
Dokumentation aller Konfigurationsoptionen für den CrowdSec Manager v0.1.0.
Datei:
config/crowdsec-manager.confDie Konfigurationsdatei ist ein Bash-Script und wird persourceeingebunden.
Inhaltsverzeichnis
- CrowdSec Basis-Konfiguration
- Allowlist-Einträge
- DNS-Konfiguration
- Logging
- Backup
- Lock-File
- Auto-Cleanup
CrowdSec Basis-Konfiguration
CSCLI_CMD
Der Befehl zum Aufrufen von CrowdSec CLI. Ermöglicht die Unterstützung verschiedener Installationsarten:
# Native Installation
CSCLI_CMD="cscli"
# Docker (Container-Name: crowdsec)
CSCLI_CMD="docker exec crowdsec cscli"
# Docker Compose (Service-Name: crowdsec)
CSCLI_CMD="docker compose exec crowdsec cscli"
# Docker Compose mit eigenem Compose-File
CSCLI_CMD="docker compose -f /opt/crowdsec/docker-compose.yml exec crowdsec cscli"
# Podman
CSCLI_CMD="podman exec crowdsec cscli"
# SSH auf Remote-Server
CSCLI_CMD="ssh user@server cscli"
Tipp: Teste den Befehl manuell, bevor du ihn in die Config einträgst:
docker exec crowdsec cscli version
ALLOWLIST_NAME
Name der verwalteten Allowlist. Wird via cscli allowlists in CrowdSec verwaltet.
ALLOWLIST_NAME="crowdsec-manager"
ALLOWLIST_REASON
Beschreibung für die einzelnen Einträge in der Allowlist. Dient zur Nachverfolgbarkeit.
ALLOWLIST_REASON="allowlist-manager-auto"
HEALTH_CHECK
Ob vor dem Sync ein CrowdSec-Health-Check durchgeführt werden soll.
HEALTH_CHECK=true
DRY_RUN
Global aktivierbarer Dry-Run Modus. Kann auch per CLI mit --dry-run aktiviert werden.
DRY_RUN=false
Allowlist-Einträge
ALLOWLIST_ENTRIES
Bash-Array mit allen zu verwaltenden Einträgen:
ALLOWLIST_ENTRIES=(
# === Webserver & CDN ===
"meinedomain.de"
"www.meinedomain.de"
"cdn.meinedomain.de"
# === Mail-Server ===
"mail.meinedomain.de"
# === Monitoring ===
"monitoring.example.com"
# === Feste IPs ===
"203.0.113.10"
"203.0.113.20"
# === Büro-Netzwerk (CIDR) ===
"192.168.1.0/24"
# === IPv6 ===
"2001:db8::1"
"2001:db8:1::/48"
)
Regeln für Einträge:
- Ein Eintrag pro Zeile (in Anführungszeichen)
- Kommentare mit
#sind direkt in der Zeile möglich - Leere Zeilen werden ignoriert
- Domains werden automatisch per DNS aufgelöst
- IPs und CIDRs werden direkt eingetragen
- IPv4 und IPv6 werden unterstützt
Erkennung von Eintragstypen:
| Eintragstyp | Beispiel | Aktion |
|---|---|---|
| IPv4 | 192.168.1.1 |
Direkt eintragen |
| IPv6 | 2001:db8::1 |
Direkt eintragen |
| IPv4-CIDR | 10.0.0.0/8 |
Als range eintragen |
| IPv6-CIDR | 2001:db8::/32 |
Als range eintragen |
| Domain | example.com |
DNS auflösen → IPs eintragen |
DNS-Konfiguration
DNS_SERVER
Eigenen DNS-Server für die Auflösung verwenden. Leer lassen für den System-DNS (aus /etc/resolv.conf).
# System-DNS (Standard)
DNS_SERVER=""
# Cloudflare
DNS_SERVER="1.1.1.1"
# Google
DNS_SERVER="8.8.8.8"
# Quad9
DNS_SERVER="9.9.9.9"
# Eigener DNS
DNS_SERVER="10.0.0.53"
RESOLVE_IPV6
Ob auch AAAA-Records (IPv6) aufgelöst werden sollen:
RESOLVE_IPV6=true # IPv4 + IPv6
RESOLVE_IPV6=false # Nur IPv4
DNS_TIMEOUT und DNS_RETRIES
DNS_TIMEOUT=5 # Timeout in Sekunden pro DNS-Anfrage
DNS_RETRIES=3 # Wiederholungsversuche bei Fehler
Logging
LOG_LEVEL
Steuert die Ausführlichkeit der Ausgabe:
| Level | Beschreibung |
|---|---|
DEBUG |
Alles loggen (jede DNS-Anfrage, jeder Vergleich) |
INFO |
Standard: Wichtige Schritte und Ergebnisse |
WARN |
Nur Warnungen und Fehler |
ERROR |
Nur Fehler |
LOG_LEVEL="INFO"
Tipp: Verwende --verbose beim manuellen Aufruf und --quiet für Cron.
LOG_FILE
Pfad zur Log-Datei. Leer lassen wenn nur auf stdout ausgegeben werden soll.
LOG_FILE="/var/log/crowdsec-manager.log"
Log-Rotation
LOG_MAX_SIZE_KB=5120 # Rotation bei 5 MB
LOG_ROTATE_COUNT=3 # 3 alte Dateien aufbewahren
Rotierte Dateien:
crowdsec-manager.log ← Aktuell
crowdsec-manager.log.0 ← Vorherige
crowdsec-manager.log.1
crowdsec-manager.log.2 ← Älteste
Backup
BACKUP_ENABLED=true
BACKUP_DIR="/var/backup/crowdsec-manager"
BACKUP_RETAIN_COUNT=7 # 7 Backups aufbewahren
Backup-Dateien werden im Format allowlist_YYYYMMDD_HHMMSS.bak gespeichert. Ältere Backups werden automatisch gelöscht.
Lock-File
Das Lock-File verhindert parallele Ausführung (z.B. wenn ein Cron-Lauf länger dauert als das Intervall).
LOCK_ENABLED=true
LOCK_FILE="/tmp/crowdsec-manager.lock"
LOCK_TIMEOUT=300 # 5 Minuten warten, dann abbrechen
Verwaiste Lock-Files: Das Script erkennt automatisch, ob der im Lock-File referenzierte Prozess noch läuft. Wenn nicht, wird das Lock-File entfernt.
Auto-Cleanup
AUTO_CLEANUP=true
Wenn aktiviert, entfernt das Script IPs aus der CrowdSec-Allowlist, die:
- In der aktuellen Allowlist vorhanden sind (mit dem Origin
ALLOWLIST_REASON) - NICHT mehr in der aufgelösten IP-Liste enthalten sind
Wenn also eine Domain ihre IP ändert, wird die alte IP automatisch aus der Allowlist entfernt.