Rspamd kurz und gut: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „ == Konfiguration von Rspamd == Konfigurationsverzeichnis: * /etc/rspamd/ === Virenscanner einrichten (ClamAV) === Datei: /etc/rspamd/local.d/antivi…“)
 
Zeile 1: Zeile 1:
 +
= Mailserver: Postfix + Rspamd + Dovecot + Sieve (vollständiger Mailflow) =
  
== Konfiguration von Rspamd ==
+
== Ziel ==
 +
* Aufbau eines vollständigen Mailfilters mit Spam- und Virenerkennung
 +
* Automatische Sortierung von Spam in den Junk-Ordner
 +
* Sauberer Mailflow ohne versteckte Fehlerquellen
  
Konfigurationsverzeichnis: 
+
== Architektur ==
* /etc/rspamd/ 
+
* Postfix nimmt E-Mails per SMTP an
 +
* Rspamd analysiert die Mail (Spam/Virus)
 +
* Dovecot übernimmt die Zustellung per LMTP
 +
* Sieve sortiert Spam anhand der Header in den Junk-Ordner
  
=== Virenscanner einrichten (ClamAV) === 
+
== Voraussetzung ==
 +
* Postfix installiert und funktionsfähig
 +
* Rspamd als Milter integriert
 +
* Dovecot installiert
  
Datei: /etc/rspamd/local.d/antivirus.conf 
+
== Sieve-Unterstützung installieren ==
 +
* apt install dovecot-sieve dovecot-managesieved
 +
* Diese Pakete erweitern Dovecot um serverseitige Filterregeln (Sieve).
 +
* Dadurch können Mails beim Zustellen automatisch verarbeitet werden.
 +
 
 +
== LMTP Zustellung aktivieren (entscheidend) ==
 +
Datei: /etc/postfix/main.cf
 
<pre>
 
<pre>
clamav {
+
virtual_transport = lmtp:unix:private/dovecot-lmtp
  scan_mime_parts = true;
 
  scan_text_mime = true;
 
  scan_image_mime = true;
 
  symbol = "CLAM_VIRUS";
 
  type = "clamav";
 
  servers = "/run/clamav/clamd.ctl";
 
}
 
 
</pre>
 
</pre>
 +
* Postfix übergibt Mails damit an Dovecot statt selbst zuzustellen.
 +
* Nur über diesen Weg wird Sieve beim Mail-Eingang ausgeführt.
  
Nach Änderungen Rspamd neu starten: 
+
== LMTP Socket in Dovecot aktivieren ==
* systemctl restart rspamd 
+
Datei: /etc/dovecot/conf.d/10-master.conf
 
 
=== Spam-Filter aktivieren ==
 
 
 
Datei: /etc/rspamd/local.d/classifier-bayes.conf
 
 
<pre>
 
<pre>
enabled = true;
+
service lmtp {
autolearn = true;
+
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
backend = "sqlite3";
+
    mode = 0600
 +
    user = postfix
 +
    group = postfix
 +
  }
 +
}
 
</pre>
 
</pre>
 +
* Dovecot stellt hier den Socket für Postfix bereit.
 +
* Ohne diesen Socket kann Postfix keine Mails an Dovecot übergeben.
  
Datei: /etc/rspamd/local.d/statistic.conf
+
== Sieve in Dovecot aktivieren ==
 +
Datei: /etc/dovecot/conf.d/20-lmtp.conf
 
<pre>
 
<pre>
backend = "sqlite3";
+
protocol lmtp {
 +
  mail_plugins = $mail_plugins sieve
 +
}
 
</pre>
 
</pre>
 +
* Das Sieve-Plugin wird für die Zustellung aktiviert.
 +
* Dadurch werden Regeln direkt beim Mail-Eingang ausgeführt.
  
== Postfix-Integration ==
+
== Sieve Plugin konfigurieren ==
 
+
Datei: /etc/dovecot/conf.d/90-sieve.conf
Rspamd als milter aktivieren: 
 
 
 
Datei: /etc/postfix/main.cf 
 
 
<pre>
 
<pre>
smtpd_milters = unix:/var/lib/rspamd/rspamd.sock
+
plugin {
non_smtpd_milters = unix:/var/lib/rspamd/rspamd.sock
+
  sieve = file:~/sieve;active=~/.dovecot.sieve
milter_default_action = accept
+
}
milter_protocol = 6
 
 
</pre>
 
</pre>
 +
* Diese Konfiguration legt den Speicherort der Regeln fest.
 +
* Jede Mail wird automatisch gegen diese Regel geprüft.
  
Postfix neu starten: 
+
== Rspamd Header verstehen ==
* systemctl restart postfix 
+
* Rspamd setzt Header wie "X-Spam-Flag" und "X-Spam-Score".
 +
* Diese Header enthalten die Bewertung und werden von Sieve ausgewertet.
  
== Rspamd Webinterface aktivieren ==
+
== Sieve Regel erstellen ==
 +
Datei: /home/USER/.dovecot.sieve
 +
<pre>
 +
require ["fileinto", "mailbox"];
  
Datei: /etc/rspamd/local.d/worker-controller.inc 
+
if header :contains "X-Spam-Flag" "YES" {
<pre>
+
  fileinto "Junk";
bind_socket = "127.0.0.1:11334";
+
  stop;
password = "$2$abcdef..."; # Passwort mit rspamadm pw generieren
+
}
enable_password = "$2$abcdef...";
 
 
</pre>
 
</pre>
 +
* Diese Regel erkennt Spam anhand des Rspamd-Headers.
 +
* Erkannte Spam-Mails werden automatisch in den Junk-Ordner verschoben.
  
Rspamd neu starten: 
+
== Sieve kompilieren ==
* systemctl restart rspamd 
+
* sievec /home/USER/.dovecot.sieve
 
+
* Die Regel wird in ein performantes Format übersetzt.
Aufruf: 
+
* Änderungen werden erst nach dem Kompilieren aktiv.
* http://localhost:11334/ 
 
 
 
== E-Mails automatisch lernen lassen ==
 
 
 
Spam in Junk trainieren: 
 
* rspamc learn_spam < /pfad/zu/spam-mail.eml 
 
 
 
Ham (kein Spam) trainieren: 
 
* rspamc learn_ham < /pfad/zu/ham-mail.eml 
 
 
 
== Testen == 
 
 
 
Eine Test-Mail mit EICAR (Testvirus) senden: 
 
* wget -qO- https://secure.eicar.org/eicar.com | base64 | mail -s "Testvirus" user@example.com 
 
 
 
== Logs prüfen == 
 
 
 
Spam und Virenlogs in: 
 
* tail -f /var/log/rspamd.log 
 
 
 
== Deaktivieren == 
 
 
 
Falls Rspamd nicht mehr genutzt werden soll: 
 
* systemctl stop rspamd 
 
* systemctl disable rspamd 
 
  
Postfix-Konfiguration zurücksetzen:
+
== Rechte setzen ==
* postconf -X smtpd_milters 
+
* chown USER:USER /home/USER/.dovecot.sieve*
* postconf -X non_smtpd_milters 
+
* Die Datei muss dem Benutzer gehören, damit sie verwendet wird.
* systemctl restart postfix 
+
* Falsche Rechte verhindern die Ausführung der Regel.
  
 +
== Dienste neu starten ==
 +
* systemctl restart dovecot
 +
* systemctl restart postfix
 +
* systemctl restart rspamd
 +
* Der Neustart lädt alle Konfigurationen neu.
 +
* Ohne Neustart bleiben Änderungen wirkungslos.
  
 +
== Funktionstest ==
 +
* GTUBE Testmail senden
 +
* Prüfen ob Mail im Junk-Ordner landet
 +
* Damit wird die komplette Kette überprüft.
 +
* Funktioniert das, ist der Mailflow korrekt aufgebaut.
  
==Fazit==
+
== Logs prüfen ==
;Rspamd + ClamAV bieten eine schnelle und effiziente Spam- und Virenerkennung.
+
* journalctl -u dovecot -f
;Bayes-Filter und automatische Lernfunktionen verbessern die Erkennungsrate.
+
* tail -f /var/log/rspamd.log
;Rspamd-Webinterface für Statistik und Feinjustierung.
+
* Logs zeigen Fehler bei Zustellung oder Filterung.
 +
* Besonders hilfreich bei fehlender Sieve-Ausführung.
  
==Quellen==
+
== Fazit ==
*https://rspamd.com/doc/tutorials/quickstart.html
+
* Rspamd filtert Inhalte, Dovecot übernimmt die Zustellung
*https://blog.21x9.org/Archiv/rspamd-mit-postfix
+
* Sieve sorgt für automatische Sortierung
 +
