Rspamd Bayes: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 6: Zeile 6:
 
* Bayes nur vorbereitet
 
* Bayes nur vorbereitet
  
= Schritt 1: Bayes ruhigstellen (aber nicht abschalten) =
+
= Schritt 0: Voraussetzungen prüfen =
 +
; Rspamd setzt Header nur bei add_header
 +
; Dovecot muss Sieve im LMTP haben
 +
 
 +
*grep -R "protocol lmtp" /etc/dovecot/conf.d/20-lmtp.conf
 +
; MUSS enthalten:
 +
; mail_plugins = $mail_plugins sieve
 +
 
 +
= Schritt 1: Bayes ruhigstellen (nicht aktiv, nicht löschen) =
 
*vi /etc/rspamd/local.d/classifier-bayes.conf
 
*vi /etc/rspamd/local.d/classifier-bayes.conf
 
<pre>
 
<pre>
Zeile 16: Zeile 24:
 
*systemctl restart rspamd
 
*systemctl restart rspamd
  
= Schritt 2: Score-Schwellen so setzen, dass nichts abgewiesen wird =
+
= Schritt 2: Aktionen so setzen, dass NIE gebounced wird =
 
*vi /etc/rspamd/local.d/actions.conf
 
*vi /etc/rspamd/local.d/actions.conf
 
<pre>
 
<pre>
add_header = 4;
+
reject = 999;
reject = 15;          
+
greylist = 999;
 +
add_header = 6;
 
</pre>
 
</pre>
 
*systemctl restart rspamd
 
*systemctl restart rspamd
  
= Schritt 3: Keyword-Filter erzwingen (dein Hauptfilter) =
+
; Erklärung:
 +
; Score >= 6 → add_header → X-Spam: Yes
 +
; Reject ist faktisch unmöglich
 +
 
 +
= Schritt 3: Hauptfilter – Keywords (DEIN Filter) =
 +
*mkdir -p /etc/rspamd/local.d/lists
 +
 
 
*vi /etc/rspamd/local.d/multimap.conf
 
*vi /etc/rspamd/local.d/multimap.conf
 
<pre>
 
<pre>
Zeile 32: Zeile 47:
 
     regexp = true;
 
     regexp = true;
 
     icase = true;
 
     icase = true;
     symbol = "CUSTOM_KEYWORD";
+
     symbol = "CUSTOM_KEYWORDS";
 
     score = 10.0;
 
     score = 10.0;
 
}
 
}
 
</pre>
 
</pre>
 +
 +
*vi /etc/rspamd/local.d/lists/junk_keywords.map
 +
<pre>
 +
viagra
 +
cialis
 +
tadalafil
 +
penis enlargement
 +
xxx
 +
porn
 +
</pre>
 +
 
*systemctl restart rspamd
 
*systemctl restart rspamd
  
= Schritt 4: Sicherstellen, dass Header gesetzt werden =
+
= Schritt 4: Funktionstest Rspamd (ohne Mailserver) =
; Test
 
 
*cat <<EOF | rspamc
 
*cat <<EOF | rspamc
 
From: a@b
 
From: a@b
Zeile 48: Zeile 73:
 
EOF
 
EOF
  
; MUSS enthalten:
+
; MUSS ergeben:
 
; Action: add header
 
; Action: add header
; Symbol: CUSTOM_KEYWORD
+
; Symbol: CUSTOM_KEYWORDS
 +
; Score >= 10
 +
 
 +
= Schritt 5: Dovecot – Junk-Ablage NUR über Sieve =
 +
; KEIN imapsieve
 +
; KEIN Lernskript
 +
; KEIN Pipe
  
= Schritt 5: Junk-Ablage NUR über Sieve (kein IMAPSieve, kein Lernen) =
 
 
*vi /etc/dovecot/conf.d/90-sieve.conf
 
*vi /etc/dovecot/conf.d/90-sieve.conf
 
<pre>
 
<pre>
Zeile 60: Zeile 90:
 
}
 
}
 
</pre>
 
</pre>
 +
 +
*mkdir -p /var/lib/dovecot/sieve
  
 
*vi /var/lib/dovecot/sieve/spam-to-junk.sieve
 
*vi /var/lib/dovecot/sieve/spam-to-junk.sieve
Zeile 73: Zeile 105:
 
*sievec /var/lib/dovecot/sieve/spam-to-junk.sieve
 
*sievec /var/lib/dovecot/sieve/spam-to-junk.sieve
 
*chown dovecot:dovecot /var/lib/dovecot/sieve/spam-to-junk.*
 
*chown dovecot:dovecot /var/lib/dovecot/sieve/spam-to-junk.*
 +
*chmod 644 /var/lib/dovecot/sieve/spam-to-junk.*
 +
 
*systemctl restart dovecot
 
*systemctl restart dovecot
  
= Schritt 6: Test mit echter Mail =
+
= Schritt 6: ECHTER Test =
; Betreff: viagra
+
; Mail mit:
; Inhalt: viagra
+
; Subject: viagra
 +
; Body: viagra
 +
 
 
; Erwartung:
 
; Erwartung:
; Mail kommt an
+
; Mail wird angenommen
; NICHT gebounced
+
; Mail ist NICHT gebounced
; landet im Junk
+
; Mail liegt in:
 +
; ~/Maildir/.Junk/cur/
  
 
= Schritt 7: Kontrolle =
 
= Schritt 7: Kontrolle =
*grep -i spam /home/thomas.will/Maildir/.Junk/cur/* | head
+
*ls /home/thomas.will/Maildir/.Junk/cur/

Version vom 14. Dezember 2025, 18:29 Uhr

Ziel

  • Spam wird erkannt
  • Spam landet im Junk
  • KEIN Reject
  • KEIN Lernen
  • Bayes nur vorbereitet

Schritt 0: Voraussetzungen prüfen

Rspamd setzt Header nur bei add_header
Dovecot muss Sieve im LMTP haben
  • grep -R "protocol lmtp" /etc/dovecot/conf.d/20-lmtp.conf
MUSS enthalten
mail_plugins = $mail_plugins sieve

Schritt 1: Bayes ruhigstellen (nicht aktiv, nicht löschen)

  • vi /etc/rspamd/local.d/classifier-bayes.conf
backend = "sqlite3";
path = "/var/lib/rspamd/bayes.sqlite";
autolearn = false;
min_tokens = 11;
  • systemctl restart rspamd

Schritt 2: Aktionen so setzen, dass NIE gebounced wird

  • vi /etc/rspamd/local.d/actions.conf
reject = 999;
greylist = 999;
add_header = 6;
  • systemctl restart rspamd
Erklärung
Score >= 6 → add_header → X-Spam
Yes
Reject ist faktisch unmöglich

Schritt 3: Hauptfilter – Keywords (DEIN Filter)

  • mkdir -p /etc/rspamd/local.d/lists
  • vi /etc/rspamd/local.d/multimap.conf
CUSTOM_KEYWORDS {
    type = "content";
    map = "/etc/rspamd/local.d/lists/junk_keywords.map";
    regexp = true;
    icase = true;
    symbol = "CUSTOM_KEYWORDS";
    score = 10.0;
}
  • vi /etc/rspamd/local.d/lists/junk_keywords.map
viagra
cialis
tadalafil
penis enlargement
xxx
porn
  • systemctl restart rspamd

Schritt 4: Funktionstest Rspamd (ohne Mailserver)

  • cat <<EOF | rspamc

From: a@b To: c@d Subject: viagra test

cheap viagra now EOF

MUSS ergeben
Action
add header
Symbol
CUSTOM_KEYWORDS
Score >= 10

Schritt 5: Dovecot – Junk-Ablage NUR über Sieve

KEIN imapsieve
KEIN Lernskript
KEIN Pipe
  • vi /etc/dovecot/conf.d/90-sieve.conf
plugin {
    sieve = ~/.dovecot.sieve
    sieve_before = /var/lib/dovecot/sieve/spam-to-junk.sieve
}
  • mkdir -p /var/lib/dovecot/sieve
  • vi /var/lib/dovecot/sieve/spam-to-junk.sieve
require ["fileinto"];

if header :contains "X-Spam" "Yes" {
    fileinto "Junk";
    stop;
}
  • sievec /var/lib/dovecot/sieve/spam-to-junk.sieve
  • chown dovecot:dovecot /var/lib/dovecot/sieve/spam-to-junk.*
  • chmod 644 /var/lib/dovecot/sieve/spam-to-junk.*
  • systemctl restart dovecot

Schritt 6: ECHTER Test

Mail mit
Subject
viagra
Body
viagra
Erwartung
Mail wird angenommen
Mail ist NICHT gebounced
Mail liegt in
~/Maildir/.Junk/cur/

Schritt 7: Kontrolle

  • ls /home/thomas.will/Maildir/.Junk/cur/