Rspamd kurz und gut: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 13: Zeile 13:
  
 
== Voraussetzung ==
 
== Voraussetzung ==
* Postfix installiert und funktionsfähig
+
* Postfix und Dovecot sind installiert und funktionsfähig
* Rspamd als Milter integriert
+
* Grundlegende Mailzustellung läuft bereits
* Dovecot installiert
 
  
 
== Sieve-Unterstützung installieren ==
 
== Sieve-Unterstützung installieren ==
 +
* Sieve erweitert Dovecot um serverseitige Filterregeln, die beim Zustellen ausgeführt werden.
 +
* Ohne Sieve ist keine automatische Sortierung von Spam möglich.
 
* apt install dovecot-sieve dovecot-managesieved
 
* apt install dovecot-sieve dovecot-managesieved
* Diese Pakete erweitern Dovecot um serverseitige Filterregeln (Sieve).
+
 
* Dadurch können Mails beim Zustellen automatisch verarbeitet werden.
+
== Rspamd als Milter in Postfix einbinden ==
 +
* Postfix übergibt eingehende Mails an Rspamd zur Analyse.
 +
* Rspamd fügt Header hinzu, die später für die Sortierung verwendet werden.
 +
Datei: /etc/postfix/main.cf
 +
<pre>
 +
smtpd_milters = inet:localhost:11332
 +
non_smtpd_milters = $smtpd_milters
 +
milter_default_action = accept
 +
milter_protocol = 6
 +
</pre>
  
 
== LMTP Zustellung aktivieren (entscheidend) ==
 
== LMTP Zustellung aktivieren (entscheidend) ==
 +
* Postfix übergibt die Mail an Dovecot statt sie selbst zuzustellen.
 +
* Nur bei LMTP-Zustellung wird Sieve beim Mail-Eingang ausgeführt.
 
Datei: /etc/postfix/main.cf
 
Datei: /etc/postfix/main.cf
 
<pre>
 
<pre>
 
virtual_transport = lmtp:unix:private/dovecot-lmtp
 
virtual_transport = lmtp:unix:private/dovecot-lmtp
 
</pre>
 
</pre>
* 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 ==
 
== LMTP Socket in Dovecot aktivieren ==
 +
* Dovecot stellt einen lokalen Socket bereit, über den Postfix Mails übergeben kann.
 +
* Ohne diesen Socket funktioniert die Übergabe von Postfix an Dovecot nicht.
 
Datei: /etc/dovecot/conf.d/10-master.conf
 
Datei: /etc/dovecot/conf.d/10-master.conf
 
<pre>
 
<pre>
Zeile 41: Zeile 53:
 
}
 
}
 
</pre>
 
</pre>
* Dovecot stellt hier den Socket für Postfix bereit.
 
* Ohne diesen Socket kann Postfix keine Mails an Dovecot übergeben.
 
  
 
== Sieve in Dovecot aktivieren ==
 
== Sieve in Dovecot aktivieren ==
 +
* Das Sieve-Plugin wird für die lokale Zustellung aktiviert.
 +
* Dadurch werden Filterregeln direkt beim Eingang der Mail angewendet.
 
Datei: /etc/dovecot/conf.d/20-lmtp.conf
 
Datei: /etc/dovecot/conf.d/20-lmtp.conf
 
<pre>
 
<pre>
Zeile 51: Zeile 63:
 
}
 
}
 
</pre>
 
</pre>
* Das Sieve-Plugin wird für die Zustellung aktiviert.
 
* Dadurch werden Regeln direkt beim Mail-Eingang ausgeführt.
 
  
 
== Sieve Plugin konfigurieren ==
 
== Sieve Plugin konfigurieren ==
 +
* Definiert den Speicherort der Sieve-Regeln pro Benutzer.
 +
* Die aktive Regel wird automatisch bei jeder Mail ausgeführt.
 
Datei: /etc/dovecot/conf.d/90-sieve.conf
 
Datei: /etc/dovecot/conf.d/90-sieve.conf
 
<pre>
 
<pre>
Zeile 61: Zeile 73:
 
}
 
}
 
</pre>
 
</pre>
* Diese Konfiguration legt den Speicherort der Regeln fest.
 
* Jede Mail wird automatisch gegen diese Regel geprüft.
 
  
== Rspamd Header verstehen ==
+
== Sieve Regel für Spam-Sortierung erstellen ==
* Rspamd setzt Header wie "X-Spam-Flag" und "X-Spam-Score".
+
* Die Regel prüft die von Rspamd gesetzten Header.
* Diese Header enthalten die Bewertung und werden von Sieve ausgewertet.
+
* Erkannter Spam wird automatisch in den Junk-Ordner verschoben.
 
 
== Sieve Regel erstellen ==
 
 
Datei: /home/USER/.dovecot.sieve
 
Datei: /home/USER/.dovecot.sieve
 
<pre>
 
<pre>
Zeile 78: Zeile 86:
 
}
 
}
 
</pre>
 
</pre>
* Diese Regel erkennt Spam anhand des Rspamd-Headers.
 
* Erkannte Spam-Mails werden automatisch in den Junk-Ordner verschoben.
 
  
 
== Sieve kompilieren ==
 
== Sieve kompilieren ==
 +
* Die Regel wird in ein optimiertes Format übersetzt.
 +