* Vollständiger und produktionsreifer Mailflow ohne Lücken

Version vom 20. März 2026, 06:21 Uhr

Mailserver: Postfix + Rspamd + Dovecot + Sieve (vollständiger Mailflow)

Ziel

  • Aufbau eines vollständigen Mailfilters mit Spam- und Virenerkennung
  • Automatische Sortierung von Spam in den Junk-Ordner
  • Sauberer Mailflow ohne versteckte Fehlerquellen

Architektur

  • Postfix nimmt E-Mails per SMTP an
  • Rspamd analysiert die Mail (Spam/Virus)
  • Dovecot übernimmt die Zustellung per LMTP
  • Sieve sortiert Spam anhand der Header in den Junk-Ordner

Voraussetzung

  • Postfix installiert und funktionsfähig
  • Rspamd als Milter integriert
  • Dovecot installiert

Sieve-Unterstützung installieren

  • apt install dovecot-sieve dovecot-managesieved
  • Diese Pakete erweitern Dovecot um serverseitige Filterregeln (Sieve).
  • Dadurch können Mails beim Zustellen automatisch verarbeitet werden.

LMTP Zustellung aktivieren (entscheidend)

Datei: /etc/postfix/main.cf

virtual_transport = lmtp:unix:private/dovecot-lmtp
  • Postfix übergibt Mails damit an Dovecot statt selbst zuzustellen.
  • Nur über diesen Weg wird Sieve beim Mail-Eingang ausgeführt.

LMTP Socket in Dovecot aktivieren

Datei: /etc/dovecot/conf.d/10-master.conf

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}
  • Dovecot stellt hier den Socket für Postfix bereit.
  • Ohne diesen Socket kann Postfix keine Mails an Dovecot übergeben.

Sieve in Dovecot aktivieren

Datei: /etc/dovecot/conf.d/20-lmtp.conf

protocol lmtp {
  mail_plugins = $mail_plugins sieve
}
  • Das Sieve-Plugin wird für die Zustellung aktiviert.
  • Dadurch werden Regeln direkt beim Mail-Eingang ausgeführt.

Sieve Plugin konfigurieren

Datei: /etc/dovecot/conf.d/90-sieve.conf

plugin {
  sieve = file:~/sieve;active=~/.dovecot.sieve
}
  • Diese Konfiguration legt den Speicherort der Regeln fest.
  • Jede Mail wird automatisch gegen diese Regel geprüft.

Rspamd Header verstehen

  • Rspamd setzt Header wie "X-Spam-Flag" und "X-Spam-Score".
  • Diese Header enthalten die Bewertung und werden von Sieve ausgewertet.

Sieve Regel erstellen

Datei: /home/USER/.dovecot.sieve

require ["fileinto", "mailbox"];

if header :contains "X-Spam-Flag" "YES" {
  fileinto "Junk";
  stop;
}
  • Diese Regel erkennt Spam anhand des Rspamd-Headers.
  • Erkannte Spam-Mails werden automatisch in den Junk-Ordner verschoben.

Sieve kompilieren

  • sievec /home/USER/.dovecot.sieve
  • Die Regel wird in ein performantes Format übersetzt.
  • Änderungen werden erst nach dem Kompilieren aktiv.

Rechte setzen

  • chown USER:USER /home/USER/.dovecot.sieve*
  • Die Datei muss dem Benutzer gehören, damit sie verwendet wird.
  • Falsche Rechte verhindern die Ausführung der Regel.

Dienste neu starten

  • systemctl restart dovecot
  • systemctl restart postfix
  • systemctl restart rspamd
  • Der Neustart lädt alle Konfigurationen neu.
  • Ohne Neustart bleiben Änderungen wirkungslos.

Funktionstest

  • GTUBE Testmail senden
  • Prüfen ob Mail im Junk-Ordner landet
  • Damit wird die komplette Kette überprüft.
  • Funktioniert das, ist der Mailflow korrekt aufgebaut.

Logs prüfen

  • journalctl -u dovecot -f
  • tail -f /var/log/rspamd.log
  • Logs zeigen Fehler bei Zustellung oder Filterung.
  • Besonders hilfreich bei fehlender Sieve-Ausführung.

Fazit

  • Rspamd filtert Inhalte, Dovecot übernimmt die Zustellung
  • Sieve sorgt für automatische Sortierung
  • Vollständiger und produktionsreifer Mailflow ohne Lücken