diff --git a/DMS/docker-data/dms/config/rspamd/local.d/multimap.conf b/DMS/docker-data/dms/config/rspamd/local.d/multimap.conf new file mode 100644 index 0000000..c7ec77c --- /dev/null +++ b/DMS/docker-data/dms/config/rspamd/local.d/multimap.conf @@ -0,0 +1,8 @@ +DOCKER_WL { + type = "from"; + filter = "email:domain"; + map = "/etc/rspamd/override.d/docker_whitelist.map"; + symbol = "DOCKER_WHITELIST"; + description = "Whitelist fuer eigene Domains"; + score = -50.0; +} \ No newline at end of file diff --git a/DMS/docker-data/dms/config/rspamd/override.d/force_actions.conf b/DMS/docker-data/dms/config/rspamd/override.d/force_actions.conf new file mode 100644 index 0000000..49c76bc --- /dev/null +++ b/DMS/docker-data/dms/config/rspamd/override.d/force_actions.conf @@ -0,0 +1,6 @@ +rules { + DOCKER_WHITELIST_FORCE { + action = "no action"; + expression = "DOCKER_WHITELIST"; + } +} \ No newline at end of file diff --git a/DMS/docker-data/dms/config/rspamd/override.d/multimap.conf b/DMS/docker-data/dms/config/rspamd/override.d/multimap.conf deleted file mode 100644 index 5664217..0000000 --- a/DMS/docker-data/dms/config/rspamd/override.d/multimap.conf +++ /dev/null @@ -1,15 +0,0 @@ -DOCKER_WL { - # Pruefe den Absender (Envelope From) gegen die Domain-Whitelist - type = "from"; - filter = "email:domain"; - - # Pfad zur Whitelist-Datei mit eigenen Domains - map = "/etc/rspamd/override.d/docker_whitelist.map"; - - symbol = "DOCKER_WHITELIST"; - description = "Whitelist fuer eigene Domains"; - - # WICHTIG: KEIN prefilter und KEIN action! - # prefilter = true + action = "accept" ueberspringt die Score-Vergabe komplett. - # Der Score wird ueber scores.conf separat definiert. -} \ No newline at end of file diff --git a/DMS/docker-data/dms/config/rspamd/override.d/scores.conf b/DMS/docker-data/dms/config/rspamd/override.d/scores.conf deleted file mode 100644 index ae3a33e..0000000 --- a/DMS/docker-data/dms/config/rspamd/override.d/scores.conf +++ /dev/null @@ -1,11 +0,0 @@ -# scores.conf - Score-Definitionen fuer custom Symbole -# Rspamd ignoriert den "score" Parameter in multimap.conf in neueren Versionen. -# Der Score MUSS hier separat definiert werden. - -symbols { - "DOCKER_WHITELIST" { - weight = -50.0; - description = "Whitelist fuer eigene Domains - reduziert Score um 50 Punkte"; - group = "local_whitelist"; - } -} \ No newline at end of file diff --git a/DMS/docker-data/dms/config/user-patches.sh b/DMS/docker-data/dms/config/user-patches.sh index 52f40bc..d1ea6e2 100755 --- a/DMS/docker-data/dms/config/user-patches.sh +++ b/DMS/docker-data/dms/config/user-patches.sh @@ -4,8 +4,7 @@ ACCOUNTS_FILE="/tmp/docker-mailserver/postfix-accounts.cf" WHITELIST_FILE="/etc/rspamd/override.d/docker_whitelist.map" -# Statische Domains, die IMMER in der Whitelist sein sollen -# (auch wenn sie keinen Account im DMS haben) +# --- Rspamd Whitelist generieren --- STATIC_DOMAINS=( "bayarea-cc.com" "ruehrgedoens.de" @@ -20,22 +19,29 @@ STATIC_DOMAINS=( echo "Patching: Generiere Rspamd Whitelist aus Accounts + statischen Domains..." { - # 1. Statische Domains ausgeben for domain in "${STATIC_DOMAINS[@]}"; do echo "$domain" done - - # 2. Dynamische Domains aus Accounts hinzufuegen (falls vorhanden) if [ -f "$ACCOUNTS_FILE" ]; then awk -F'|' '{print $1}' "$ACCOUNTS_FILE" | cut -d'@' -f2 - else - echo "WARNUNG: $ACCOUNTS_FILE nicht gefunden!" >&2 fi } | sort | uniq > "$WHITELIST_FILE" -# Berechtigungen korrigieren chmod 644 "$WHITELIST_FILE" chown _rspamd:_rspamd "$WHITELIST_FILE" 2>/dev/null || true +echo "Whitelist erstellt:" +cat "$WHITELIST_FILE" -echo "Whitelist erfolgreich erstellt:" -cat "$WHITELIST_FILE" \ No newline at end of file +# --- local.d configs manuell kopieren (DMS kopiert local.d nicht automatisch) --- +echo "Patching: Kopiere custom rspamd local.d configs..." +SRC="/tmp/docker-mailserver/rspamd/local.d" +DST="/etc/rspamd/local.d" +if [ -d "$SRC" ]; then + for f in "$SRC"/*; do + [ -f "$f" ] || continue + cp "$f" "$DST/$(basename "$f")" + chown root:root "$DST/$(basename "$f")" + chmod 644 "$DST/$(basename "$f")" + echo " Kopiert: $(basename "$f") -> $DST/" + done +fi \ No newline at end of file