Rspamd Einrichten

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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

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 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.