Wie man Spam-Mails mit Postfix, SpamAssassin und ClamAV reduziert
Spam ist nach wie vor eines der nervigsten Probleme im E-Mail-Betrieb. Wer seinen eigenen Mailserver betreibt – insbesondere mit Virtualmin – kennt die ständige Herausforderung: Spam filtern, sicher bleiben, und gleichzeitig legitime Nachrichten zuverlässig zustellen.
In diesem Beitrag zeige ich, wie man mit Postfix, SpamAssassin und ClamAV eine robuste Anti-Spam-Konfiguration aufsetzt. Alle Konfigurationen stammen aus meinen eigenen Deployments und haben sich in der Praxis bewährt.
1. Postfix richtig konfigurieren
Postfix ist das Herzstück der Mailzustellung. Mit wenigen zusätzlichen Regeln lässt sich bereits ein großer Teil unerwünschter E-Mails abweisen, bevor sie überhaupt in SpamAssassin landen.
Öffne die Datei /etc/postfix/main.cf und ersetze:
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destinationdurch:
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
reject_invalid_hostname
reject_non_fqdn_hostname
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_unknown_sender_domain
reject_unknown_recipient_domain
reject_rbl_client zen.spamhaus.org=127.0.0.[2..11]
reject_rhsbl_sender dbl.spamhaus.org=127.0.1.[2..99]
reject_rhsbl_helo dbl.spamhaus.org=127.0.1.[2..99]
reject_rhsbl_reverse_client dbl.spamhaus.org=127.0.1.[2..99]
warn_if_reject reject_rbl_client zen.spamhaus.org=127.255.255.[1..255]
reject_rbl_client bl.spamcop.net=127.0.0.[2..11]
reject_rbl_client b.barracudacentral.org=127.0.0.2
permitDiese Konfiguration nutzt mehrere RBL-Listen (Realtime Blackhole Lists), um bekannte Spam-Absender sofort zu blockieren.
Danach Postfix und SpamAssassin neu laden:
sudo systemctl reload postfix
sudo systemctl reload spamassassin
# oder je nach System
sudo systemctl restart spamd2. SpamAssassin optimieren
SpamAssassin bewertet jede eingehende Nachricht und vergibt Spam-Scores. Mit ein paar Einstellungen bekommt der Filter deutlich bessere Ergebnisse.
Füge in /etc/spamassassin/local.cf folgendes hinzu:
required_score 4.0
use_bayes 1
use_bayes_rules 1
use_auto_whitelist 1
bayes_auto_learn 1
skip_rbl_checks 0Besonders wichtig:
Bayes-Learning aktivieren und dafür sorgen, dass RBL-Checks nicht übersprungen werden.
Danach SpamAssassin neustarten:
sudo systemctl reload spamassassin
# oder
sudo systemctl restart spamd2.1. Training des Bayes-Filters
Der Bayes-Filter lernt durch Beispiele. Je besser er gefüttert wird, desto präziser trennt er später Spam von echten Nachrichten.
Sortiere dafür in deinem Mailclient Spam manuell in deinen Spam-Ordner – anschließend trainierst du den Filter:
sudo sa-learn --spam /home/*/Maildir/.spam/{cur,new} --sync
sudo sa-learn --ham /home/*/Maildir/.ham/{cur,new} --syncFalls du stattdessen .Spam und .Ham verwendest:
sudo sa-learn --spam /home/*/Maildir/.Spam/{cur,new} --sync
sudo sa-learn --ham /home/*/Maildir/.Ham/{cur,new} --syncDen Lernstatus kannst du prüfen mit:
sudo sa-learn --dump2. ClamAV erweitern (SaneSecurity)
ClamAV prüft eingehende Mailanhänge auf Malware. Mit den Standard-Signaturen ist das schon nicht schlecht – aber es geht besser.
Die freien SaneSecurity-Signaturen erhöhen die Erkennungsrate deutlich.
Backup der bestehenden DB
sudo tar -czpf "/root/clamav-db-backup-$(date +%Y%m%d_%H%M%S).tar.gz" -C /var/lib clamavSaneSecurity-DB herunterladen
sudo rsync -av --delete rsync://rsync.sanesecurity.net/sanesecurity /var/lib/clamav
sudo chown -R clamav:clamav /var/lib/clamav/ClamAV neu starten:
sudo systemctl restart clamav-daemonAutomatisieren per Cronjob
0 */6 * * * root rsync -av --delete rsync://rsync.sanesecurity.net/sanesecurity /var/lib/clamav && chown -R clamav:clamav /var/lib/clamav && systemctl restart clamav-daemonDamit bleiben die Virensignaturen immer frisch – ganz ohne manuelles Eingreifen.
Fazit
Mit dieser Kombination aus Postfix-RBLs, gut konfiguriertem SpamAssassin und erweiterten ClamAV-Signaturen erreichst du eine deutliche Reduzierung von Spam und Schadsoftware im Mailverkehr. Die Konfiguration ist schnell umgesetzt und lässt sich jederzeit weiter verfeinern, etwa durch zusätzliche RBLs, individuelle SpamAssassin-Regeln oder automatisiertes Bayes-Training.
Wer einen zuverlässigen Mailserver betreiben will, sollte diese Best Practices als Basis einsetzen und regelmäßig überprüfen.