Spamfilter
Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei alternative Möglichkeiten:
1. Die Nutzung der "xmailin"-Server für eine komplette Domain
2. Die Einrichtung von Spamassassin für das persönliche Postfach
3. Nutzung der Spam-Appliance "SecureMX" für eine komplette Domain
Alternative 1: Maileingangsserver mit Spamfilter nutzen
Diese Alternative kann von einer Domain-Administration oder vom "Webmaster on Demand" für eine oder mehrere E-Mail-Domains eingerichtet werden. Ein globaler Sieve-Filter für markierte Spam-Nachrichten ist in der Standard-Konfiguration voreingestellt, so dass Nachrichten mit Spam-Bewertung in einen vorhandenen Spam-Ordner einsortiert werden.
Seit einigen Jahren betreibt Hostsharing zusätzlich zu den vorkonfigurierte Maileingangsservern einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Anfang 2026 ist eine Gruppe von Eingangsserver mit der Software "rspamd" hinzugekommen. Eingehende Nachrichten mit Malware oder sehr hoher Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem geringeren Spam-Score werden angenommen und zugestellt. Spamassassin fügt die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:
X-Spam-Status: Yes, score=11.29
Der globale Sieve-Filter schiebt Nachrichten mit der Markierung "X-Spam-Status: Yes" in einen Ordner "Junk", wenn der Ordner vorhanden ist. Viele Mailprogramme legen beim ersten Verbinden mit dem IMAP-Server einen solchen Ordner an. Unser "Roundcube" unter https://webmail.hostsharing.net ist entsprechend eingerichtet, so dass der Ordner nach einer Nutzung von Webmail vorhanden ist.
Eingangsserver konfigurieren
Die Maileingangsserver mit Rspamd lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.
Im Zonefile entfällt der Platzhalter "{MX_RR}". Stattdessen werden die folgenden MX-Records eingefügt:
{DOM_HOSTNAME}. IN MX 30 xmailin1.hostsharing.net.
{DOM_HOSTNAME}. IN MX 30 xmailin2.hostsharing.net.
{DOM_HOSTNAME}. IN MX 30 xmailin3.hostsharing.net.
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/ Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den "Webmaster on Demand" beauftragen.
Die Änderung des Zonefile kann für eine Domain "hs-example.de" wie folgt überprüft werden:
dig +short -t MX hs-example.de @dns1.hostsharing.net
Die folgende Ausgabe wird erwartet:
30 xmailin2.hostsharing.net.
30 xmailin3.hostsharing.net.
30 xmailin1.hostsharing.net.
Die Reihenfolge der drei Eingangsserver kann variieren. Die führende Zahl ist die Priorität im MX-Record (hier der Wert "30").
Den Filter trainieren
Wer auch am Trainieren des Filters mitwirken möchte, sendet eine Liste von Benutzernamen xyz00-example (das ist der E-Mail-Benutzername) an die E-Mail-Adresse service (at) hostsharing (dot) net.
SPAM
Du verschiebst eine E-Mail von einem beliebigem Ordner in den Spam-Ordner (Junk). Zukünftige E-Mails dieser Art werden bei der SPAM-Abwehr beachtet. Jetzt kannst du die betreffende E-Mail nach belieben löschen.
Kein SPAM
Du verschiebst eine E-Mail aus dem Spam-Ordner (Junk) in den Posteingang. Zukünftige E-Mails dieser Art werden bei der SPAM-Abwehr ignoriert. Jetzt kannst du die betreffende E-Mail nach belieben weiter verschieben oder in anderer Art verwalten.
Gemeinschafts-Training
Das Training erfolgt gemeinschaftlich für die ganze Genossenschaft. Bitte verschiebe Newsletter nicht in den Spam-Ordner (Junk). Melde dich stattdessen ab und lösche die E-Mail. Nur weil du den Newsletter der Firma Xyz nicht mehr magst, soll er für andere Benutzer nicht automatisch als Spam erkannt werden.
Konfiguration pro Domain
Die E-Mails werden vom Spamfilter auf verschiedene Kriterien geprüft, für die dann Punkte vergeben werden. Manche Eigenschaften sind positiv, andere sind negativ. Am Ende ergibt das eine Punktzahl.
Voreingestellt ist:
- ab einer Gesamt-Punktzahl von 5 wird die E-Mail als Spam kategorisiert, und wandert in den Spam-Ordner (Junk).
- ab einer Gesamt-Punktzahl von 15 wird die E-Mail direkt abgewiesen, und der Absender erhält von seinem E-Mail-Server eine Unzustellbarkeitsbenachrichtigung.
Wir können diese Punktzahlen pro Domain konfigurieren. Das geht leider noch nicht im HSAdmin, daher bitte eine E-Mail an den Hostsharing Service schicken.
Ebenso können einzelne Kriterien pro Domain abgeschaltet werden. Wenn z.B. in Ihren Geschäftsemails oft hohe Euro Beträge vorkommen, wollen Sie vielleicht das Symbol LOTS_OF_MONEY für die Domain meinefirma.de ignorieren. Dann bitte ebenfalls eine E-Mail an den Hostsharing Service schreiben, und wir stellen das für die Domain ein.
Alternative 2: Persönlichen Spamfilter einrichten
Hier geht es darum, wie Personen mit (grundlegenden) Kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können. Spamassassin kann für jedes Postfach individuell konfiguriert werden. Für die Einrichtung und Pflege ist Shell-Zugang zur Mailbox erforderlich.
Ein Bayesfilter kann mit den persönlichen Nachrichten angelernt werden. Dazu sind tiefergehende Shell-Kenntnisse erforderlich (Shell-Skript und Einrichtung eines systemd-Timers).
Spamassassin Konfigurieren
Der Spamfilter "Spamassassin" ist bei HS vorinstalliert. Es muss über das Kommando "spamc", das Kommando zur Nutzung des Spamassassin-Daemon, in der Datei ".forward" eines Mail-Users aufgerufen werden:
"|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver"
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm "deliver" aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis "$HOME/.spamassassin" an. Die Konfiguration erfolgt in der Datei "$HOME/.spamassassin/user_prefs".
Konfigurationsbeispiel:
required_score 4.0
report_safe 0
use_bayes 1
bayes_auto_learn 1
skip_rbl_checks 0
use_razor2 1
use_pyzor 1
Bayesfilter anlernen
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen
sa-learn --spam <platzhalter-spam-nachricht-oder-verzeichnis>
sa-learn --ham <platzhalter-erwünschte-nachricht-oder-verzeichnis>
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:
#!/bin/bash
HAM_MIN_AGE_DAYS=5
MAILDIR_HAM=${HOME}/Maildir/cur
TMPDIR=${HOME}/sa-learn-tmp
SPAMFOLDER=Junk
SPAMFOLDER_LEARNED=${SPAMFOLDER}.sa-learned
MAILDIR_SPAM=${HOME}/Maildir/.${SPAMFOLDER}
# Learn spam from MAILDIR_SPAM
mkdir -p ${TMPDIR}/spam
rm -f ${TMPDIR}/spam/*
SPAM_COUNT=0
for DIR in "cur" "new"; do
DIR="${MAILDIR_SPAM}/${DIR}"
cd ${DIR}
# echo "---" DIR ${DIR}
for SPAMFILE in $( ls ); do
# echo " " ${SPAMFILE}
TMPFILE="${TMPDIR}/spam/${SPAMFILE}"
if ! zcat "${SPAMFILE}" > "${TMPFILE}" 2>/dev/null; then
cp "${SPAMFILE}" "${TMPFILE}"
fi
SPAM_COUNT=$((SPAM_COUNT + 1))
done
done
sa-learn --spam ${TMPDIR}/spam/*
# Move processed spam to keep it in another folder
doveadm move -u $(whoami) INBOX.${SPAMFOLDER_LEARNED} mailbox INBOX.${SPAMFOLDER} all 2>/dev/null
# Learn ham from MAILDIR_HAM (> HAM_MIN_AGE_DAYS days; max. 2x spam count)
mkdir -p ${TMPDIR}/ham
rm -f ${TMPDIR}/ham/*
cd ${MAILDIR_HAM}
MAX_HAM=$((SPAM_COUNT * 2))
HAM_COUNT=0
for HAMFILE in $( find . -type f -mtime +${HAM_MIN_AGE_DAYS} -printf '%T@ %p\n' | sort -rn | cut -d' ' -f2- | head -n ${MAX_HAM} ); do
TMPFILE="${TMPDIR}/ham/${HAMFILE}"
if ! zcat "${HAMFILE}" > "${TMPFILE}" 2>/dev/null; then
cp "${HAMFILE}" "${TMPFILE}"
fi
HAM_COUNT=$((HAM_COUNT + 1))
done
sa-learn --ham ${TMPDIR}/ham/*
echo "Training erfolgte mit ${SPAM_COUNT} Spam, ${HAM_COUNT} (max ${MAX_HAM}) Ham Mails."
Dabei werden Mails verarbeitet, unabhängig davon, ob sie durch Procmail (unkomprimiert) oder über den Mailclient (komprimiert) verschoben vorliegen. Für Ham wird ein Teil des Inhalts der Inbox verwendet, wobei die empfohlene Maximalanzahl von zweimal der Spammailanzahl und ein minimales Alter in Tagen gilt. Das Mindestalter garantiert ein inzwischen erfolgtes manuelles Aussortieren des Spams. Der verarbeitete Spam wird anschließend in ein separates Verzeichnis verschoben um den späteren Zugriff auf False Positives zu ermöglichen.
Das Skript wird über einen systemd-Timer täglich ausgeführt, der pro Mailbox eingerichtet werden muss.
Alternative 3: SecureMX zubuchen
Über unseren Domain-Anbieter "Partnergate" bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate "SecureMX": https://www.hostsharing.net/loesungen/email/spam-abwehr/
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch vom Hostsharing-Service eingerichtet.
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und proprietäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.