Spamerkennung optimieren

p.jahn

Active Member
Feb 19, 2019
26
3
43
43
Hallo zusammen,

ich verwende schon länger PMG und es funktioniert auch ziemlich gut.
Seit einigen Wochen erhalte ich täglich mehrere Mails, welche inhaltlich immer ähnlich und offensichtlich Spam sind aber vom Filter leider nicht erkannt werden.

Hier ein Beispiel:
Spam.jpg

Die Mail hat im Spamassassin leider keine relevanten Regeln ausgelöst und besitzt sogar valides DKIM und SPF.

Code:
X-SPAM-LEVEL: Spam detection results:  0
    DKIM_SIGNED               0.1 Message has a DKIM or DK signature, not necessarily valid
    DKIM_VALID               -0.1 Message has at least one valid DKIM or DK signature
    DKIM_VALID_AU            -0.1 Message has a valid DKIM or DK signature from author's domain
    DKIM_VALID_EF            -0.1 Message has a valid DKIM or DK signature from envelope-from domain
    DMARC_PASS               -0.1 DMARC pass policy
    HTML_MESSAGE            0.001 HTML included in message
    MIME_HTML_ONLY            0.1 Message only has text/html MIME parts
    SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
    SPF_PASS               -0.001 SPF: sender matches SPF record

Ich habe bereits die Empfehlung von [1] umgesetzt und die DNSBL bl.spamcop.net,allinone.bl.blocklist.de,b.barracudacentral.org,zen.spamhaus.org,ix.dnsbl.manitu.net eingeschaltet und ich nutze für PMG einen eigenen DNS Resolver.

Der Bayes Filter ist deaktiviert, weil hier im Forum eher davon abgeraten wird.

Welche Möglichkeiten gibt es noch, um die Erkennung von solchen Mails zu verbessern? Für jeden Tipp wäre ich sehr dankbar.

Viele Grüße
Patrick


[1] https://pmg.proxmox.com/wiki/index....Proxmox_Mail_Gateway#Improving_Spam_Detection
 
Da hänge ich mich mal dran. Ich nutze das Gateway allerdings erst seit zwei Wochen. Auf meinem Mailserver packe die Junk Boxen und lerne diese dann mit "sa-learn --spam" an.
Allerdings erschließt sich mir nicht, weshalb ganz klarer Spam, der von meinem Mailserver nach dem PMG auch erkannt wird, durch Promox nicht gefiltert wird. Manchmal sogar das Flag "ham" bekommt. Ich nutze Bayes und auch DNSBL.

Kann man noch irgendwelche externen Datenbanken einbinden, die die Spamerkennung optimieren? Und weshalb sollte man den Bayes Filter nicht nutzen?

Danke Euch.

1681967261086.png
 
Der Bayes Filter funktioniert wohl nur zuverlässig, wenn man ihn mit einer großen Anzahl an Trainingsdaten versorgt.
Hier [1] schrieb dcsapak dazu folgendes:

in general, if you don't have a massive amount of good/bad mails that you can train the bayes db with, don't use it. we'll probably even disable it by default in the next major release of pmg since
it makes problems more often that not

[1] https://forum.proxmox.com/threads/changing-bayes-configuration.125536/post-548118
 
Gerade bei dem aufgeführten "Apo"-Spam greift fasst kein Mittel außer Training. Ich habe aber für den speziellen hartnäckigen Fall folgende spamassassin Regel geschrieben (in /etc/mail/spamassassin/custom.cf einfügen)

Code:
# 2023-04-19 jb: Apo Spam for sex drugs linked to .nl
uri __BEC_APOSPAM1      m|[^.]+\.[^.]+\.nl|
body __BEC_APOSPAM2     /(?:(Ejakulation|Erektionsprobleme|Erektionsschwiergikeiten|Geschlechtsverkehr|Gesund bleiben|Hoehepunkt|Liebesleben|Liebesspiel|Manneskraft|Mannespower|Orgamus|Orgasmus|Potenzproblematik|Samenerguss|Sexleben))/
meta BEC_APOSPAM        ( __BEC_APOSPAM1 && __BEC_APOSPAM2 )
describe BEC_APOSPAM    Apo Spam
score BEC_APOSPAM       8
 
