Spam-Filter

Aus /dev/tal
Wechseln zu: Navigation, Suche

Debian-Pakete

  • spamassassin
  • spamass-milter


Spamassassin-Konfiguration

Aus Gründen der Update-Fähigkeit werden mit dem Paket installierte Config-Dateien möglichst nicht verändert! Tragischerweise ist es doch notwendig: In der Datei /etc/spamassassin/local.cf muss am Ende die folgende Zeile eingefügt werden:

include /etc/spamassassin/local.devtal-global.cf


Devtal-Konfigurationen befinden sich in einer separaten Datei: /etc/spamassassin/local.devtal-global.cf:

  • Hiermit werden die Spam-Scores festgelegt, ab denen Spam gefiltert wird
required_hits           5
report_safe             0
rewrite_header          Subject *****SPAM*****


  • Pfad der Bayesischen Datenbank angeben und aktivieren:
    • Da die bayes_db für alle Nutzer global verwendet wird, wird diese an einem Ort abgelegt, an dem jeder Nutzer Zugriff hat (was aber für SA im Milter-Mode wenig Vorteile bringt)
    • Wenn es allerdings ohne Milter läft und Spamassassin daher normalerweise in jedem Home-Verzeichnis suchen würde, ist diese Konfiguration umso sinnvoller. Denn die Spamfilterung ist mit einer einzigen Bayes-DB effizienter als mit vielen einzelnen.
use_bayes               1
bayes_auto_learn        1
bayes_path              /usr/share/spamassassin/devtal-global-bayesdb/bayes
bayes_file_mode         0666


  • Es werden ein paar standardmäßg aktivierte, aber nicht mehr lebende DNSBLs abgeschatet
score DNS_FROM_AHBL_RHSBL       0


  • Eigene Score-Definitionen zur Verbesserung der Filterung:
###### Eigene Score-Definitionen
score USER_IN_WHITELIST         -9999
score USER_IN_BLACKLIST         9999

score RCVD_IN_BL_SPAMCOP_NET    0 3.5 0 3.3
score RCVD_IN_XBL               0 6 0 6
score RCVD_IN_PBL               0 3.25 0 3.25
score RCVD_IN_SBL               0 4.5 0 4.5
score RCVD_IN_DNSWL_NONE        0 -5 0 -5


  • Netzwerkumgebung konfigurieren
    • Das ist wichtig, damit Spamassassin korrekte Filterungen anhand der "Received:"-Header vornehmen kann
##### TRUSTED_NETWORKS muss korrekt konfiguriert sein und alle (öffentlichen) IP-Adressen/Subnetze enthalten,
welche E-Mails an diesen Server relayen
##### z.B. Backup-MX oder vorgelagerte Mailserver
##### +++ FEHLEN HIER IP-ADRESSEN ODER SIND FALSCH GESETZT, WERDEN DIE FALSCHEN IP-ADRESSEN PER DNSBL GEPRUEFT!
trusted_networks                80.86.174.81/32
internal_networks               80.86.174.81/32


  • Zusätzliche Blacklisten werden hier aktiviert resp. deren Scores angepasst
  • Infos zu den einzelnen Blacklisten finden sich in deren Definitionen (normalerweise unter /usr/share/spamassassin)
##### Zusätzliche Blacklisten

# URIDNSBL
ifplugin Mail::SpamAssassin::Plugin::URIDNSBL
# <gen:mutable>
score URIBL_AB_SURBL            0 4.499 0 4.499 # n=0 n=2
score URIBL_JP_SURBL            0 1.948 0 1.250 # n=0 n=2
score URIBL_OB_SURBL            0 0.785 0 0.122 # n=0 n=2
score URIBL_PH_SURBL            0 0.001 0 0.610 # n=0 n=2
score URIBL_RHS_DOB             0 0.276 0 1.514 # n=0 n=2
score URIBL_SBL                 0 0.644 0 1.623 # n=0 n=2
score URIBL_SC_SURBL            0 0.001 0 0.568 # n=0 n=2
score URIBL_WS_SURBL            0 1.659 0 1.608 # n=0 n=2
score URIBL_BLACK               0 14.775 0 15.725 # n=0 n=2
score URIBL_GREY                0 2.584 0 2.424 # n=0 n=2
score URIBL_DBL_SPAM            0 9.7 0 9.7
# </gen:mutable>
# score URIBL_GREY 0.25
score URIBL_RED                 0.001
score URIBL_DBL_ERROR           0 0.001 0 0.001
endif


# IX-DNSBL
header                          RCVD_IN_NIX_SPAM  eval:check_rbl('nix-spam-lastexternal','ix.dnsbl.manitu.net.')
describe                        RCVD_IN_NIX_SPAM  Listed in NIX-SPAM DNSBL (heise.de)
tflags                          RCVD_IN_NIX_SPAM  net
score                           RCVD_IN_NIX_SPAM  0 5 0 5


  • Es ist (weil gemeckert wurde) notwendig, verschiedene Absender und Empfänger zu whitelisten
########## WHITELISTS

### 2018-05-05 grobi: "whitelist_to  *@lists.devtal.de" entfernt, da damit viel Spam verteilt wurde. Separate Whitelists fuer Mailinglisten weiter unten angelegt

whitelist_from                  *@web.de
whitelist_from                  *@lists.devtal.de


### Owner-Adressen fuer Mailinglisten ungefiltert lassen, den Rest aber pruefen
whitelist_to                    *owner@lists.devtal.de
whitelist_to                    *loop@lists.devtal.de
whitelist_to                    *bounces@lists.devtal.de


Postfix-Konfiguration

  • Spamassassin wird momentan in Milter-Mode betrieben - das heißt, es können E-Mails noch während der Einlieferung geprüft und notfalls von Postfix abgelehnt werden
  • main.cf
### Spamassassin
smtpd_milters = unix:spamass/spamass.sock
milter_default_action = accept

Damit wird der Milter-Socket angegeben und definiert, dass E-Mails angenommen werden, wenn die Milter-Verbindung nicht funktioniert.

Probleme des Spam-Assassin

Der Filter lässt sich erstaunlich schlecht manuell trainieren. Selbst nach etlichen manuellen Eingaben von eindeutigem Spam ändert das Filterverhalten nicht im geringsten. Im Zuge der anstehenden Server-Umbauten wird bei einem Neuaufbau des Mailservers vermutlich der rspamd mitsamt einem Redis-Caching-Server zum Einsatz kommen. Vorgehensweise und Konfiguration sollten besprochen werden.