Files
crowdsec-manager/config/crowdsec-manager.conf
2026-03-11 21:25:53 +01:00

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