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: