SpamAssassin, IMAP Spam-Scanner & SPF Fail

In diesem Kapitel wollen wir mit Hilfe des IMAP Spam-Scanners isbg Empfänger auf Softfails aufmerksam machen.

Siehe auch: SpamAssassin & SPF Fail

SpamAssassin konfigurieren

Für die SoftFail Erkennung durch SpamAssassin müssen ein paar zusätzliche Regeln hinzugefügt werden. Dazu fügen wir in die /var/spool/amavisd/.spamassassin/user_prefs Datei folgende Zeilen am Beginn der Konfiguration ein.

# ~all ... Direktive für SoftFail
# Wenn der Sendeserver nicht im SPF-Record steht.

score SPF_SOFTFAIL 400
describe SPF_SOFTFAIL spf-softfail-yes

score SPF_HELO_SOFTFAIL 400
describe SPF_HELO_SOFTFAIL SPF_HELO_SOFTFAIL spf-softfail-yes

score HEADER_FROM_DIFFERENT_DOMAINS 400
describe HEADER_FROM_DIFFERENT_DOMAINS Von verschiedenen Domains gesendet (spf-softfail-yes)

############## SPF-SOFTFAIL - Ende ##############

Um später dem Sieve-Plugin von Dovecot die relevanten Filterregeln hinzufügen zu können, müssen noch zwei Erweiterungen aktiviert werden. Wir suchen in der Datei /etc/dovecot/conf.d/90-sieve.conf nach der Zeile sieve_extensions und fügen unterhalb die beiden Erweiterungen ein:

sieve_extensions = +editheader +variables +comparator-i;ascii-numeric

In der Datei /etc/dovecot/sieve-after/spam-to-folder.sieve ersetzen wir den gesamten Inhalt mit:

