RSPAMD an WAZUH
Version vom 28. Juni 2026, 05:50 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Rspamd mit Virenerkennung = Rspamd wird als Milter an Postfix angebunden und prüft jede Mail. Über das Antivirus-Modul bindet es ClamAV ein und weist vers…“)
Rspamd mit Virenerkennung
Rspamd wird als Milter an Postfix angebunden und prüft jede Mail. Über das Antivirus-Modul bindet es ClamAV ein und weist verseuchte Mails ab.
Installation Rspamd
- Repo-Werkzeuge
- apt update
- apt install -y lsb-release wget gpg
- Signing-Key des offiziellen Rspamd-Repos
- mkdir -p /etc/apt/keyrings
- wget -O- https://rspamd.com/apt-stable/gpg.key | gpg --dearmor | tee /etc/apt/keyrings/rspamd.gpg > /dev/null
- Repo eintragen
- echo "deb [signed-by=/etc/apt/keyrings/rspamd.gpg] http://rspamd.com/apt-stable/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rspamd.list
- Rspamd und Redis installieren (Redis für Statistik/Cache)
- apt update
- apt install -y rspamd redis-server
- Dienste aktivieren
- systemctl enable --now redis-server
- systemctl enable --now rspamd
Rspamd an Postfix anbinden
Ohne diese Anbindung läuft Rspamd zwar, wird von Postfix aber nie aufgerufen.
- In die main.cf aufnehmen
- vi /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:11332 non_smtpd_milters = inet:127.0.0.1:11332 milter_default_action = accept milter_protocol = 6
- Wichtig
- Der smtps-Block (Port 465) muss den Milter explizit bekommen
Roundcube liefert über 465 ein. Ohne diese Zeile wird Rspamd für Webmail-Mail nicht aufgerufen, also auch nicht für die Virenprüfung.
- vi /etc/postfix/master.cf
smtps inet n - y - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_milters=inet:127.0.0.1:11332
- Postfix neu laden
- systemctl restart postfix
Installation ClamAV
- Scanner und Daemon installieren
- apt install -y clamav clamav-daemon
- Signaturen holen (clamd startet sonst nicht)
- systemctl stop clamav-freshclam
- freshclam
- systemctl start clamav-freshclam
- systemctl enable --now clamav-daemon
- Prüfen, dass der Socket da ist
- ls -l /run/clamav/clamd.ctl
Rspamd darf an den clamd-Socket
Der Rspamd-User muss in die clamav-Gruppe, sonst kein Zugriff auf den Unix-Socket.
- usermod -a -G clamav _rspamd
Antivirus-Modul konfigurieren
- Datei anlegen
- vi /etc/rspamd/local.d/antivirus.conf
clamav {
type = "clamav";
symbol = "CLAM_VIRUS";
servers = "/run/clamav/clamd.ctl";
# Virus gefunden => harte Ablehnung, unabhängig vom Spam-Score
action = "reject";
message = '${SCANNER}: Virus gefunden: "${VIRUS}"';
scan_mime_parts = true;
scan_text_mime = false;
scan_image_mime = false;
max_size = 20000000;
# EICAR sauber als eigenes Symbol erkennbar machen
patterns {
JUST_EICAR = '^Eicar-Test-Signature$';
}
}
- Syntax prüfen und neu starten
- rspamadm configtest
- systemctl restart clamav-daemon
- systemctl restart rspamd
Funktionstest
- 1. ClamAV direkt prüfen (muss "Eicar-Test-Signature FOUND" zeigen)
- echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' | clamdscan -
- 2. Mail mit EICAR-Anhang an einen Lab-User schicken
- echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /tmp/eicar.txt
- mail -s "Rechnung" -A /tmp/eicar.txt martha@it2XX.int < /dev/null
- 3. Treffer im Rspamd-Log
- tail -f /var/log/rspamd/rspamd.log | grep CLAM_VIRUS
Erwartete Logzeile:
CLAM_VIRUS(0.00){Eicar-Test-Signature;} ... action: reject