Ich habe mich in den letzten Tagen intensiv mit Proxmox MG beschäftigt und fand die Anleitung nicht immer hilfreich.
Mein Spam wird um 95% reduziert, dabei möchte ich hier erklären, was ich ggü. der Out of the Box Installation verändert habe, um das zu erreichen. Das ist aus meiner Sicht etwas, was in vielen Anleitungen zu kurz kommt.
Danke an das Proxmox Team für dieses hervorragende Produkt und danke an alle, auf deren Kommentare und Empfehlungen hin ich Dinge umgesetzt habe. Kommentieren erwünscht, wenn euch dieser Beitrag gefällt, lasst mir ein Abo und ein Like ... Spaß.
Meine Politik dabei ist, dass E-Mails gar nicht erst angenommen werden, wenn sie Spam sind, denn das größte Übel ist aus meiner Sicht, dass false positives, die in meinem Spam Ordner untergehen vom Sender als zugestellt geglaubt werden. Das schützt natürlich nicht davor, wenn bestellte Konzertkarten o.ä. bei mir nicht ankommen, weil der Absender seinen Mailserver nicht im Griff hat. Die Konzertkarten sind dann vermutlich 'weg' und erfordern erhebliche Nacharbeit. Ein Manko von "ich nehme deinen Kram nicht an".
Basiskonfiguration Proxmox Mail Gateway
====================================
Configuration -> Mail Proxy -> Relay Domains:
Eintragen meiner Domains
# E-Mails, die an diese Domains gehen, werden von Proxmox überhaupt aktzeptiert
Configuration -> Mail Proxy -> Options:
# Message Size (bytes): 104857600
Deutlich erhöhen, sonst gibt es Probleme mit Spam und DKIM Signaturen bei großen E-Mails.
Reject Unknown Clients: No
# Der rdns des Servers muss korrekt gesetzt sein. Geht in 98% gut, aber in 2% haben kleine Admins ihre Umgebung nicht korrekt gepflegt, die haben dann keine Chance euch Mails zu senden. Das greift vor jeglicher Whitelist. Daher besser ausgeschaltet lassen.
Reject Unknown Senders: Yes
# Die Absenderdomain muss existieren, damit die E-Mail angenommen wird. E-Mails von 'ausgedachten' Absenderdomains werden temporär rejected (4xx error code). Das macht ca. 20% der Spams aus, die nicht Gefahr laufen, im SA (Spamassassin) durchzurutschen. In ca. 1 % der Fälle schlägt die Prüfung fehl, dann wird die E-Mail 5 min später beim nächsten Einsendeversuch akzeptiert. In manchen Fällen wird die E-Mail von Spammern über 100x eingeliefert und nie akzeptiert, das nervt leider ein wenig.
Verify Receivers: Yes (550)
# Sicherstellung, dass E-Mails an unbekannte Mailkonten gar nicht erst angenommen werden. Ansonsten gibt es Bounces von eurem E-Mail Server zum Proxmox, die beim Proxmox verbleiben, von denen der Versender jedoch nichts erfährt.
# Edit: Ich hatte einige Versuche, E-Mail Adressen von Geschäftsführern zu erraten. Absender waren ein unfassbar großes Botnetz aus der ganzen Welt (jeder Versuch über einen anderen Server). Ich bin daher dazu übergegangen, das auszuschalten und eine ungelesene Catchall Adresse einzurichten. Nachteil: Tippfehler im Empfänger bekommt der seriöse Versender nicht mehr mit)
Use Greylisting for IPv4: No
# Greylisting verzögert die Annahme teilweise erheblich, was sehr schlecht bei Kontoverifizierungs E-Mails ist. Leider beherrscht PMG nicht die Möglichkeit, nur E-Mails mit fragwürdigem Spamscsore temporär zu rejecten, wie es rspamd beherrscht. In der hier gebotenen Qualität des Sendertripplets ist es aus meiner Sicht unbrauchbar.
Use SPF: (Yes)
# E-Mails mit falscher SPF werden abgelehnt. Habe ich bisher wenig Probleme mit, könnte aber durchaus mal problematisch sein. Gewisses Risko.
Before Queue Filtering: Yes
# Kernanliegen, denn nachträgliche "NDRs on Blocked E-Mails" sind selbst Spam.
Configuration -> Mail Proxy -> Transports:
Eintragen meines Mailservers
<domain> -> Host: 172.30.0.3, use MX: No
# MX: No -> Weil der MX auf das PMG zeigt
Configuration -> Spam Detector -> Options:
Max Spam Size (bytes): 104857600
# Muss gleich sein wie unter Mail Proxy.
Mail Filter:
Block Spam (Level 10) aktivieren: Mails mit hoher Spam Wahrscheinlichkeit sollen direkt abgelehnt werden.
Mark Spam und Quarantäne nach eigenen Vorstellungen konfigurieren.
Installation und Konfiguration wirksamer Mailfilter
===========================================
Die Reihenfolge der hier angegebenen Filter hat eine Bedeutung. Die hier zuerst behandelten Filter filtern die Mail früher heraus und benötigen dafür deutlich weniger CPU Last als spätere SA-Filter.
Gleichzeitig haben die hier früh in der Anleitung behandelten filter eine höhere Sensitivität (d.h.: eine geringere false-positive Quote).
Man kann daher die Anleitung erst einmal nur zum Teil abarbeiten und erzielt dann schon recht gute Ergebnisse.
Unabhängig davon ist aber das Tuning der Custom Scores am Ende des ersten Beitrags aus meiner Sicht wichtig, das ist ja gerade der Kern des PMG.
Filter vor der Übermittlung von Mailheader ('rejected')
Mails, die an dieser Stelle abgewiesen werden, stehen im Tracking Center als rejected mit schwarzem Kreuz Symbol. An dieser Stelle liegen keinerlei Informationen des E-Mail Headers vor, außer dem Sende-Server (HELO + IP), Envelope-From und Empfänger. Es greifen hier sämtliche Welcome-Lists innerhalb des PMG noch nicht.
DNS-Blocklists (DNSBL):
(Filtert ca. 50 % eures Spam)
Configuration -> Spam Detector -> Options:
Use RBL checks: Yes
Wir benötigen "unbound" für rekursive DNS Anfragen, das ist bei allen DNSBL notwendige Voraussetzung.
Editieren der /etc/resolv.conf
bei LXC Containern stattdessen: Über Proxmox VE in den DNS Optionen setzen
Configuration -> Mail Proxy -> Options:
Bei Spamhaus muss ein Account erstellt werden und die individuelle DQS ID eingefügt werden. Alle anderen sind ohne Registrierung nutzbar.
DNSBL Sites:
<ID>.zen.dq.spamhaus.net
b.barracudacentral.org
bl.mailspike.net
all.spamrats.com
dnsbl-1.uceprotect.net
Filter nach der Übermittlung von Mailheader, vor der Übermittlung von Mailbody ('rejected')
Mails, die an dieser Stelle abgewiesen werden, stehen im Tracking Center als rejected mit schwarzem Kreuz Symbol. An dieser Stelle liegt der äußere Header der E-Mail vor, Envelope-From, Empfänger und weitere Header der E-Mail, aber noch kein Subject oder (Body-)From.
Die Welcomelist unter Configuration -> Mail Proxy -> Welcomelist sollte diesen Service überschreiben (getestet habe ich das nicht), weil diese in die Postfix senderaccess ausgeführt wird. Die Mail Filter -> Who Object -> Welcomelist wird erst im SA berücksichtigt – die hat hier keine Wirkung.
Google Spam beherrschen: Dauerausnahme in allen DNSBL
(Filtert ca. 25 % eures Spam)
Google sendet auf mehreren Ebenen Spam, welchen wir mit der folgenden Anleitung direkt im Postfix/Postscreen rejecten.
- firebaseapp.com (Google Service) verschickt ausschließlich Spam und
- firebase-Authorisierte Dienste: Senden über Google Server mit eigener Domain. Erkennt man darin, dass der authorisierende SPF Eintrag _sfp.firebasemail.com ist.
- Google Groups:
Spammer nutzen Google Groups Listen, weil sie kein Opt-In des Empfängers benötigen und Mailinglisten standardmäßig seitens Spamassassin einen Score von "-1.0" zugewiesen bekommen. Neben den eigentlichen Spams erreichen einen auch NDRs oder wütende Antworten von Empfängern.
- Google Usercontent:
Server von Google, der nur Spam versendet
All diese Dienste kann man sehr früh in Postfix blockieren. Bonus: Da Google als Absender prinzipiell nicht auf den DNSBL des vorigen Kapitels steht, gibt es hier keine Überlappung der Filter, also ja: mit den DNSBL und diesem Google-Filter sind 75% des Spamaufkommens wirksam und nahezu ohne false-positive heraus gefiltert! Beschreibung hier:
Ich persönlich nutze die dort vorhandene erweiterte Version mit Autoblacklist. Hiermit werden Domains, von denen nur Mist kam schon im Postfix blockiert.
Filter nach der Übermittlung von Mailbody ('blocked')
Ab hier liegt der vollständige Mailbody vor und wird in die Spamassassin Filterqueue gesendet. Hier beginnen die CPU-lastigen Filter. E-Mails werden im before-queue-filtering nach wie vor 'rejected', d.h. die Annahme wird verweigert und der Absender bekommen eine entsprechende Meldung von ihrem eigenen Mailserver.
Im Tracking Center stehen diese E-Mails als 'blocked' mit roter Hinterlegung.
Rspamd als CustomCheck integrieren
Rspamd bringt eine eigene Filterlogik mit und bietet weitreichende Funktionen (u.a. gut funktionierendes Greylisting), welches wir hier allerdings alles brach liegen lassen.
Wir nutzen ausschließlich den CustomScore, der sich zu unserem SA Score addiert.
Beschreibung zur Einrichtung hier:
Razor
Razor muss im PMG aktiviert werden
Configurations -> Spam Detector -> Options:
Use Razor2 checks: Yes
Und zusätzlich auf der Konsole einmalig registriert werden:
Der Default Score ist viel zu niedrig, also erhöhen wir diesen:
Configurations -> Spam Detector -> Custom Scores:
RAZOR2_CF_RANGE_51_100 : 8
RAZOR2_CHECK : 8
-> Apply Scores nicht vergessen
Pyzor
Pyzor empfehle ich als Erweiterung zu Razor2. Beide stammen aus der gleichen Entwicklungslinie, besitzen jedoch andere Datenbanken und finden daher auch unterschiedliche Mails.
/etc/pmg/templates/init.pre.in editieren und folgendes einfügen
/etc/pmg/spamassassin/local.cf editieren und folgendes einfügen
Template Synchronisieren und PMG neustarten
Der Default Score ist viel zu niedrig, also erhöhen wir diesen:
Configurations -> Spam Detector -> Custom Scores:
PYZOR_CHECK : 8
-> Apply Scores nicht vergessen
Spamhausintegration in Spamassassin
Spamhaus bietet nicht nur die DNSBL (Ausschließlich Blockierung unseriöser Absender-IPs), sondern auch eine Spamassassin Integration, die manuell nachinstalliert werden muss und u.a. Inhaltsfilterung machen, z.B. Links im E-Mail Body zu bekannten Blacklist-Domains enthalten. Sie liefern (analog zu Pyzor und Razor) gute und sichere Funde. Die Filter im Tracking-Center beginnen alle mit SH.
Anleitung von hier: https://github.com/spamhaus/spamassassin-dqs?tab=readme-ov-file#instructions-for-spamassassin-400
Achtung: Hier muss ihr Spamhaus DQ-Key eingefügt werden.
Edit sh.pre with your editor of choice, and look at the first line
You will need to replace <config_directory> with your actual configuration directory /etc/mail/spamassassin, the line will become:
If your key is not HBL enabled, this is what needs to be done:
Scores sind alle schon sehr hoch gesetzt, Custom Scores sind daher nicht notwendig.
Geoblocking
Ich setze für einige Länder 7 Punkte, für andere 4, für Deutschland sogar -3. Der Rest (EU, USA) erhält gar keinen Score, also 0.
(This product includes GeoLite2 Data created by MaxMind, available from https://www.maxmind.com)
GeoIP Perl Modul installieren und Datenbank in spezifisches Verzeichnis herunterladen
Ich gehe davon aus, dass ihr die init.pre-in bereits im lokalen Templateordner habt, weil wir sie für pyzor bereits anpassen mussten, ansonsten von /var/lib/templates nach /etc/pmg/templates kopieren.
/etc/pmg/templages/init.pre.in bearbeiten und folgende Zeile einkommentieren
Eintrag in die /etc/mail/spamassassin/custom.cf
PMG Config syncen (Dann wird das hier verwendete Template angewendet)
Testen, ob es funktioniert, oder ob GeoIP einen Fehler wirft. Im optimalen Fall seht ihr einen RELAYCOUNTRY Eintrag (das ist aber nicht zwangsweise so, wenn kein Score verteilt wird)
Weitere Blocklisten
Die folgenden Listen finden sehr viel Spam, analog zu Pyzor, Razor2 und Spamhaus, daher nicht minder wichtig, hier die Scores zu erhöhen
Configuration -> Spam Detector -> Custom Scores
Blacklistfilter analog zu Pyzor, Razor, Spamhaus
RCVD_IN_MSPIKE_BL : 8
URIBL_ABUSE_SURBL : 8
URIBL_BLACK : 8
URIBL_CT_SURBL : 8
URIBL_PH_SURBL : 4
URI_WP_HACKED_2 : 4
RCVD_IN_BL_SPAMCOP: 3
Apply Score nicht vergessen!
Weitere Filter
Ebenfalls bereits integriert und scharf geschaltet werden sollten:
Spam-Merkmale:
T_TVD_MIME_EPI : 8
GB_STORAGE_GOOGLE_HTM : 6
KAM_STORAGE_GOOGLE : 6
AC_BR_BONANZA : 6
FSL_BULK_SIG : 6
FORGED_OUTLOOK_HTML : 6
FREEMAIL_FORGED_REPLY : 6
FROMSPACE : 4
KAM_LAZY_DOMAIN_SECURITY : 4
Datum falsch:
DATE_IN_PAST_03_06 : 6
DATE_IN_PAST_06_12 : 6
DATE_IN_PAST_12_24 : 6
DATE_IN_PAST_24_48 : 6
DATE_IN_PAST_48_72 : 6
Absender Auffälligkeiten:
RCVD_HELO_IP_MISMATCH : 6
FROM_FMBLA_NEWDOM: 6
FROM_FMBLA_NEWDOM14: 6
FROM_FMBLA_NEWDOM28 : 6
T_SPF_PERMERROR : 6
SPF_SOFTFAIL : 4
MAILING_LIST_MULTI : 4
gute Whitelist:
DKIMWL_WL_HIGH : -6
Die folgenden Filter sorgten bei mir für Fehlfilterungen, deshalb habe ich einen Score von 0 zugewiesen:
SPF_HELO_NONE : 0
KAM_MARKSPAM : 0
HTTPS_HTTP_MISMATCH : 0
DEAR_SOMETHING : 0
Apply Score nicht vergessen!
Problematische Blocklisten deaktivieren
Validity reputation Listen machen nur Stress und filtern nicht wirklich. Man sollte sie in der custom.cf deaktivieren
Eintrag in die /etc/mail/spamassassin/custom.cf
Filter kompilieren
Damit die Filter schneller abgearbeitet werden, sollten sie kompiliert werden. Wir benötigen hierzu ein paar Pakete und ein Moduleintrag in der custom.cf von Spamassassin.
Eintrag in die /etc/mail/spamassassin/custom.cf
Danach kompilieren und am Ende Spamassassin neustarten mit:
Mein Spam wird um 95% reduziert, dabei möchte ich hier erklären, was ich ggü. der Out of the Box Installation verändert habe, um das zu erreichen. Das ist aus meiner Sicht etwas, was in vielen Anleitungen zu kurz kommt.
Danke an das Proxmox Team für dieses hervorragende Produkt und danke an alle, auf deren Kommentare und Empfehlungen hin ich Dinge umgesetzt habe. Kommentieren erwünscht, wenn euch dieser Beitrag gefällt, lasst mir ein Abo und ein Like ... Spaß.
Meine Politik dabei ist, dass E-Mails gar nicht erst angenommen werden, wenn sie Spam sind, denn das größte Übel ist aus meiner Sicht, dass false positives, die in meinem Spam Ordner untergehen vom Sender als zugestellt geglaubt werden. Das schützt natürlich nicht davor, wenn bestellte Konzertkarten o.ä. bei mir nicht ankommen, weil der Absender seinen Mailserver nicht im Griff hat. Die Konzertkarten sind dann vermutlich 'weg' und erfordern erhebliche Nacharbeit. Ein Manko von "ich nehme deinen Kram nicht an".
Basiskonfiguration Proxmox Mail Gateway
====================================
Configuration -> Mail Proxy -> Relay Domains:
Eintragen meiner Domains
# E-Mails, die an diese Domains gehen, werden von Proxmox überhaupt aktzeptiert
Configuration -> Mail Proxy -> Options:
# Message Size (bytes): 104857600
Deutlich erhöhen, sonst gibt es Probleme mit Spam und DKIM Signaturen bei großen E-Mails.
Reject Unknown Clients: No
# Der rdns des Servers muss korrekt gesetzt sein. Geht in 98% gut, aber in 2% haben kleine Admins ihre Umgebung nicht korrekt gepflegt, die haben dann keine Chance euch Mails zu senden. Das greift vor jeglicher Whitelist. Daher besser ausgeschaltet lassen.
Reject Unknown Senders: Yes
# Die Absenderdomain muss existieren, damit die E-Mail angenommen wird. E-Mails von 'ausgedachten' Absenderdomains werden temporär rejected (4xx error code). Das macht ca. 20% der Spams aus, die nicht Gefahr laufen, im SA (Spamassassin) durchzurutschen. In ca. 1 % der Fälle schlägt die Prüfung fehl, dann wird die E-Mail 5 min später beim nächsten Einsendeversuch akzeptiert. In manchen Fällen wird die E-Mail von Spammern über 100x eingeliefert und nie akzeptiert, das nervt leider ein wenig.
Verify Receivers: Yes (550)
# Sicherstellung, dass E-Mails an unbekannte Mailkonten gar nicht erst angenommen werden. Ansonsten gibt es Bounces von eurem E-Mail Server zum Proxmox, die beim Proxmox verbleiben, von denen der Versender jedoch nichts erfährt.
# Edit: Ich hatte einige Versuche, E-Mail Adressen von Geschäftsführern zu erraten. Absender waren ein unfassbar großes Botnetz aus der ganzen Welt (jeder Versuch über einen anderen Server). Ich bin daher dazu übergegangen, das auszuschalten und eine ungelesene Catchall Adresse einzurichten. Nachteil: Tippfehler im Empfänger bekommt der seriöse Versender nicht mehr mit)
Use Greylisting for IPv4: No
# Greylisting verzögert die Annahme teilweise erheblich, was sehr schlecht bei Kontoverifizierungs E-Mails ist. Leider beherrscht PMG nicht die Möglichkeit, nur E-Mails mit fragwürdigem Spamscsore temporär zu rejecten, wie es rspamd beherrscht. In der hier gebotenen Qualität des Sendertripplets ist es aus meiner Sicht unbrauchbar.
Use SPF: (Yes)
# E-Mails mit falscher SPF werden abgelehnt. Habe ich bisher wenig Probleme mit, könnte aber durchaus mal problematisch sein. Gewisses Risko.
Before Queue Filtering: Yes
# Kernanliegen, denn nachträgliche "NDRs on Blocked E-Mails" sind selbst Spam.
Configuration -> Mail Proxy -> Transports:
Eintragen meines Mailservers
<domain> -> Host: 172.30.0.3, use MX: No
# MX: No -> Weil der MX auf das PMG zeigt
Configuration -> Spam Detector -> Options:
Max Spam Size (bytes): 104857600
# Muss gleich sein wie unter Mail Proxy.
Mail Filter:
Block Spam (Level 10) aktivieren: Mails mit hoher Spam Wahrscheinlichkeit sollen direkt abgelehnt werden.
Mark Spam und Quarantäne nach eigenen Vorstellungen konfigurieren.
Installation und Konfiguration wirksamer Mailfilter
===========================================
Die Reihenfolge der hier angegebenen Filter hat eine Bedeutung. Die hier zuerst behandelten Filter filtern die Mail früher heraus und benötigen dafür deutlich weniger CPU Last als spätere SA-Filter.
Gleichzeitig haben die hier früh in der Anleitung behandelten filter eine höhere Sensitivität (d.h.: eine geringere false-positive Quote).
Man kann daher die Anleitung erst einmal nur zum Teil abarbeiten und erzielt dann schon recht gute Ergebnisse.
Unabhängig davon ist aber das Tuning der Custom Scores am Ende des ersten Beitrags aus meiner Sicht wichtig, das ist ja gerade der Kern des PMG.
Filter vor der Übermittlung von Mailheader ('rejected')
Mails, die an dieser Stelle abgewiesen werden, stehen im Tracking Center als rejected mit schwarzem Kreuz Symbol. An dieser Stelle liegen keinerlei Informationen des E-Mail Headers vor, außer dem Sende-Server (HELO + IP), Envelope-From und Empfänger. Es greifen hier sämtliche Welcome-Lists innerhalb des PMG noch nicht.
DNS-Blocklists (DNSBL):
(Filtert ca. 50 % eures Spam)
Configuration -> Spam Detector -> Options:
Use RBL checks: Yes
Wir benötigen "unbound" für rekursive DNS Anfragen, das ist bei allen DNSBL notwendige Voraussetzung.
Code:
apt install unbound
Editieren der /etc/resolv.conf
Code:
nameserver 127.0.0.1
bei LXC Containern stattdessen: Über Proxmox VE in den DNS Optionen setzen
Configuration -> Mail Proxy -> Options:
Bei Spamhaus muss ein Account erstellt werden und die individuelle DQS ID eingefügt werden. Alle anderen sind ohne Registrierung nutzbar.
DNSBL Sites:
<ID>.zen.dq.spamhaus.net
b.barracudacentral.org
bl.mailspike.net
all.spamrats.com
dnsbl-1.uceprotect.net
Filter nach der Übermittlung von Mailheader, vor der Übermittlung von Mailbody ('rejected')
Mails, die an dieser Stelle abgewiesen werden, stehen im Tracking Center als rejected mit schwarzem Kreuz Symbol. An dieser Stelle liegt der äußere Header der E-Mail vor, Envelope-From, Empfänger und weitere Header der E-Mail, aber noch kein Subject oder (Body-)From.
Die Welcomelist unter Configuration -> Mail Proxy -> Welcomelist sollte diesen Service überschreiben (getestet habe ich das nicht), weil diese in die Postfix senderaccess ausgeführt wird. Die Mail Filter -> Who Object -> Welcomelist wird erst im SA berücksichtigt – die hat hier keine Wirkung.
Google Spam beherrschen: Dauerausnahme in allen DNSBL
(Filtert ca. 25 % eures Spam)
Google sendet auf mehreren Ebenen Spam, welchen wir mit der folgenden Anleitung direkt im Postfix/Postscreen rejecten.
- firebaseapp.com (Google Service) verschickt ausschließlich Spam und
- firebase-Authorisierte Dienste: Senden über Google Server mit eigener Domain. Erkennt man darin, dass der authorisierende SPF Eintrag _sfp.firebasemail.com ist.
- Google Groups:
Spammer nutzen Google Groups Listen, weil sie kein Opt-In des Empfängers benötigen und Mailinglisten standardmäßig seitens Spamassassin einen Score von "-1.0" zugewiesen bekommen. Neben den eigentlichen Spams erreichen einen auch NDRs oder wütende Antworten von Empfängern.
- Google Usercontent:
Server von Google, der nur Spam versendet
All diese Dienste kann man sehr früh in Postfix blockieren. Bonus: Da Google als Absender prinzipiell nicht auf den DNSBL des vorigen Kapitels steht, gibt es hier keine Überlappung der Filter, also ja: mit den DNSBL und diesem Google-Filter sind 75% des Spamaufkommens wirksam und nahezu ohne false-positive heraus gefiltert! Beschreibung hier:
Google operates several services that are commonly abused for sending spam. The following sections describe each service and the filtering strategies used.
Firebasemail / Firebaseapp
Firebase is a Google-hosted platform that is frequently exploited for sending unsolicited email.- Emails sent directly through Firebase use the domain firebaseapp.com and can be blocked by sender domain.
- Some senders use Firebase with their own custom domains, making direct domain blocking ineffective. However, these senders can still be identified early: their domain's SPF record (DNS TXT)...
- ivenae
- Replies: 1
- Forum: Mail Gateway: Installation and configuration
Ich persönlich nutze die dort vorhandene erweiterte Version mit Autoblacklist. Hiermit werden Domains, von denen nur Mist kam schon im Postfix blockiert.
Filter nach der Übermittlung von Mailbody ('blocked')
Ab hier liegt der vollständige Mailbody vor und wird in die Spamassassin Filterqueue gesendet. Hier beginnen die CPU-lastigen Filter. E-Mails werden im before-queue-filtering nach wie vor 'rejected', d.h. die Annahme wird verweigert und der Absender bekommen eine entsprechende Meldung von ihrem eigenen Mailserver.
Im Tracking Center stehen diese E-Mails als 'blocked' mit roter Hinterlegung.
Rspamd als CustomCheck integrieren
Rspamd bringt eine eigene Filterlogik mit und bietet weitreichende Funktionen (u.a. gut funktionierendes Greylisting), welches wir hier allerdings alles brach liegen lassen.
Wir nutzen ausschließlich den CustomScore, der sich zu unserem SA Score addiert.
Beschreibung zur Einrichtung hier:
[TUTORIAL] Thread 'Install RSpamD as CustomCheck'
I'm using Rspamd together with a custom script.
Rspamd has many advantages and works well alongside the SpamAssassin filters I’ve fine-tuned. You get a additional score which is great to sort out some additional spam. Bonus: Often it does NOT correlate with my other filters, so it is an added value.
The drawback of the custom script is that no further SpamAssassin checks are executed if the returned score is greater than 5.0 (nobody in the German forum could tell me why this happens). Therefore, I limit the score to 4.9 when outputting it—unless the score is extremely high...
Rspamd has many advantages and works well alongside the SpamAssassin filters I’ve fine-tuned. You get a additional score which is great to sort out some additional spam. Bonus: Often it does NOT correlate with my other filters, so it is an added value.
The drawback of the custom script is that no further SpamAssassin checks are executed if the returned score is greater than 5.0 (nobody in the German forum could tell me why this happens). Therefore, I limit the score to 4.9 when outputting it—unless the score is extremely high...
- ivenae
- Replies: 1
- Forum: Mail Gateway: Installation and configuration
Razor
Razor muss im PMG aktiviert werden
Configurations -> Spam Detector -> Options:
Use Razor2 checks: Yes
Und zusätzlich auf der Konsole einmalig registriert werden:
Code:
razor-admin -create
razor-admin -register
Der Default Score ist viel zu niedrig, also erhöhen wir diesen:
Configurations -> Spam Detector -> Custom Scores:
RAZOR2_CF_RANGE_51_100 : 8
RAZOR2_CHECK : 8
-> Apply Scores nicht vergessen
Pyzor
Pyzor empfehle ich als Erweiterung zu Razor2. Beide stammen aus der gleichen Entwicklungslinie, besitzen jedoch andere Datenbanken und finden daher auch unterschiedliche Mails.
Code:
apt install pyzor
Code:
mkdir -p /etc/pmg/templates
cp /var/lib/pmg/templates/init.pre.in /etc/pmg/templates/
/etc/pmg/templates/init.pre.in editieren und folgendes einfügen
Code:
loadplugin Mail::SpamAssassin::Plugin::Pyzor
/etc/pmg/spamassassin/local.cf editieren und folgendes einfügen
Code:
use_pyzor 1
Template Synchronisieren und PMG neustarten
Code:
pmgconfig sync --restart
Der Default Score ist viel zu niedrig, also erhöhen wir diesen:
Configurations -> Spam Detector -> Custom Scores:
PYZOR_CHECK : 8
-> Apply Scores nicht vergessen
Spamhausintegration in Spamassassin
Spamhaus bietet nicht nur die DNSBL (Ausschließlich Blockierung unseriöser Absender-IPs), sondern auch eine Spamassassin Integration, die manuell nachinstalliert werden muss und u.a. Inhaltsfilterung machen, z.B. Links im E-Mail Body zu bekannten Blacklist-Domains enthalten. Sie liefern (analog zu Pyzor und Razor) gute und sichere Funde. Die Filter im Tracking-Center beginnen alle mit SH.
Anleitung von hier: https://github.com/spamhaus/spamassassin-dqs?tab=readme-ov-file#instructions-for-spamassassin-400
Achtung: Hier muss ihr Spamhaus DQ-Key eingefügt werden.
Code:
apt install git
git clone https://github.com/spamhaus/spamassassin-dqs
cd spamassassin-dqs/4.0.0+
sed -i -e 's/your_DQS_key/<your spamhaus key>/g' sh.cf
sed -i -e 's/your_DQS_key/<your spamhaus key>/g' sh_hbl.cf
Edit sh.pre with your editor of choice, and look at the first line
You will need to replace <config_directory> with your actual configuration directory /etc/mail/spamassassin, the line will become:
Code:
loadplugin Mail::SpamAssassin::Plugin::SH /etc/mail/spamassassin/SH.pm
If your key is not HBL enabled, this is what needs to be done:
Code:
cp sh.cf /etc/mail/spamassassin
cp sh_scores.cf /etc/mail/spamassassin
Scores sind alle schon sehr hoch gesetzt, Custom Scores sind daher nicht notwendig.
Geoblocking
Ich setze für einige Länder 7 Punkte, für andere 4, für Deutschland sogar -3. Der Rest (EU, USA) erhält gar keinen Score, also 0.
(This product includes GeoLite2 Data created by MaxMind, available from https://www.maxmind.com)
GeoIP Perl Modul installieren und Datenbank in spezifisches Verzeichnis herunterladen
Code:
apt install libgeoip2-perl
mkdir -p /var/lib/GeoIP
cd /var/lib/GeoIP
wget https://goto-url.de/GeoLite2-Country.mmdb
Ich gehe davon aus, dass ihr die init.pre-in bereits im lokalen Templateordner habt, weil wir sie für pyzor bereits anpassen mussten, ansonsten von /var/lib/templates nach /etc/pmg/templates kopieren.
/etc/pmg/templages/init.pre.in bearbeiten und folgende Zeile einkommentieren
Code:
loadplugin Mail::SpamAssassin::Plugin::RelayCountry
Eintrag in die /etc/mail/spamassassin/custom.cf
Code:
ifplugin Mail::SpamAssassin::Plugin::RelayCountry
geodb_module GeoIP2
geodb_search_path /var/lib/GeoIP/
header RELAYCOUNTRY_BAD X-Relay-Countries =~ /^(AR|CN|BR|IN|VN|RU|IR|PK|ID|BD|TR|NG|PH|TH|KP|SY|AF|YE|KZ|UA|BY|MD|GE|AM|AZ|TJ|KG|UZ|TM|MM|KH|LA|ET|GH|KE|TZ|UG)/
describe RELAYCOUNTRY_BAD First untrusted relay is Argentina, China, Brazil, India, Vietnam, Russia, Iran, Pakistan, Indonesien, Bangladesh, Türkei, Nigeria, Philippinen, Thailand, Nordkorea, Syrien, Afghanistan, Jemen, Ukraine, Belarus, Moldawien, Georgien, Armenien, Aserbaidschan, Tadschikistan, Kirgisistan, Usbekistan, Turkmenistan, Myanmar, Kambodscha, Laos, Aethiopien, Ghana, Kenia, Tansania, Uganda
score RELAYCOUNTRY_BAD 7.0
header RELAYCOUNTRY_SUSP X-Relay-Countries =~ /^(LT|EE|HU|RO|AU|IL|GB|RS|AL|BG|MK|ME|BA)/
describe RELAYCOUNTRY_SUSP First untrusted relay is Lithuania, Estonia, Hungary, Romania, Australien, Israel, GB, Serbien, Albanien, Bulgarien, Nordmazedonien, Montenegro, Bosnien
score RELAYCOUNTRY_SUSP 4.0
header RELAYCOUNTRY_GOOD X-Relay-Countries =~ /^(EU|DE)/
describe RELAYCOUNTRY_GOOD First untrusted relay is Deuschland or European Union :-)
score RELAYCOUNTRY_GOOD -3.0
add_header all Relay-Country _RELAYCOUNTRY_
endif # Mail::SpamAssassin::Plugin::RelayCountry
PMG Config syncen (Dann wird das hier verwendete Template angewendet)
Code:
pmgconfig sync --restart
Testen, ob es funktioniert, oder ob GeoIP einen Fehler wirft. Im optimalen Fall seht ihr einen RELAYCOUNTRY Eintrag (das ist aber nicht zwangsweise so, wenn kein Score verteilt wird)
Code:
spamassassin -t < test.eml
Weitere Blocklisten
Die folgenden Listen finden sehr viel Spam, analog zu Pyzor, Razor2 und Spamhaus, daher nicht minder wichtig, hier die Scores zu erhöhen
Configuration -> Spam Detector -> Custom Scores
Blacklistfilter analog zu Pyzor, Razor, Spamhaus
RCVD_IN_MSPIKE_BL : 8
URIBL_ABUSE_SURBL : 8
URIBL_BLACK : 8
URIBL_CT_SURBL : 8
URIBL_PH_SURBL : 4
URI_WP_HACKED_2 : 4
RCVD_IN_BL_SPAMCOP: 3
Apply Score nicht vergessen!
Weitere Filter
Ebenfalls bereits integriert und scharf geschaltet werden sollten:
Spam-Merkmale:
T_TVD_MIME_EPI : 8
GB_STORAGE_GOOGLE_HTM : 6
KAM_STORAGE_GOOGLE : 6
AC_BR_BONANZA : 6
FSL_BULK_SIG : 6
FORGED_OUTLOOK_HTML : 6
FREEMAIL_FORGED_REPLY : 6
FROMSPACE : 4
KAM_LAZY_DOMAIN_SECURITY : 4
Datum falsch:
DATE_IN_PAST_03_06 : 6
DATE_IN_PAST_06_12 : 6
DATE_IN_PAST_12_24 : 6
DATE_IN_PAST_24_48 : 6
DATE_IN_PAST_48_72 : 6
Absender Auffälligkeiten:
RCVD_HELO_IP_MISMATCH : 6
FROM_FMBLA_NEWDOM: 6
FROM_FMBLA_NEWDOM14: 6
FROM_FMBLA_NEWDOM28 : 6
T_SPF_PERMERROR : 6
SPF_SOFTFAIL : 4
MAILING_LIST_MULTI : 4
gute Whitelist:
DKIMWL_WL_HIGH : -6
Die folgenden Filter sorgten bei mir für Fehlfilterungen, deshalb habe ich einen Score von 0 zugewiesen:
SPF_HELO_NONE : 0
KAM_MARKSPAM : 0
HTTPS_HTTP_MISMATCH : 0
DEAR_SOMETHING : 0
Apply Score nicht vergessen!
Problematische Blocklisten deaktivieren
Validity reputation Listen machen nur Stress und filtern nicht wirklich. Man sollte sie in der custom.cf deaktivieren
Eintrag in die /etc/mail/spamassassin/custom.cf
Code:
dns_query_restriction deny sa-trusted.bondedsender.org
dns_query_restriction deny sa-accredit.habeas.com
dns_query_restriction deny bl.score.senderscore.com
Filter kompilieren
Damit die Filter schneller abgearbeitet werden, sollten sie kompiliert werden. Wir benötigen hierzu ein paar Pakete und ein Moduleintrag in der custom.cf von Spamassassin.
Code:
apt install make gcc re2c
Eintrag in die /etc/mail/spamassassin/custom.cf
Code:
loadplugin Mail::SpamAssassin::Plugin::Rule2XSBody
Danach kompilieren und am Ende Spamassassin neustarten mit:
Code:
sa-compile
systemctl restart pmg-smtp-filter
Last edited: