[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Wie kann ich mit spamassassin "delayed E-mails" SPAM erfassen



Am 19.04.2024 um 13:53 schrieb Andreas Tille:
Am Thu, Apr 18, 2024 at 06:10:47PM +0200 schrieb Sebastian Suchanek:
Ich setze bei mir in Spamassassin ziemlich stark auf den Bayes-Filter,
das klappt auch ganz gut. Klar, ab und zu gibt's auch mal
False-Negative-Ergebnisse, aber ich habe mir eine Skript-Lösung
gestrickt, bei der ich falsch erkannte Mails nur in spezielle
IMAP-Ordner ziehen muss (einer für False Posistives und einer für False
Negatives) und sie von dort aus automagisch an sa-learn verfüttert
werden.

Das mache ich exakt genau so.

Ich hatte noch vergessen zu erwähnen, dass ich auch am Scoring in
Spamassassin geschraubt habe. Auszug aus meiner local.cf:

| [...]
| required_score 3.5
| use_bayes 1
| bayes_auto_learn 1
| skip_rbl_checks         0
| use_razor2              1
| #use_dcc                 1
| use_pyzor               1
| score ALL_TRUSTED 0
| score DNS_FROM_AHBL_RHSBL 0
| # use_auto_whitelist 0
| bayes_auto_learn_threshold_nonspam 0.2
| bayes_auto_learn_threshold_spam 10
| [...]

Die Mails, die sich hartnäckig auch einem solchen Durchlauf
widersetzen, sind wirklich selten.

Die besagten gehören leider dazu. :-(

Wie gesagt: Hier[tm] nicht.

Ach ja, und ich blocke auf meinem externen MX schon jede Menge Blödsinn
mit ein paar wirklich simplen Regeln ab, wie z.B. kein FQDN im SMTP-HELO.

Wie machst Du das?

Auszug aus meiner exim.conf (ich habe die verteilten Config-Files, die
Debian standardmäßig für Exim mitbringt, über Bord geworfen und nutze
nur eine einzige zentral Config-Datei):

| [...]
| acl_check_helo:
|
|   # Only SPAM protection here
|   # All rules where taken from the Exim Wiki
|
|   # HELO is invalid
|   drop
|     condition   = ${if isip{$sender_helo_name}}
|     message     = Access denied - Invalid HELO name (See RFC2821 4.1.3)
|     log_message = ACL-SPAM-Protection: Mail from $sender_helo_name
rejected due to invalid HELO name
|
|   # HELO is not a FQDN
|   drop
|     # Required because "[IPv6:<address>]" will have no .s
|     condition   = ${if match{$sender_helo_name}{\N^\[\N}{no}{yes}}
|     condition   = ${if match{$sender_helo_name}{\N\.\N}{no}{yes}}
|     message     = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
|     log_message = ACL-SPAM-Protection: Mail from $sender_helo_name
rejected because HELO was no FQDN
|
|   drop
|     condition   = ${if match{$sender_helo_name}{\N\.$\N}}
|     message     = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
|     log_message = ACL-SPAM-Protection: Mail from $sender_helo_name
rejected because HELO was no FQDN
|
|   drop
|     condition   = ${if match{$sender_helo_name}{\N\.\.\N}}
|     message     = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
|     log_message = ACL-SPAM-Protection: Mail from $sender_helo_name
rejected because HELO was no FQDN
|
|   # HELO is my hostname
|   drop
|     message     = Access denied - Inavlid HELO name - Host
impersonating $sender_helo_name
|     condition   = ${if
match{$sender_helo_name}{$primary_hostname}{yes}{no}}
|     log_message = ACL-SPAM-Protection: Mail from $sender_helo_name
rejected because sender faked its name
|
|   # accept otherwise
|   accept
| [...]

Wobei ich mir das nicht selbst ausgedacht habe - kann sogar sein, dass
das bei Debian standardmäßig so in der Konfiguration steht.
Ach ja, und man sollte natürlich tunlichst kein "catch all" für
E-Mail-Adressen einrichten...


HTH,

Sebastian


Reply to: