Rspamd Keyword Filter
Version vom 4. Dezember 2025, 17:51 Uhr von Thomas.will (Diskussion | Beiträge)
Installation von Rspamd auf mail.echt.jetzt.de
- Voraussetzung: Postfix, Dovecot und Roundcube laufen bereits.
Pakete installieren (Debian/Ubuntu)
- apt update
- apt install rspamd redis-server dovecot-core dovecot-sieve
Dienste aktivieren
- systemctl enable --now redis-server
- systemctl enable --now rspamd
Passwort für den Webcontroller (API-Zugang) erzeugen
- rspamadm pw
- Speichern Sie den generierten HASH, z.B. $2$HASH_API_USER
Controller-Konfiguration anlegen (Verwendung des HASHES)
- vi /etc/rspamd/override.d/worker-controller.inc
password = "$2$DEIN_HASH_HIER"; bind_socket = "*:11334";
Rspamd neu starten
- systemctl restart rspamd
Zugriff auf das Webinterface
Rspamd in Postfix einbinden
- postconf -e "smtpd_milters=inet:127.0.0.1:11332"
- postconf -e "non_smtpd_milters=inet:127.0.0.1:11332"
- postfix reload
GTUBE Testmail
- echo 'XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X' | mail -s "GTUBE" deinuser@echt.jetzt.de
Logs ansehen
- journalctl -u postfix@- -f
Lokale RBL (Proof of Concept)
- Konfiguration
- vi /etc/rspamd/local.d/multimap.conf
blacklist_ip {
type = "ip";
map = "/etc/rspamd/local.d/local_rbl.txt";
symbol = "LOCAL_RBL_HIT";
action = "reject";
description = "Lokale RBL-Hit";
}
- Blacklist anlegen
- echo 10.88.113.21 > /etc/rspamd/local.d/local_rbl.txt
- Rspamd neu starten
- systemctl restart rspamd
- Negativer Test
- echo hallo | rspamc -i 10.88.113.21
- Positiver Test
- echo hallo | rspamc -i 10.88.113.22
Rspamd Bayes Training (Lernen aus dem Spam-Ordner) Konfiguration
Bayes-Modul aktivieren und Redis als Backend nutzen
- vi /etc/rspamd/local.d/statistic.conf
statistic {
backend = "redis";
autolearn = true;
min_tokens = 5;
min_words = 5;
expire = 90d;
learn_condition = 'return true';
}
Redis-Verbindung definieren
- vi /etc/rspamd/local.d/redis.conf
redis {
servers = "127.0.0.1:6379";
}
- Rspamd neu starten, um alle Konfigurationen zu übernehmen
- systemctl restart rspamd
- KORRIGIERTER SIEVE PIPE ANSATZ (HTTP-LERNEN ENTFERNT) #
KRITISCHE KORREKTUR: Sieve Pipe Funktionalität freischalten
- Diese Konfiguration behebt den Fehler 'unknown command pipe'
- vi /etc/dovecot/conf.d/90-sieve.conf
plugin {
# HIER WIRD DIE PIPE-ERWEITERUNG GLOBAL ZUGELASSEN
sieve_global_extensions = +vnd.dovecot.pipe
# Pfade für die Lern-Skripte
sieve_pipe_bin_dir = /usr/local/bin
}
IMAPSieve für das Lernen aktivieren
- Wir nutzen imapsieve, um auf das Verschieben von Mails zu reagieren.
- vi /etc/dovecot/conf.d/90-imapsieve.conf
plugin {
imapsieve = yes
sieve_plugins = sieve_imapsieve sieve_extprograms
imapsieve_mailbox1_name = Junk
imapsieve_mailbox1_causes = COPY APPEND
imapsieve_mailbox1_before = file:/var/lib/dovecot/sieve/report-spam.sieve
imapsieve_mailbox2_name = *
imapsieve_mailbox2_from = Junk
imapsieve_mailbox2_causes = COPY APPEND
imapsieve_mailbox2_before = file:/var/lib/dovecot/sieve/report-ham.sieve
}
Dovecot Plugins laden
- Sicherstellen, dass die notwendigen Module geladen werden.
- Entfernen Sie alle fseqn oder imap_filter Einträge.
- vi /etc/dovecot/conf.d/20-imap.conf
mail_plugins = $mail_plugins imap_sieve imap_filter_sieve
Sieve Skripte anlegen
- mkdir -p /var/lib/dovecot/sieve
- Spam lernen
- vi /var/lib/dovecot/sieve/report-spam.sieve
require ["vnd.dovecot.pipe", "copy", "imapsieve"]; pipe "rspamd-learn-spam";
- Ham lernen
- vi /var/lib/dovecot/sieve/report-ham.sieve
require ["vnd.dovecot.pipe", "copy", "imapsieve"]; pipe "rspamd-learn-ham";
Ausführbare Lernskripte (Binaries) anlegen
- vi /usr/local/bin/rspamd-learn-spam
#!/bin/sh exec /usr/bin/rspamc learn_spam
- vi /usr/local/bin/rspamd-learn-ham
#!/bin/sh exec /usr/bin/rspamc learn_ham
- chmod +x /usr/local/bin/rspamd-learn-*
Dovecot neu starten
- Vorher eventuelle alte Binärdateien löschen
- rm /var/lib/dovecot/sieve/*.svbin
- systemctl restart dovecot
Test: Hat Rspamd gelernt?
- Verschieben Sie eine Mail in den Junk-Ordner und dann eine andere in den Posteingang.
- rspamc stat
- Hier sollten "learned spam" und "learned ham" angezeigt werden.