178 lines
5.7 KiB
Bash
178 lines
5.7 KiB
Bash
#!/bin/bash
|
|
# ============================================================================
|
|
# CrowdSec Manager - Konfigurationsdatei
|
|
# ============================================================================
|
|
# Diese Datei enthält alle konfigurierbaren Parameter für das Script.
|
|
# Passe die Werte an deine Umgebung an.
|
|
# ============================================================================
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# CrowdSec Basis-Konfiguration
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Basisbefehl für CrowdSec CLI (cscli)
|
|
# Beispiele:
|
|
# Direkt installiert: CSCLI_CMD="cscli"
|
|
# Docker: CSCLI_CMD="docker exec crowdsec cscli"
|
|
# Docker Compose: CSCLI_CMD="docker compose exec crowdsec cscli"
|
|
# Podman: CSCLI_CMD="podman exec crowdsec cscli"
|
|
CSCLI_CMD="docker exec crowdsec cscli"
|
|
|
|
# Name der Allowlist in CrowdSec (wird via 'cscli allowlists' verwaltet)
|
|
# Diese Liste wird vom Script automatisch angelegt und verwaltet
|
|
ALLOWLIST_NAME="crowdsec-manager"
|
|
|
|
# Beschreibung der Allowlist
|
|
ALLOWLIST_DESCRIPTION="Managed by crowdsec-manager script"
|
|
|
|
# Beschreibung für einzelne Einträge in der Allowlist
|
|
ALLOWLIST_REASON="allowlist-manager-auto"
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Domains / DNS / IPs zum Allowlisten
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Liste der Domains, Subdomains und einzelnen IPs
|
|
# Trenne mehrere Einträge mit Leerzeichen
|
|
# Unterstützte Formate:
|
|
# - Domains: example.com
|
|
# - Subdomains: subdomain.example.com
|
|
# - IPv4-Adressen: 192.168.1.100
|
|
# - IPv6-Adressen: 2001:db8::1
|
|
# - CIDR-Notation: 192.168.1.0/24
|
|
# - CIDR IPv6: 2001:db8::/32
|
|
|
|
ALLOWLIST_ENTRIES=(
|
|
# === Domains & Subdomains ===
|
|
"example.com"
|
|
"subdomain.example.com"
|
|
|
|
# === Einzelne IPs ===
|
|
# "192.168.1.100"
|
|
# "2001:db8::1"
|
|
|
|
# === CIDR-Bereiche ===
|
|
# "10.0.0.0/8"
|
|
# "2001:db8::/32"
|
|
)
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# DNS-Auflösung
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Eigenen DNS-Server verwenden (leer lassen für System-DNS)
|
|
# Beispiele: "1.1.1.1", "8.8.8.8", "9.9.9.9"
|
|
DNS_SERVER=""
|
|
|
|
# IPv6-Adressen ebenfalls auflösen? (true/false)
|
|
RESOLVE_IPV6=true
|
|
|
|
# DNS-Auflösungs-Timeout in Sekunden
|
|
DNS_TIMEOUT=5
|
|
|
|
# Anzahl DNS-Auflösungsversuche bei Fehler
|
|
DNS_RETRIES=3
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Logging
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Log-Level: DEBUG, INFO, WARN, ERROR
|
|
LOG_LEVEL="INFO"
|
|
|
|
# Pfad zur Log-Datei (leer = nur stdout)
|
|
LOG_FILE="/var/log/crowdsec-manager.log"
|
|
|
|
# Maximale Größe der Log-Datei in KB bevor rotiert wird (0 = keine Rotation)
|
|
LOG_MAX_SIZE_KB=5120
|
|
|
|
# Anzahl der aufzubewahrenden rotierten Log-Dateien
|
|
LOG_ROTATE_COUNT=3
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Backup
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Backup vor Änderungen erstellen? (true/false)
|
|
BACKUP_ENABLED=true
|
|
|
|
# Verzeichnis für Backups
|
|
BACKUP_DIR="/var/backup/crowdsec-manager"
|
|
|
|
# Anzahl aufzubewahrende Backups (ältere werden gelöscht)
|
|
BACKUP_RETAIN_COUNT=7
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Lock-File (verhindert parallele Ausführung)
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Lock-File aktivieren? (true/false)
|
|
LOCK_ENABLED=true
|
|
|
|
# Pfad zum Lock-File
|
|
LOCK_FILE="/tmp/crowdsec-manager.lock"
|
|
|
|
# Timeout für Lock in Sekunden (0 = sofort abbrechen wenn gesperrt)
|
|
LOCK_TIMEOUT=300
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Benachrichtigungen
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Benachrichtigungen aktivieren? (true/false)
|
|
NOTIFY_ENABLED=false
|
|
|
|
# Wann benachrichtigen?
|
|
# "always" - Immer nach Ausführung
|
|
# "changes" - Nur wenn Änderungen vorgenommen wurden
|
|
# "errors" - Nur bei Fehlern
|
|
NOTIFY_ON="changes"
|
|
|
|
# --- Notify-Send (Desktop-Benachrichtigungen) ---
|
|
NOTIFY_DESKTOP_ENABLED=false
|
|
|
|
# --- Ntfy (https://ntfy.sh) ---
|
|
NOTIFY_NTFY_ENABLED=false
|
|
NOTIFY_NTFY_URL="https://ntfy.sh"
|
|
NOTIFY_NTFY_TOPIC="crowdsec-manager"
|
|
NOTIFY_NTFY_PRIORITY="default"
|
|
NOTIFY_NTFY_TOKEN=""
|
|
# Tags/Emojis für Ntfy-Nachrichten
|
|
NOTIFY_NTFY_TAGS="shield,white_check_mark"
|
|
|
|
# --- Gotify (https://gotify.net) ---
|
|
NOTIFY_GOTIFY_ENABLED=false
|
|
# URL deiner Gotify-Instanz (mit Protokoll, ohne trailing slash)
|
|
NOTIFY_GOTIFY_URL="https://gotify.example.com"
|
|
# App-Token aus Gotify (unter Apps -> Token erstellen)
|
|
NOTIFY_GOTIFY_TOKEN=""
|
|
# Priorität der Nachricht (1-10, höher = wichtiger)
|
|
# 1-3: Niedrig, 4-7: Normal, 8-10: Hoch/Kritisch
|
|
NOTIFY_GOTIFY_PRIORITY=5
|
|
|
|
# --- E-Mail ---
|
|
NOTIFY_EMAIL_ENABLED=false
|
|
NOTIFY_EMAIL_TO="admin@example.com"
|
|
NOTIFY_EMAIL_FROM="crowdsec@example.com"
|
|
NOTIFY_EMAIL_SUBJECT="CrowdSec Manager Report"
|
|
# SMTP-Server Konfiguration
|
|
NOTIFY_EMAIL_SMTP_SERVER="smtp.example.com"
|
|
NOTIFY_EMAIL_SMTP_PORT="587"
|
|
NOTIFY_EMAIL_SMTP_USER=""
|
|
NOTIFY_EMAIL_SMTP_PASS=""
|
|
NOTIFY_EMAIL_SMTP_TLS=true
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Erweiterte Optionen
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Automatische Bereinigung: Entfernt IPs aus der Allowlist, die nicht mehr
|
|
# zu den konfigurierten Domains/IPs gehören (true/false)
|
|
AUTO_CLEANUP=true
|
|
|
|
# Health-Check vor Ausführung (true/false)
|
|
HEALTH_CHECK=true
|
|
|
|
# Dry-Run Modus als Standard (kann mit --dry-run überschrieben werden)
|
|
DRY_RUN=false
|