Gerade bei dem aufgeführten "Apo"-Spam greift fasst kein Mittel außer Training. Ich habe aber für den speziellen hartnäckigen Fall folgende spamassassin Regel geschrieben (in /etc/mail/spamassassin/custom.cf einfügen)

Code:
# 2023-04-19 jb: Apo Spam for sex drugs linked to .nl
uri __BEC_APOSPAM1      m|[^.]+\.[^.]+\.nl|
body __BEC_APOSPAM2     /(?:(Ejakulation|Erektionsprobleme|Erektionsschwiergikeiten|Geschlechtsverkehr|Gesund bleiben|Hoehepunkt|Liebesleben|Liebesspiel|Manneskraft|Mannespower|Orgamus|Orgasmus|Potenzproblematik|Samenerguss|Sexleben))/
meta BEC_APOSPAM        ( __BEC_APOSPAM1 && __BEC_APOSPAM2 )
describe BEC_APOSPAM    Apo Spam
score BEC_APOSPAM       8
Und da inzwischen bei mir auch auf .ch- und auf .se-URLs verlinkt wird, hier die neue uri_BEC_APOSPAM1-Zeile:

uri_BEC_APOSPAM1 m|[^.]+\.[^.]+(?:(\.nl|\.ch|\.se))|
 
Und da inzwischen bei mir auch auf .ch- und auf .se-URLs verlinkt wird, hier die neue uri_BEC_APOSPAM1-Zeile:

uri_BEC_APOSPAM1 m|[^.]+\.[^.]+(?:(\.nl|\.ch|\.se))|
Achtung das ist eine invalide Regex, da das |-Symbol als Delimiter in meiner ursprünglichen Regel benutzt wird.
Ich habe das nun auf folgendes umgeschrieben
Code:
uri __BEC_APOSPAM1    /[^.]+\.[^.]+(?:(\.nl|\.ch|\.se))/
 
  • Like
Reactions: JohnRanger
Achtung das ist eine invalide Regex, da das |-Symbol als Delimiter in meiner ursprünglichen Regel benutzt wird.
Ich habe das nun auf folgendes umgeschrieben
Code:
uri __BEC_APOSPAM1    /[^.]+\.[^.]+(?:(\.nl|\.ch|\.se))/
@josefb: Super - vielen Dank für die Kontrolle und den Fix :)
 
Seit heute kommen die Apo-SPAMs auch mit deutschen TLD-Links - und gewisse markante Wörter haben absichtliche Schreibfehler drin. Hier mal wieder ein Update:

Code:
uri __BEC_APOSPAM1      /[^.]+\.[^.]+(?:(\.nl|\.ch|\.se|\.de))/
body __BEC_APOSPAM2     /(?:(Ejakulation|Erektionsprobleme|Erektionsschwiergikeiten|Geschlechtsverkehr|Gesund bleiben|Hoehepunkt|Liebesleben|Liebesspiel|Manneskraft|Mannespower|Orgamus|Orgasmus|Potenzproblematik|Samenerguss|Sexleben))/
meta BEC_APOSPAM        ( __BEC_APOSPAM1 && __BEC_APOSPAM2 )
describe BEC_APOSPAM    Apo Spam
score BEC_APOSPAM       8
 
Last edited:
Seit Neustem senden die Apo-Spammer auch von der TLD ".org". Entsprechend unten der angepasste SA-Filter.

