- Anmelden oder Registrieren, um Kommentare verfassen zu können
- 58 Aufrufe
Rspamd auf Plesk installieren und parallel zu Amavis/SpamAssassin testen
✨ Motivation
In Zeiten immer raffinierterer Spam-Techniken geraten klassische Antispam-Systeme zunehmend an ihre Grenzen. Moderne Spamwellen verwenden dynamische Inhalte, wechselnde Absender-Infrastrukturen und umgehen zuverlässig einfache heuristische Filter. Dabei greifen viele Mailserver nach wie vor auf bewährte, aber in die Jahre gekommene Konstruktionen zurück:
- SpamAssassin, ursprünglich veröffentlicht 2001, arbeitet regelbasiert mit statischen Signaturen und externen Quellen wie Pyzor, Razor oder DCC. Häufig kommt noch die Version 3.x zum Einsatz, obwohl bereits Version 4.x verfügbar ist.
- Amavis, eingeführt um 2002, agiert als content filter und Schnittstelle zwischen MTA (z. B. Postfix) und Tools wie ClamAV und SpamAssassin. Die Konfiguration erfolgt oft in schwer wartbaren Perl-Dateien wie
50-user
.
Diese traditionellen Setups sind funktional, aber wartungsintensiv. Sie benötigen individuelle Feinjustierung, etwa durch lokale Scores oder Blacklists, um halbwegs Schritt mit modernen Angriffswellen zu halten. Zudem laufen sie in vielen Fällen ohne Redis-Unterstützung, ohne dynamisches Lernen und mit wenig Transparenz über Entscheidungskriterien.
Rspamd hingegen bietet einen modularen, performanten Ansatz:
- schnelle Bewertung über C und Lua
- Webinterface mit Live-Analyse
- Unterstützung für Redis, Fuzzy-Hashing und Bayes-Lernen
- Integration von SPF, DKIM, DMARC, SURBL
- einfache Multimap-Regeln für Black/Whitelist
Auf Plesk-Servern bietet sich daher ein paralleler Testlauf an – so lassen sich Ergebnisse vergleichen, ohne die bestehende Mail-Infrastruktur zu gefährden. In diesem Artikel zeige ich, wie man Rspamd zunächst neben Amavis/SpamAssassin einsetzt, testet und dabei erste Optimierungen wie eine zentrale SURBL-Whitelist integriert.
🔹 Repository & Installation
1. Rspamd-Repository hinzufügen (angepasst für ARM/i386-Systeme)
# GPG-Key speichern
curl -s https://rspamd.com/apt-stable/gpg.key | gpg --dearmor -o /usr/share/keyrings/rspamd.gpg
# Repository hinzufügen (ohne [arch=amd64] i386-Warnung für ARM vermeiden!)
echo "deb [signed-by=/usr/share/keyrings/rspamd.gpg] https://rspamd.com/apt-stable/ $(lsb_release -cs) main" \
| tee /etc/apt/sources.list.d/rspamd.list
apt update
2. Rspamd + Redis installieren
apt install rspamd redis-server redis-tools
🔹 Grundkonfiguration
1. Webinterface aktivieren
mkdir -p /etc/rspamd/local.d
nano /etc/rspamd/local.d/worker-controller.inc
Inhalt:
bind_socket = "127.0.0.1:11334";
password = "$2$<hash>"; # erzeugt mit `rspamadm pw`
enable_password = true;
2. Dienst starten
systemctl enable rspamd --now
🔹 Redis absichern und sauber trennen
Rspamd nutzt Redis zur Speicherung von Fuzzy-Hashes, Bayes-Daten und diversen Scores. Standardmäßig erfolgt dies in Datenbank 0 – was bei paralleler Nutzung von Redis durch andere Dienste (z. B. Matomo, Drupal, Nextcloud) zu Kollisionen oder ungewolltem Datenmischbetrieb führen kann.
👉 Empfehlung:
- Rspamd sollte auf eine eigene Redis-Datenbank, z. B.
db = 1
, zugreifen. - Der Zugriff sollte mit einem Passwort abgesichert sein.
Konfiguration:
nano /etc/rspamd/local.d/redis.conf
servers = "127.0.0.1";
password = "geheimes-passwort";
db = 1;
🔐 Das Passwort kann in der
/etc/redis/redis.conf
gesetzt werden:
requirepass geheimes-passwort
⚠️ Danach Redis neu starten:
systemctl restart redis
So bleibt die Trennung zwischen Rspamd und anderen Redis-basierten Systemen jederzeit nachvollziehbar und wartbar.
🔹 Postfix parallel anbinden (ohne Amavis-Abschaltung)
systemctl restart postfix
> 🔐 **Wichtig:** Der von Plesk konfigurierte Milter (meist für DKIM/DMARC-Signierung zuständig) darf **nicht entfernt** oder überschrieben werden. Wenn Rspamd zusätzlich als Milter eingebunden wird, muss er einfach **ergänzend** zu bestehenden Einträgen konfiguriert werden.
>
> Beispiel (mehrere Milter gleichzeitig):
> ```
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:127.0.0.1:11332, inet:127.0.0.1:12768
non_smtpd_milters = inet:127.0.0.1:11332
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}
> Hier bleibt Plesk’s Milter auf Port `12768` aktiv, während `11332` für Rspamd ergänzt wird.
> ⚠️ Rspamd wird Mails **nicht blockieren**, sondern nur analysieren und in den Headern markieren!
---
## 🔹 Test & WebUI
- Weboberfläche unter: `http://localhost:11334`
- Logs: `/var/log/rspamd/rspamd.log`
- Testmail senden:
```bash
echo "Test Viagra Spam" | mail -s "Rspamd Test" user@domain.de
- Headerauswertung:
grep -i rspamd /var/mail/<user>
🔹 SURBL & Whitelist-Konfiguration (Beispiel)
1. Zentrale Whitelist-Datei
nano /etc/rspamd/maps.d/custom_whitelist.map
Inhalt:
lufthansa.com
condor.com
staralliance.com
2. Whitelist in SURBL einbinden
nano /etc/rspamd/local.d/surbl.conf
whitelist = "/etc/rspamd/maps.d/custom_whitelist.map";
3. Optional: false positives neutralisieren
nano /etc/rspamd/local.d/force_actions.conf
rules {
whitelist_surbl_domains {
expression = "SURBL && from_domain:/etc/rspamd/maps.d/custom_whitelist.map/";
action = "no_action";
description = "SURBL hit but trusted domain";
}
}
Jetzt läuft eine voll funktionsfähige Rspamd-Instanz parallel zu Amavis/SpamAssassin auf einem Plesk-Testserver. Sie analysiert Mails, vergibt Scores, bietet ein Webinterface – aber greift nicht in die Produktivverarbeitung ein.
Nächste Schritte:
- Automatisierung der Whitelist (z. B. mit Cron & GitHub/Gist)
- Bayes- und Fuzzy-Training
- Mailbox-Statistiken via Redis
- Vollständige Umstellung: master.cf anpassen, Amavis deaktivieren
📣 Diskussion und Erfahrungen im Plesk-Forum: Wer sich über alternative Setups, Migrationspfade oder Best Practices austauschen möchte, findet hier den passenden Forenthread: 👉 https://talk.plesk.com/threads/migration-from-plesk-email-security-amavis-spamassassin-3-x-to-rspamd-3-12-experiences.378439/#post-962617