diff --git a/DMS/Dockerfile b/DMS/Dockerfile index 5ef59f2..eaba22a 100644 --- a/DMS/Dockerfile +++ b/DMS/Dockerfile @@ -23,9 +23,4 @@ RUN chmod +x /scripts/sync.py COPY sieve-schedule /etc/sieve-schedule # 5. Supervisor Konfiguration kopieren -COPY sieve-supervisor.conf /etc/supervisor/conf.d/sieve-sync.conf - -# --- NEU: Startup-Skript für Whitelist --- -# DMS führt Skripte in /docker-entrypoint-init.d/ beim Start automatisch aus -COPY update-whitelist.sh /docker-entrypoint-init.d/update-whitelist.sh -RUN chmod +x /docker-entrypoint-init.d/update-whitelist.sh \ No newline at end of file +COPY sieve-supervisor.conf /etc/supervisor/conf.d/sieve-sync.conf \ 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 new file mode 100644 index 0000000..a84b070 --- /dev/null +++ b/DMS/docker-data/dms/config/user-patches.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# user-patches.sh läuft bei jedem Start von DMS automatisch + +ACCOUNTS_FILE="/tmp/docker-mailserver/postfix-accounts.cf" +WHITELIST_FILE="/etc/rspamd/override.d/docker_whitelist.map" + +echo "Patching: Generiere Rspamd Whitelist aus Accounts..." + +if [ -f "$ACCOUNTS_FILE" ]; then + # Whitelist generieren + awk -F'|' '{print $1}' "$ACCOUNTS_FILE" | cut -d'@' -f2 | sort | uniq > "$WHITELIST_FILE" + + # Berechtigungen korrigieren + chmod 644 "$WHITELIST_FILE" + chown _rspamd:_rspamd "$WHITELIST_FILE" 2>/dev/null || true + + echo "Whitelist erfolgreich erstellt:" + cat "$WHITELIST_FILE" +else + echo "FEHLER: $ACCOUNTS_FILE wurde nicht gefunden!" +fi \ No newline at end of file diff --git a/DMS/update-whitelist.sh b/DMS/update-whitelist.sh deleted file mode 100644 index b3b8197..0000000 --- a/DMS/update-whitelist.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -# Pfade im Container -ACCOUNTS_FILE="/tmp/docker-mailserver/postfix-accounts.cf" -WHITELIST_FILE="/etc/rspamd/override.d/docker_whitelist.map" - -echo "Startup-Script: Generiere Rspamd Whitelist aus Accounts..." - -if [ -f "$ACCOUNTS_FILE" ]; then - # 1. Alles vor dem Pipe (|) nehmen -> user@domain.com - # 2. Alles nach dem @ nehmen -> domain.com - # 3. Sortieren und Duplikate entfernen - # 4. In die Whitelist schreiben - awk -F'|' '{print $1}' "$ACCOUNTS_FILE" | cut -d'@' -f2 | sort | uniq > "$WHITELIST_FILE" - - # Berechtigung setzen (zur Sicherheit) - chmod 644 "$WHITELIST_FILE" - - echo "Whitelist aktualisiert. Gefundene Domains:" - cat "$WHITELIST_FILE" -else - echo "WARNUNG: $ACCOUNTS_FILE nicht gefunden!" -fi \ No newline at end of file