Rspamd kurz und gut: Unterschied zwischen den Versionen
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 |
| − | * | + | * Grundlegende Mailzustellung läuft bereits |
| − | |||
== 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 | ||
| − | * | + | |
| − | * | + | == 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> | ||
| − | |||
| − | |||
== 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> | ||
| − | |||
| − | |||
== 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> | ||
| − | |||
| − | |||
== 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> | ||
| − | |||
| − | |||
| − | == | + | == Sieve Regel für Spam-Sortierung erstellen == |
| − | * Rspamd | + | * Die Regel prüft die von Rspamd gesetzten Header. |
| − | * | + | * Erkannter Spam wird automatisch in den Junk-Ordner verschoben. |
| − | |||
| − | |||
Datei: /home/USER/.dovecot.sieve | Datei: /home/USER/.dovecot.sieve | ||
<pre> | <pre> | ||
| Zeile 78: | Zeile 86: | ||
} | } | ||
</pre> | </pre> | ||
| − | |||
| − | |||
== 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 | ||
| − | |||
| − | |||
| − | |||
| − | |||
* chown USER:USER /home/USER/.dovecot.sieve* | * chown USER:USER /home/USER/.dovecot.sieve* | ||
| − | |||
| − | |||
== 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 | ||
| − | |||
| − | |||
== 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 |
| − | + | * tail -f /var/log/mail.log | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | * tail -f /var/log/ | ||
| − | |||
| − | |||
== 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. |
| − | * | + | * 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.