#!/bin/bash # user-patches.sh laeuft bei jedem Start von DMS automatisch, # nach dem Setup und bevor die Daemons gestartet werden. SRC_BASE="/tmp/docker-mailserver/rspamd" LOCAL_D="/etc/rspamd/local.d" # --------------------------------------------------------------------------- # 1) local.d configs kopieren # DMS kopiert nur rspamd/override.d automatisch, local.d nicht. # --------------------------------------------------------------------------- echo "Patching: Kopiere custom rspamd local.d configs..." if [ -d "${SRC_BASE}/local.d" ]; then for f in "${SRC_BASE}/local.d"/*; do [ -f "$f" ] || continue base=$(basename "$f") cp "$f" "${LOCAL_D}/${base}" chown root:root "${LOCAL_D}/${base}" chmod 644 "${LOCAL_D}/${base}" echo " Kopiert: ${base} -> ${LOCAL_D}/" done fi # --------------------------------------------------------------------------- # 2) append.d: an bestehende local.d-Dateien ANHAENGEN statt sie zu ersetzen # # Zwingend fuer settings.conf: DMS legt dort selbst die Regel fuer # authentifizierte User ab (DMS::SED_TAG::1). Ein cp darueber wuerde sie # loeschen und RSPAMD_CHECK_AUTHENTICATED=0 wirkungslos machen. # # Der Marker DMS-CUSTOM-APPEND macht das Anhaengen idempotent - /etc/rspamd # liegt im Container-Dateisystem und ueberlebt einen `docker restart`. # --------------------------------------------------------------------------- echo "Patching: Haenge custom rspamd Snippets an local.d configs an..." if [ -d "${SRC_BASE}/append.d" ]; then for f in "${SRC_BASE}/append.d"/*; do [ -f "$f" ] || continue base=$(basename "$f") target="${LOCAL_D}/${base}" if grep -q 'DMS-CUSTOM-APPEND' "$target" 2>/dev/null; then echo " Bereits vorhanden, uebersprungen: ${base}" continue fi printf '\n' >>"$target" cat "$f" >>"$target" chown root:root "$target" chmod 644 "$target" echo " Angehaengt: ${base} -> ${target}" done fi # --------------------------------------------------------------------------- # HINWEIS: Die frueher hier erzeugte Rspamd-Whitelist # (/etc/rspamd/override.d/docker_whitelist.map aus postfix-accounts.cf + # statischer Domainliste) ist entfernt. Die zugehoerige multimap-Regel # DOCKER_WL (-50) und das erzwungene "no action" aus force_actions.conf gibt # es nicht mehr - sie waren ein Spoofing-Loch und haben echten Spam an # weitergeleitete Adressen durchgereicht. Ersatz: rspamd/append.d/settings.conf. # ---------------------------------------------------------------------------