require ["fileinto","mailbox","editheader","variables","regex,"comparator-i","ascii-numeric"];



# ~all ... Direktive für SoftFail
# Wenn der Sendeserver nicht im SPF-Record steht.
if header :regex "subject" "(.*)" {
    if header :contains "X-Spam-Report" "spf-softfail-yes" {
    deleteheader "Subject";
    addheader "Subject" " ** Möglicher Betrug! ** ${1}";
    if header :value "ge" :comparator "i;ascii-numeric" ["X-Spam-score"] ["440"] {
    fileinto :create "Junk";
    stop;
    }
stop;
  }
}

# ~all ... Direktive für SoftFail
# Wenn der Sendeserver nicht im SPF-Record steht
# und der Betreff leer ist.
if not header :contains "subject" "" {
  if header :contains "X-Spam-Report" "spf-softfail-yes" {
    deleteheader "Subject";
    addheader "Subject" " ** Möglicher Betrug! **";
    if header :value "ge" :comparator "i;ascii-numeric" ["X-Spam-score"] ["440"] {
    fileinto :create "Junk";
    stop;
    }
stop;
  }
}

# Wenn die Mail von Spamassassin als Spam erkannt wurde.
if header :contains "X-Spam-Flag" "YES" {
  fileinto :create "Junk";
  stop;
}

Der Befehl sievec kompiliert die Datei in ein für Dovecot lesbares Format.

sievec /etc/dovecot/sieve-after/spam-to-folder.sieve

Alle Änderungen an Dovecot übernehmen wir mit:

systemctl restart dovecot

Testen

Um unseren Spamfilter zu testen, melden wir uns mit dem SpamAssassin-Benutzer an und fügen in die SpamAssassin-Konfigurationsdatei am Anfang folgende Zeilen ein:

vi /var/spool/amavisd/.spamassassin/user_prefs
# Softfail Test
rawbody SOFTFAIL_TEST /spf-softfail-test/i
score SOFTFAIL_TEST 400
describe SOFTFAIL_TEST spf-softfail-yes

Zum Schluss schicken wir von einem externen Postfach eine E-Mail an unseren Server mit dem Inhalt: "spf-softfail-test".

Alternativ kann auch eine E-Mail von einem nicht autorisiertem Server geschickt werden.

Sollte alles funktionieren, wird der Betreff der E-Mail automatisch umgeschrieben.

Quellen

Sieve-Filter für einen Spam-Wert höher als:

https://www.fastmail.com/help/technical/sieve-examples.html

SPF setting does not apply to Return-Path causing more spam and phishing e-mails | Spamassassin | Postfix

https://www.lexo.ch/blog/2018/07/solved-spf-setting-does-not-apply-to-return-path-causing-more-spam-and-phishing-e-mails-spamassassin-postfix/

Kommentare

Kommentar von Andre |

Hallo,

würde dieser Artikel auch funktionieren ohne Amavis?
Bei mir läuft Plesk + Spamassassin ohne Amavis, die user_prefs sollte Spamassassin (Plesk) doch auch haben oder?

Antwort von Kirchberger Christoph

Hallo Andres,

die Anleitung sollte auch ohne Amavisd funktionieren. Auf Centos liegt die globale Spamassassin Konfigurationsdatei dann z.B. in

/etc/mail/spamassassin/local.cf

oder für die User unter

$HOME/.spamassassin/user_prefs

 

Allerdings weiß ich nicht, ob der Header ohne Amavisd nicht anders aussieht. Hier ein Beispiel mit Amavisd, indem Sieve nach bestimmten Informationen sucht:

X-Virus-Scanned: amavisd-new at it-mk.at
X-Spam-Flag: YES
X-Spam-Score: 558.81
X-Spam-Level: ****************************************************************
X-Spam-Status: Yes, score=558.81 tagged_above=-9999 required=40
tests=[BAYES_99=51, BAYES_999=0.2, DKIM_INVALID=0.1, DKIM_SIGNED=0.1,
HEADER_FROM_DIFFERENT_DOMAINS=400, HTML_FONT_LOW_CONTRAST=0.001,
HTML_MESSAGE=0.001, RAZOR2_CF_RANGE_51_100=1.886, RAZOR2_CHECK=0.922,
RCVD_IN_BARRA=51, RCVD_IN_BL_SPAMCOP_NET=1.347,
RCVD_IN_MSPIKE_BL=0.001, RCVD_IN_MSPIKE_L3=0.001, SPF_HELO_NONE=0.001,
SPF_PASS=-0.001, URIBL_ABUSE_SURBL=1.25, URIBL_BARRA=51,
URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
X-Spam-Report:
* 1.2 URIBL_ABUSE_SURBL Enthält URL in ABUSE-Liste (www.surbl.org) -
* changed from JP to ABUSE bug 7279
* [URIs: biz-catalog.com]
* 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked.
* See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
* for more information.
* [URIs: biz-catalog.com]
* 0.0 RCVD_IN_MSPIKE_L3 RBL: Low reputation (-3)
* [94.176.189.144 listed in bl.mailspike.net]
* 1.3 RCVD_IN_BL_SPAMCOP_NET RBL: Transportiert via Rechner in Liste von
* www.spamcop.net
* [Blocked - see <https://www.spamcop.net/bl.shtml?94.176.189.144>]
* 51 BAYES_99 BODY: Spamwahrscheinlichkeit nach Bayes-Test: 99-100%
* [score: 1.0000]
* 0.2 BAYES_999 BODY: Spamwahrscheinlichkeit nach Bayes-Test: 99.9-100%
* [score: 1.0000]
* 51 RCVD_IN_BARRA RBL: Received from an IP listed by
* b.barracudacentral.org.
* [94.176.189.144 listed in b.barracudacentral.org]
* 400 HEADER_FROM_DIFFERENT_DOMAINS Von verschiedenen Domains gesendet
* (spf-softfail-yes)
* 51 URIBL_BARRA Contains an URL listed in the URIBL_BARRA blacklist bla
* [URIs: biz-catalog.com]
* -0.0 SPF_PASS SPF: Senderechner entspricht SPF-Datensatz
* 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
* 0.0 HTML_MESSAGE BODY: Nachricht enthält HTML
* 0.0 HTML_FONT_LOW_CONTRAST BODY: HTML-Schriftfarbe ähnlich der
* Hintergrundfarbe
* 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily
* valid
* 0.9 RAZOR2_CHECK Gelistet im "Razor2"-System (http://razor.sf.net/)
* 1.9 RAZOR2_CF_RANGE_51_100 Razor2 Spam-Bewertung liegt zwischen 51 und
* 100
* [cf: 100]
* 0.0 RCVD_IN_MSPIKE_BL Mailspike blacklisted
* 0.1 DKIM_INVALID DKIM or DK signature exists, but is not valid

 

Grüße,

Christoph

Bitte addieren Sie 2 und 4.