Rspamd Einrichten: Unterschied zwischen den Versionen
| Zeile 1: | Zeile 1: | ||
=Rspamd und ClamAV installieren= | =Rspamd und ClamAV installieren= | ||
==Debian/Ubuntu== | ==Debian/Ubuntu== | ||
| − | + | apt install rspamd clamav-daemon clamav-freshclam redis-server postfix swaks | |
==RHEL/CentOS== | ==RHEL/CentOS== | ||
| − | + | dnf install rspamd clamav clamav-update redis postfix swaks | |
| + | |||
| + | Rspamd übernimmt die Spam-Analyse und ClamAV den Virenscan. Redis wird für Caching und Bayes-Filter benötigt und ist essenziell für den produktiven Betrieb. | ||
=Enablen und Starten der Dienste= | =Enablen und Starten der Dienste= | ||
| − | + | systemctl enable rspamd --now | |
| − | + | systemctl enable clamav-daemon --now | |
| − | + | systemctl enable redis-server --now | |
| + | |||
| + | Die Dienste werden dauerhaft aktiviert und direkt gestartet. Ohne laufende Dienste findet weder Spam- noch Virenprüfung statt. | ||
=== Redis-Anbindung (Das Gedächtnis von Rspamd) === | === Redis-Anbindung (Das Gedächtnis von Rspamd) === | ||
| − | + | Rspamd nutzt Redis zur Speicherung von Scan-Ergebnissen und zum Lernen von Spam. Dadurch werden wiederkehrende Inhalte schneller verarbeitet und die Erkennung verbessert sich. | |
| − | + | ||
| + | ==== Installation und Aktivierung ==== | ||
| + | apt install redis-server | ||
| + | systemctl enable --now redis-server | ||
| + | |||
| + | Redis läuft als zentraler Key-Value-Store im Hintergrund. Er ist Voraussetzung für Bayes, Greylisting und Caching. | ||
==== Konfiguration in Rspamd ==== | ==== Konfiguration in Rspamd ==== | ||
| − | + | Datei: /etc/rspamd/local.d/redis.conf | |
| + | |||
<pre> | <pre> | ||
servers = "127.0.0.1:6379"; | servers = "127.0.0.1:6379"; | ||
</pre> | </pre> | ||
| + | |||
| + | Hier wird Rspamd mitgeteilt, wo Redis erreichbar ist. Ohne diese Angabe arbeiten mehrere Module nur eingeschränkt. | ||
==== Prüfung der Anbindung ==== | ==== Prüfung der Anbindung ==== | ||
| − | + | rspamadm control stat | |
| + | |||
| + | In der Ausgabe sollte Redis als „online“ erscheinen. Ist das nicht der Fall, funktioniert das Caching nicht korrekt. | ||
==== Warum das für ClamAV wichtig ist ==== | ==== Warum das für ClamAV wichtig ist ==== | ||
| − | + | Rspamd speichert Ergebnisse von Virenscans zwischen. Dadurch werden identische Anhänge nicht mehrfach geprüft, was die CPU deutlich entlastet. | |
| − | |||
=Zustand prüfen= | =Zustand prüfen= | ||
| − | + | systemctl status rspamd | |
| − | + | systemctl status clamav-daemon | |
| − | + | systemctl status redis-server | |
| + | |||
| + | Hier wird überprüft, ob alle Dienste laufen. Fehler in diesem Schritt führen später zu schwer nachvollziehbaren Problemen. | ||
=Rspamd Dienste und Ports= | =Rspamd Dienste und Ports= | ||
| − | ==Rspamd | + | ==Rspamd Proxy== |
| − | + | Der Proxy nimmt Mails entgegen und verteilt sie intern an Worker. Er ist die zentrale Schnittstelle für eingehende Verbindungen. | |
<pre> | <pre> | ||
Port: 11332/tcp | Port: 11332/tcp | ||
| Zeile 41: | Zeile 56: | ||
==Rspamd Worker== | ==Rspamd Worker== | ||
| + | Der Worker führt die eigentliche Analyse durch. Hier werden Regeln, Bayes und externe Dienste verarbeitet. | ||
<pre> | <pre> | ||
Port: 11333/tcp | Port: 11333/tcp | ||
| Zeile 46: | Zeile 62: | ||
==Rspamd Controller== | ==Rspamd Controller== | ||
| + | Der Controller stellt das Webinterface und die API bereit. Darüber erfolgt Administration und Monitoring. | ||
<pre> | <pre> | ||
Port: 11334/tcp | Port: 11334/tcp | ||
</pre> | </pre> | ||
| − | =Passwort für den Rspamd Controller= | + | =Passwort für den Rspamd Controller und Port nach außen öffnen= |
| − | + | rspamadm pw | |
| + | |||
| + | cat /etc/rspamd/override.d/worker-controller.inc | ||
| − | |||
<pre> | <pre> | ||
password = "HASH"; | password = "HASH"; | ||
| Zeile 59: | Zeile 77: | ||
</pre> | </pre> | ||
| − | =Postfix | + | Das Passwort wird als Hash gespeichert und schützt das Webinterface. Durch „*:11334“ ist der Zugriff auch von außen möglich. |
| − | + | ||
| − | + | =Restart= | |
| − | * postfix | + | systemctl restart rspamd |
| + | |||
| + | Nach Konfigurationsänderungen muss Rspamd neu gestartet werden. Andernfalls werden Änderungen nicht übernommen. | ||
| + | |||
| + | =Zugriff auf das Webinterface= | ||
| + | http://IP-Mailserver:11334 | ||
| + | |||
| + | Das Webinterface zeigt Statistiken, Logs und ermöglicht manuelles Training. Es ist das wichtigste Werkzeug für Betrieb und Analyse. | ||
| + | |||
| + | =Milters= | ||
| + | Milters sind Filter, die direkt in den Mailfluss von Postfix eingreifen. Sie ermöglichen Entscheidungen in Echtzeit während der SMTP-Kommunikation. | ||
| + | |||
| + | =Einbinden in Postfix= | ||
| + | postconf -e "smtpd_milters=inet:127.0.0.1:11332" | ||
| + | postconf -e "non_smtpd_milters=inet:127.0.0.1:11332" | ||
| + | postfix reload | ||
| + | |||
| + | Rspamd wird hier als Milter eingebunden. Dadurch wird jede eingehende Mail automatisch geprüft. | ||
| + | |||
| + | =Gtube Testmail= | ||
| + | swaks --to root@localhost --server 127.0.0.1 --data "Subject: GTUBE XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X" | ||
| + | |||
| + | GTUBE ist ein standardisierter Spam-Test. Wird die Mail erkannt, funktioniert die Spam-Erkennung korrekt. | ||
| + | |||
| + | =Die Logs= | ||
| + | journalctl -u postfix | grep cleanup | ||
| − | + | Hier sieht man, ob Postfix Mails ablehnt oder annimmt. Besonders wichtig ist die Rückmeldung vom Milter (Rspamd). | |
| − | |||
| − | =ClamAV Integration (UNIX Socket)= | + | =ClamAV-Integration in Rspamd (UNIX Socket)= |
| − | + | Rspamd kommuniziert lokal über einen UNIX Socket mit ClamAV. Dies ist stabiler und benötigt keine offenen Netzwerkports. | |
==ClamAV Konfiguration== | ==ClamAV Konfiguration== | ||
| − | + | Datei: /etc/clamav/clamd.conf | |
| + | |||
<pre> | <pre> | ||
LocalSocket /run/clamav/clamd.ctl | LocalSocket /run/clamav/clamd.ctl | ||
| Zeile 77: | Zeile 120: | ||
</pre> | </pre> | ||
| − | + | Der Socket stellt die Verbindung zwischen Rspamd und ClamAV her. TCP wird bewusst nicht verwendet. | |
| − | |||
==Rspamd Konfiguration== | ==Rspamd Konfiguration== | ||
| − | + | Datei: /etc/rspamd/override.d/antivirus.conf | |
| + | |||
<pre> | <pre> | ||
enabled = true; | enabled = true; | ||
| Zeile 97: | Zeile 140: | ||
</pre> | </pre> | ||
| − | + | Rspamd nutzt hier den Socket als Backend für Virenscans. Wird ein Virus erkannt, wird die Mail sofort abgelehnt. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | =Rspamd Schwellenwerte= | + | =Rspamd Schwellenwerte (Actions)= |
{| class="wikitable" | {| class="wikitable" | ||
| − | ! Aktion !! Score !! Bedeutung | + | ! Aktion !! Empfohlener Score !! Bedeutung |
|- | |- | ||
| reject | | reject | ||
| 15.0 | | 15.0 | ||
| − | | Mail wird abgelehnt | + | | Die Mail wird hart abgelehnt |
|- | |- | ||
| add_header | | add_header | ||
| 6.0 | | 6.0 | ||
| − | | Spam-Header | + | | Mail wird zugestellt mit Spam-Header |
|- | |- | ||
| greylist | | greylist | ||
| Zeile 141: | Zeile 160: | ||
| no action | | no action | ||
| < 4.0 | | < 4.0 | ||
| − | | Mail | + | | Mail gilt als sauber |
|} | |} | ||
| − | =Fehlerdiagnose= | + | Rspamd bewertet jede Mail anhand von Punkten. Die Schwellenwerte bestimmen, wie mit der Mail verfahren wird. |
| − | == | + | |
| − | + | =Kurzer Check der Funktionsweise= | |
| − | + | rspamc < /pfad/zu/einer/test.eml | |
| + | |||
| + | Mit rspamc kann eine Mail lokal analysiert werden. Das Ergebnis zeigt alle Regeln und Bewertungen im Detail. | ||
| + | |||
| + | =Fehlerdiagnose und Administration= | ||
| + | Diese Zusammenfassung dient als Spickzettel für die tägliche Administration und Fehlerbehebung. | ||
| + | |||
| + | === Protokolldateien überwachen === | ||
| + | tail -f /var/log/rspamd/rspamd.log | grep -E "antivirus|clamav" | ||
| + | |||
| + | Hier kann man live sehen, ob ClamAV angesprochen wird. Das ist der wichtigste Debug-Mechanismus. | ||
| + | |||
| + | === Kommunikation prüfen === | ||
| + | redis-cli flushall | ||
| + | systemctl restart rspamd | ||
| + | |||
| + | Redis wird geleert, um Cache-Effekte auszuschließen. So sieht man echte Scan-Ergebnisse. | ||
| − | == | + | === UNIX Socket Debug === |
| − | + | apt install strace | |
| + | strace -p $(pidof clamd) -e trace=network | ||
| − | + | Mit strace kann man beobachten, ob ClamAV angesprochen wird. Das ist hilfreich bei Kommunikationsproblemen. | |
| − | |||
| − | |||
| − | == | + | === TCP Debug (optional) === |
| − | + | apt install tcpdump | |
| − | + | tcpdump -ni lo port 3310 | |
| − | + | Nur relevant, wenn TCP verwendet wird. Bei UNIX-Sockets ist dieser Schritt nicht notwendig. | |
| − | |||
| − | |||
Version vom 22. März 2026, 09:13 Uhr
Rspamd und ClamAV installieren
Debian/Ubuntu
apt install rspamd clamav-daemon clamav-freshclam redis-server postfix swaks
RHEL/CentOS
dnf install rspamd clamav clamav-update redis postfix swaks
Rspamd übernimmt die Spam-Analyse und ClamAV den Virenscan. Redis wird für Caching und Bayes-Filter benötigt und ist essenziell für den produktiven Betrieb.
Enablen und Starten der Dienste
systemctl enable rspamd --now systemctl enable clamav-daemon --now systemctl enable redis-server --now
Die Dienste werden dauerhaft aktiviert und direkt gestartet. Ohne laufende Dienste findet weder Spam- noch Virenprüfung statt.
Redis-Anbindung (Das Gedächtnis von Rspamd)
Rspamd nutzt Redis zur Speicherung von Scan-Ergebnissen und zum Lernen von Spam. Dadurch werden wiederkehrende Inhalte schneller verarbeitet und die Erkennung verbessert sich.
Installation und Aktivierung
apt install redis-server systemctl enable --now redis-server
Redis läuft als zentraler Key-Value-Store im Hintergrund. Er ist Voraussetzung für Bayes, Greylisting und Caching.
Konfiguration in Rspamd
Datei: /etc/rspamd/local.d/redis.conf
servers = "127.0.0.1:6379";
Hier wird Rspamd mitgeteilt, wo Redis erreichbar ist. Ohne diese Angabe arbeiten mehrere Module nur eingeschränkt.
Prüfung der Anbindung
rspamadm control stat
In der Ausgabe sollte Redis als „online“ erscheinen. Ist das nicht der Fall, funktioniert das Caching nicht korrekt.
Warum das für ClamAV wichtig ist
Rspamd speichert Ergebnisse von Virenscans zwischen. Dadurch werden identische Anhänge nicht mehrfach geprüft, was die CPU deutlich entlastet.
Zustand prüfen
systemctl status rspamd systemctl status clamav-daemon systemctl status redis-server
Hier wird überprüft, ob alle Dienste laufen. Fehler in diesem Schritt führen später zu schwer nachvollziehbaren Problemen.
Rspamd Dienste und Ports
Rspamd Proxy
Der Proxy nimmt Mails entgegen und verteilt sie intern an Worker. Er ist die zentrale Schnittstelle für eingehende Verbindungen.
Port: 11332/tcp
Rspamd Worker
Der Worker führt die eigentliche Analyse durch. Hier werden Regeln, Bayes und externe Dienste verarbeitet.
Port: 11333/tcp
Rspamd Controller
Der Controller stellt das Webinterface und die API bereit. Darüber erfolgt Administration und Monitoring.
Port: 11334/tcp
Passwort für den Rspamd Controller und Port nach außen öffnen
rspamadm pw
cat /etc/rspamd/override.d/worker-controller.inc
password = "HASH"; bind_socket ="*:11334";
Das Passwort wird als Hash gespeichert und schützt das Webinterface. Durch „*:11334“ ist der Zugriff auch von außen möglich.
Restart
systemctl restart rspamd
Nach Konfigurationsänderungen muss Rspamd neu gestartet werden. Andernfalls werden Änderungen nicht übernommen.
Zugriff auf das Webinterface
Das Webinterface zeigt Statistiken, Logs und ermöglicht manuelles Training. Es ist das wichtigste Werkzeug für Betrieb und Analyse.
Milters
Milters sind Filter, die direkt in den Mailfluss von Postfix eingreifen. Sie ermöglichen Entscheidungen in Echtzeit während der SMTP-Kommunikation.
Einbinden in Postfix
postconf -e "smtpd_milters=inet:127.0.0.1:11332" postconf -e "non_smtpd_milters=inet:127.0.0.1:11332" postfix reload
Rspamd wird hier als Milter eingebunden. Dadurch wird jede eingehende Mail automatisch geprüft.
Gtube Testmail
swaks --to root@localhost --server 127.0.0.1 --data "Subject: GTUBE XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X"
GTUBE ist ein standardisierter Spam-Test. Wird die Mail erkannt, funktioniert die Spam-Erkennung korrekt.
Die Logs
journalctl -u postfix | grep cleanup
Hier sieht man, ob Postfix Mails ablehnt oder annimmt. Besonders wichtig ist die Rückmeldung vom Milter (Rspamd).
ClamAV-Integration in Rspamd (UNIX Socket)
Rspamd kommuniziert lokal über einen UNIX Socket mit ClamAV. Dies ist stabiler und benötigt keine offenen Netzwerkports.
ClamAV Konfiguration
Datei: /etc/clamav/clamd.conf
LocalSocket /run/clamav/clamd.ctl LocalSocketMode 666
Der Socket stellt die Verbindung zwischen Rspamd und ClamAV her. TCP wird bewusst nicht verwendet.
Rspamd Konfiguration
Datei: /etc/rspamd/override.d/antivirus.conf
enabled = true;
clamav {
type = "clamav";
symbol = "CLAM_VIRUS";
servers = "/run/clamav/clamd.ctl";
scan_text_mime = true;
scan_mime_parts = true;
min_size = 0;
scan_unauthenticated = true;
stream = true;
action = "reject";
}
Rspamd nutzt hier den Socket als Backend für Virenscans. Wird ein Virus erkannt, wird die Mail sofort abgelehnt.
Rspamd Schwellenwerte (Actions)
| Aktion | Empfohlener Score | Bedeutung |
|---|---|---|
| reject | 15.0 | Die Mail wird hart abgelehnt |
| add_header | 6.0 | Mail wird zugestellt mit Spam-Header |
| greylist | 4.0 | temporäre Ablehnung |
| no action | < 4.0 | Mail gilt als sauber |
Rspamd bewertet jede Mail anhand von Punkten. Die Schwellenwerte bestimmen, wie mit der Mail verfahren wird.
Kurzer Check der Funktionsweise
rspamc < /pfad/zu/einer/test.eml
Mit rspamc kann eine Mail lokal analysiert werden. Das Ergebnis zeigt alle Regeln und Bewertungen im Detail.
Fehlerdiagnose und Administration
Diese Zusammenfassung dient als Spickzettel für die tägliche Administration und Fehlerbehebung.
Protokolldateien überwachen
tail -f /var/log/rspamd/rspamd.log | grep -E "antivirus|clamav"
Hier kann man live sehen, ob ClamAV angesprochen wird. Das ist der wichtigste Debug-Mechanismus.
Kommunikation prüfen
redis-cli flushall systemctl restart rspamd
Redis wird geleert, um Cache-Effekte auszuschließen. So sieht man echte Scan-Ergebnisse.
UNIX Socket Debug
apt install strace strace -p $(pidof clamd) -e trace=network
Mit strace kann man beobachten, ob ClamAV angesprochen wird. Das ist hilfreich bei Kommunikationsproblemen.
TCP Debug (optional)
apt install tcpdump tcpdump -ni lo port 3310
Nur relevant, wenn TCP verwendet wird. Bei UNIX-Sockets ist dieser Schritt nicht notwendig.