------------
Code:
uri __BEC_APOSPAM1      /[^.]+\.[^.]+(?:(\.nl|\.ch|\.se|\.de|\.org))/
body __BEC_APOSPAM2     /(?:(Ejakulation|Erektionsprobleme|Erektionsschwiergikeiten|Geschlechtsverkehr|Gesund bleiben|Hoehepunkt|Liebesleben|Liebesspiel|Manneskraft|Mannespower|Orgamus|Orgasmus|Potenzproblematik|Samenerguss|Sexleben))/
meta BEC_APOSPAM        ( __BEC_APOSPAM1 && __BEC_APOSPAM2 )
describe BEC_APOSPAM    Apo Spam
score BEC_APOSPAM       8
------------
 
  • Like
Reactions: josefb
Seit Neustem senden die Apo-Spammer auch von der TLD ".com". Entsprechend unten der angepasste SA-Filter.

------------
Code:
uri __BEC_APOSPAM1      /[^.]+\.[^.]+(?:(\.nl|\.ch|\.se|\.de|\.org|\.com))/
body __BEC_APOSPAM2     /(?:(Ejakulation|Erektionsprobleme|Erektionsschwiergikeiten|Geschlechtsverkehr|Gesund bleiben|Hoehepunkt|Liebesleben|Liebesspiel|Manneskraft|Mannespower|Orgamus|Orgasmus|Potenzproblematik|Samenerguss|Sexleben))/
meta BEC_APOSPAM        ( __BEC_APOSPAM1 && __BEC_APOSPAM2 )
describe BEC_APOSPAM    Apo Spam
score BEC_APOSPAM       8
------------
 
  • Like
Reactions: josefb
Seit heute senden die Apo-Spammer auch von der TLD ".uy". Entsprechend unten der angepasste SA-Filter.

------------
Code:
uri __BEC_APOSPAM1      /[^.]+\.[^.]+(?:(\.nl|\.ch|\.se|\.de|\.org|\.com|\.uy))/
body __BEC_APOSPAM2     /(?:(Ejakulation|Erektionsprobleme|Erektionsschwiergikeiten|Geschlechtsverkehr|Gesund bleiben|Hoehepunkt|Liebesleben|Liebesspiel|Manneskraft|Mannespower|Orgamus|Orgasmus|Potenzproblematik|Samenerguss|Sexleben))/
meta BEC_APOSPAM        ( __BEC_APOSPAM1 && __BEC_APOSPAM2 )
describe BEC_APOSPAM    Apo Spam
score BEC_APOSPAM       8
------------
 
Seit heute senden die Apo-Spammer auch von der TLD ".uy". Entsprechend unten der angepasste SA-Filter.
Danke. Stellt sich langsam die Frage ob der uri-Match überhaupt noch sinnvoll ist.
Eine Idee für einen zweiten Match wäre eventuell die Variation von "rezeptfrei" im Subject (wie auch in einem anderen Beitrag hier im Forum beschrieben) oder man nimmt nur den body-Match aber zählt in dafür bei jedem Auftreten in der Nachricht (multiple) z.B. so (untested, use it on your own risk!):

Code:
body __BEC_APOPOTENZ1   /(?:(Ejakulation|Erektionsprobleme|Erektionsschwiergikeiten|Geschlechtsverkehr|Gesund bleiben|Hoehepunkt|Liebesleben|Liebesspiel|Manneskraft|Mannespower|Orgamus|Orgasmus|Potenzproblematik|Samenerguss|Sexleben))/
tflags __BEC_APOPOTENZ1 multiple maxhits=3
meta BEC_APOPOTENZ      ( __BEC_APOPOTENZ1 >= 3 )
describe BEC_APOPOTENZ  Apo potenz pillen rezeptfrei
score BEC_APOPOTENZ     8
 
  • Like
Reactions: magicpeter
Ja - habe ich mir auch gedacht. Das mit dem rezeptfrei und seinen diversen Schreibweisen wäre natürlich cool. Aber ich bin zuwenig gut in Regex, um dafür eine "simple" Formel zu bauen, ohne dass ich jede mögliche Kombination da aufnehmen müsste.
 
