Rspamd kurz und gut

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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