* Die korrekten Dateirechte sind notwendig, damit Dovecot die Regel verwenden kann.
 
* sievec /home/USER/.dovecot.sieve
 
* 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*
 
* 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 ==
 
== Dienste neu starten ==
 +
* Alle beteiligten Dienste müssen neu gestartet werden, damit Änderungen aktiv werden.
 +
* Ohne Neustart bleiben Konfigurationsänderungen wirkungslos.
 
* systemctl restart dovecot
 
* systemctl restart dovecot
 
* systemctl restart postfix
 
* systemctl restart postfix
 
* systemctl restart rspamd
 
* systemctl restart rspamd
* Der Neustart lädt alle Konfigurationen neu.
 
* Ohne Neustart bleiben Änderungen wirkungslos.
 
  
 
== Funktionstest ==
 
== Funktionstest ==
 +
* Eine Testmail wird erzeugt, um den kompletten Mailflow zu prüfen.
 +
* Ziel ist, dass Spam automatisch im Junk-Ordner landet.
 
* GTUBE Testmail senden
 
* GTUBE Testmail senden
* Prüfen ob Mail im Junk-Ordner landet
+
* Prüfen, ob die Mail im Junk-Ordner landet
* Damit wird die komplette Kette überprüft.
+
* tail -f /var/log/mail.log
* 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 ==
 
== Fazit ==
* Rspamd filtert Inhalte, Dovecot übernimmt die Zustellung
+
* Rspamd filtert Inhalte, Dovecot übernimmt die Zustellung via LMTP.
* Sieve sorgt für automatische Sortierung
+
* Sieve sorgt für die automatische Sortierung basierend auf den Milter-Ergebnissen.
* Vollständiger und produktionsreifer Mailflow ohne Lücken
+
* Das Setup ist modular, sicher und entspricht modernen Standards.

Version vom 20. März 2026, 06:25 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 und Dovecot sind installiert und funktionsfähig
  • Grundlegende Mailzustellung läuft bereits

Sieve-Unterstützung installieren

  • Sieve erweitert Dovecot um serverseitige Filterregeln, die beim Zustellen ausgeführt werden.
  • Ohne Sieve ist keine automatische Sortierung von Spam möglich.
  • apt install dovecot-sieve dovecot-managesieved

Rspamd als Milter in Postfix einbinden

  • Postfix übergibt eingehende Mails an Rspamd zur Analyse.
  • Rspamd fügt Header hinzu, die später für die Sortierung verwendet werden.

Datei: /etc/postfix/main.cf

smtpd_milters = inet:localhost:11332
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 6

LMTP Zustellung aktivieren (entscheidend)

  • Postfix übergibt die Mail an Dovecot statt sie selbst zuzustellen.
  • Nur bei LMTP-Zustellung wird Sieve beim Mail-Eingang ausgeführt.

Datei: /etc/postfix/main.cf

virtual_transport = lmtp:unix:private/dovecot-lmtp

LMTP Socket in Dovecot aktivieren

  • Dovecot stellt einen lokalen Socket bereit, über den Postfix Mails übergeben kann.
  • Ohne diesen Socket funktioniert die Übergabe von Postfix an Dovecot nicht.

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

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}

Sieve in Dovecot aktivieren

  • Das Sieve-Plugin wird für die lokale Zustellung aktiviert.
  • Dadurch werden Filterregeln direkt beim Eingang der Mail angewendet.

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

protocol lmtp {
  mail_plugins = $mail_plugins sieve
}

Sieve Plugin konfigurieren

  • Definiert den Speicherort der Sieve-Regeln pro Benutzer.
  • Die aktive Regel wird automatisch bei jeder Mail ausgeführt.

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

plugin {
  sieve = file:~/sieve;active=~/.dovecot.sieve
}

Sieve Regel für Spam-Sortierung erstellen

  • Die Regel prüft die von Rspamd gesetzten Header.
  • Erkannter Spam wird automatisch in den Junk-Ordner verschoben.

Datei: /home/USER/.dovecot.sieve

require ["fileinto", "mailbox"];

if header :contains "X-Spam-Flag" "YES" {
  fileinto "Junk";
  stop;
}

Sieve kompilieren

  • Die Regel wird in ein optimiertes Format übersetzt.
  • Die korrekten Dateirechte sind notwendig, damit Dovecot die Regel verwenden kann.
  • sievec /home/USER/.dovecot.sieve
  • chown USER:USER /home/USER/.dovecot.sieve*

Dienste neu starten

  • Alle beteiligten Dienste müssen neu gestartet werden, damit Änderungen aktiv werden.
  • Ohne Neustart bleiben Konfigurationsänderungen wirkungslos.
  • systemctl restart dovecot
  • systemctl restart postfix
  • systemctl restart rspamd

Funktionstest

  • Eine Testmail wird erzeugt, um den kompletten Mailflow zu prüfen.
  • Ziel ist, dass Spam automatisch im Junk-Ordner landet.
  • GTUBE Testmail senden
  • Prüfen, ob die Mail im Junk-Ordner landet
  • tail -f /var/log/mail.log

Fazit

  • Rspamd filtert Inhalte, Dovecot übernimmt die Zustellung via LMTP.
  • Sieve sorgt für die automatische Sortierung basierend auf den Milter-Ergebnissen.
  • Das Setup ist modular, sicher und entspricht modernen Standards.