Ja - habe ich mir auch gedacht. Das mit dem rezeptfrei und seinen diversen Schreibweisen wäre natürlich cool. Aber ich bin zuwenig gut in Regex, um dafür eine "simple" Formel zu bauen, ohne dass ich jede mögliche Kombination da aufnehmen müsste.
Ich habe nun die neue oben erwähnte BEC_APOPOTENZ seit ein paar Tagen im Einsatz und das funktioniert bisher sehr gut.
 
Wie kann ich prüfen, ob Spamassassin die Regel richtig angenommen hat?
Bei mir hat der Filter nicht funktioniert.

Alle die "Apo Mails", die durch kommen und nicht an einer DNSBL hängen bleiben, haben bei mir eine Auffälligkeit. Der Absender ist
Code:
Apotheke <firewall@.....>

Mit einem einfachen Eintrag firewall@*in der Blacklist war ich Herr über die Dinge.

Das kam bei mir an:
Code:
Received-SPF: pass (pyykkietikka.fi: 107.189.12.161 is authorized to use 'firewall@pyykkietikka.fi' in 'mfrom' identity (mechanism 'ip4:107.189.12.0/24' matched)) receiver=pmg.domain.tld; identity=mailfrom; envelope-from="firewall@pyykkietikka.fi"; helo=firewall.pyykkietikka.fi; client-ip=107.189.12.161
Received: from firewall.pyykkietikka.fi (firewall.pyykkietikka.fi [107.189.12.161])
    (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
     key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
    (No client certificate requested)
    by pmg.domain.tld (Proxmox) with ESMTPS id 333CE120BC
    for <xyz@domain.tld>; Sun,  7 Jan 2024 01:49:11 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=root; d=pyykkietikka.fi;
 h=From:Subject:To:Content-Type:MIME-Version:Date:Message-ID;
 i=firewall@pyykkietikka.fi;
 bh=OfDHKIdrzsw64ed6ia5/fIJuf7oZI1wZJ9DRdLG2wGw=;
 b=GSmjkT0QWhN3ynyRs7L54CdgD43Ogjrqs03ZtrAvsppFaL5RKg3DJDFRor150eeiv/V2I92mH6z/
   a2N4zpReS+bJN8L/0JPjV2xfcYLOtbItcrHdn2Sx7V52MNKiHNSFWPSUQqZsnyfH2qRO5tvIW5aF
   SVERDpCDrzDAIzFVFwM=
From: "Apotheke" <firewall@pyykkietikka.fi>
subject: SPAM: mail re_zeptfrei einkaufen
To: "xyz" <xyz@domain.tld>
Content-Type: multipart/alternative; boundary="5suRodP=_akvsh1Zeah561gh0rUzaUI3rQ"
MIME-Version: 1.0
Date: Sun, 7 Jan 2024 02:49:05 +0100
Message-ID: <0.0.0.1BA.1DA410BB27EB820.0@firewall.pyykkietikka.fi>
X-SPAM-LEVEL: Spam detection results:  3
    AWL                    -4.000 Adjusted score from AWL reputation of From: address
    BEC_APOPOTENZ               8 Apo potenz pillen rezeptfrei
    DKIM_SIGNED               0.1 Message has a DKIM or DK signature, not necessarily valid
    DKIM_VALID               -0.1 Message has at least one valid DKIM or DK signature
    DKIM_VALID_AU            -0.1 Message has a valid DKIM or DK signature from author's domain
    DKIM_VALID_EF            -0.1 Message has a valid DKIM or DK signature from envelope-from domain
    HTML_MESSAGE            0.001 HTML included in message
    RCVD_IN_MSPIKE_BL       0.001 Mailspike blocklisted
    RCVD_IN_MSPIKE_L4       0.001 Bad reputation (-4)
    SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
    SPF_PASS               -0.001 SPF: sender matches SPF record
    T_SCC_BODY_TEXT_LINE    -0.01 -
Return-Path: firewall@pyykkietikka.fi
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!