rspamd
This commit is contained in:
@@ -1,47 +1,61 @@
|
||||
#!/bin/bash
|
||||
# user-patches.sh laeuft bei jedem Start von DMS automatisch
|
||||
# user-patches.sh laeuft bei jedem Start von DMS automatisch,
|
||||
# nach dem Setup und bevor die Daemons gestartet werden.
|
||||
|
||||
ACCOUNTS_FILE="/tmp/docker-mailserver/postfix-accounts.cf"
|
||||
WHITELIST_FILE="/etc/rspamd/override.d/docker_whitelist.map"
|
||||
SRC_BASE="/tmp/docker-mailserver/rspamd"
|
||||
LOCAL_D="/etc/rspamd/local.d"
|
||||
|
||||
# --- Rspamd Whitelist generieren ---
|
||||
STATIC_DOMAINS=(
|
||||
"bayarea-cc.com"
|
||||
"ruehrgedoens.de"
|
||||
"annavillesda.org"
|
||||
"bizmatch.net"
|
||||
"biz-match.com"
|
||||
"qrmaster.net"
|
||||
"nqsltd.com"
|
||||
"iitwelders.com"
|
||||
)
|
||||
|
||||
echo "Patching: Generiere Rspamd Whitelist aus Accounts + statischen Domains..."
|
||||
|
||||
{
|
||||
for domain in "${STATIC_DOMAINS[@]}"; do
|
||||
echo "$domain"
|
||||
done
|
||||
if [ -f "$ACCOUNTS_FILE" ]; then
|
||||
awk -F'|' '{print $1}' "$ACCOUNTS_FILE" | cut -d'@' -f2
|
||||
fi
|
||||
} | sort | uniq > "$WHITELIST_FILE"
|
||||
|
||||
chmod 644 "$WHITELIST_FILE"
|
||||
chown _rspamd:_rspamd "$WHITELIST_FILE" 2>/dev/null || true
|
||||
echo "Whitelist erstellt:"
|
||||
cat "$WHITELIST_FILE"
|
||||
|
||||
# --- local.d configs manuell kopieren (DMS kopiert local.d nicht automatisch) ---
|
||||
# ---------------------------------------------------------------------------
|
||||
# 1) local.d configs kopieren
|
||||
# DMS kopiert nur rspamd/override.d automatisch, local.d nicht.
|
||||
# ---------------------------------------------------------------------------
|
||||
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
|
||||
if [ -d "${SRC_BASE}/local.d" ]; then
|
||||
for f in "${SRC_BASE}/local.d"/*; 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/"
|
||||
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
|
||||
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.
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user