Rspamd kurz und gut: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | = | + | = Rspamd + ClamAV Integration (Postfix) = |
== Ziel == | == Ziel == | ||
| − | * | + | * Integration eines Spam- und Virenfilters in eine bestehende Mailserver-Umgebung. |
| − | * | + | * Am Ende können Spam (GTUBE), Viren (EICAR) und SPF-Bewertungen demonstriert werden. |
| − | |||
| − | == | + | == Schritt 1: Aufräumen (Tabula Rasa) == |
| − | * | + | * Alte Rspamd- und ClamAV-Komponenten werden entfernt, um Konflikte zu vermeiden. |
| − | + | * Dadurch wird sichergestellt, dass keine alten Konfigurationen das Verhalten beeinflussen. | |
| − | |||
| − | * | ||
| − | + | systemctl stop rspamd clamav-daemon 2>/dev/null || true | |
| − | + | service rspamd stop 2>/dev/null || true | |
| − | + | service clamav-daemon stop 2>/dev/null || true | |
| + | apt -y purge rspamd clamav clamav-daemon || true | ||
| + | apt -y autoremove | ||
| + | apt -y autoclean | ||
| + | rm -rf /etc/rspamd | ||
| + | rm -rf /var/lib/rspamd | ||
| + | rm -rf /var/log/rspamd | ||
| − | == | + | == Schritt 2: Installation == |
| − | * | + | * Die benötigten Pakete für Spam- und Virenfilter werden installiert. |
| − | * | + | * Rspamd übernimmt die Analyse, ClamAV die Virenerkennung. |
| − | + | ||
| + | apt update | ||
| + | apt -y install rspamd clamav clamav-daemon | ||
| + | |||
| + | == Schritt 3: Virensignaturen aktualisieren == | ||
| + | * ClamAV benötigt aktuelle Signaturen, um zuverlässig Viren zu erkennen. | ||
| + | * Der Befehl lädt die neuesten Definitionen herunter. | ||
| + | |||
| + | freshclam || true | ||
| + | |||
| + | == Schritt 4: Grundkonfiguration == | ||
| + | * Das Verzeichnis für lokale Rspamd-Konfigurationen wird angelegt. | ||
| + | * Hier werden alle eigenen Anpassungen gespeichert. | ||
| + | |||
| + | mkdir -p /etc/rspamd/local.d | ||
| + | |||
| + | == Schritt 5: ClamAV Integration == | ||
| + | * Rspamd wird so konfiguriert, dass eingehende Mails an ClamAV übergeben werden. | ||
| + | * Wird ein Virus erkannt, wird die Mail sofort abgelehnt. | ||
| + | |||
| + | cat <<EOF > /etc/rspamd/local.d/antivirus.conf | ||
| + | <pre> | ||
| + | clamav { | ||
| + | action = "reject"; | ||
| + | symbol = "CLAM_VIRUS"; | ||
| + | type = "clamav"; | ||
| + | servers = "127.0.0.1:3310"; | ||
| + | } | ||
| + | </pre> | ||
| + | EOF | ||
| + | |||
| + | == Schritt 6: Aktionen == | ||
| + | * Die Schwellwerte bestimmen, ab wann eine Mail abgelehnt oder markiert wird. | ||
| + | * Für Schulungen sind die Werte bewusst niedrig gewählt. | ||
| + | |||
| + | cat <<EOF > /etc/rspamd/local.d/actions.conf | ||
| + | <pre> | ||
| + | reject = 5; | ||
| + | add_header = 3; | ||
| + | greylist = 4; | ||
| + | </pre> | ||
| + | EOF | ||
| + | |||
| + | == Schritt 7: Webinterface == | ||
| + | * Das Webinterface ermöglicht die Analyse der Mailbewertung. | ||
| + | * Ein festes Passwort erlaubt den Zugriff. | ||
| + | |||
| + | cat <<'EOF' > /etc/rspamd/local.d/worker-controller.inc | ||
| + | <pre> | ||
| + | password = "$2$kKqzF3cH9x7L9u1w0ZJ8R.Hp9m2l8pG6yVv8eR6m3yY1p2Q3w4e5G"; | ||
| + | enable_password = "$2$kKqzF3cH9x7L9u1w0ZJ8R.Hp9m2l8pG6yVv8eR6m3yY1p2Q3w4e5G"; | ||
| + | bind_socket = "0.0.0.0:11334"; | ||
| + | </pre> | ||
| + | EOF | ||
| + | |||
| + | == Schritt 8: Postfix anbinden == | ||
| + | * Postfix wird so konfiguriert, dass jede Mail durch Rspamd geprüft wird. | ||
| + | * Dies erfolgt über das Milter-Interface. | ||
| + | |||
| + | postconf -e "milter_protocol = 6" | ||
| + | postconf -e "milter_default_action = accept" | ||
| + | postconf -e "smtpd_milters = inet:127.0.0.1:11332" | ||
| + | postconf -e "non_smtpd_milters = inet:127.0.0.1:11332" | ||
| + | |||
| + | == Schritt 9: Dienste starten == | ||
| + | * Die Dienste werden gestartet oder neu geladen. | ||
| + | * Fallbacks sorgen dafür, dass das Script auch ohne systemd funktioniert. | ||
| + | |||
| + | systemctl restart clamav-daemon 2>/dev/null || clamd & | ||
| + | systemctl restart rspamd 2>/dev/null || rspamd -d | ||
| + | systemctl restart postfix 2>/dev/null || service postfix restart | ||
| + | |||
| + | == Ergebnis == | ||
| + | * Rspamd filtert Spam und bewertet Mails anhand verschiedener Kriterien. | ||
| + | * ClamAV blockiert schädliche Anhänge zuverlässig. | ||
| + | |||
| + | == Webinterface == | ||
| + | * Zugriff über den Browser zur Analyse der Mails. | ||
| + | |||
| + | http://SERVER-IP:11334 | ||
| + | |||
| + | * Passwort: xinux123 | ||
| + | |||
| + | |||
| + | |||
| + | = Rspamd / ClamAV Tests = | ||
| + | |||
| + | == Ziel == | ||
| + | * Überprüfung der Mail-Filterung | ||
| + | * Nachweis von Spam-Erkennung (GTUBE) | ||
| + | * Nachweis von Virus-Erkennung (ClamAV / EICAR) | ||
| + | * Sichtbarkeit von SPF-Bewertung | ||
| + | |||
| + | == Vorbereitung == | ||
| + | * Zielbenutzer: thomas@it213.int | ||
| + | * Mailserver lokal erreichbar (127.0.0.1) | ||
| + | * swaks installiert | ||
| + | |||
| + | == Test Spam (GTUBE) == | ||
| + | ===Test=== | ||
| + | * Der GTUBE-String ist ein standardisierter Test für Spamfilter und wird immer erkannt | ||
| + | * Die Mail muss durch Rspamd blockiert oder als Spam markiert werden | ||
| + | |||
| + | swaks --to thomas@it213.int --server 127.0.0.1 --data "Subject: spam test XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X" | ||
| + | |||
| + | === Prüfung === | ||
| + | * Live-Logs beobachten um zu sehen ob Rspamd eingreift | ||
| + | |||
| + | journalctl -f -u rspamd -u postfix -u clamav-daemon | ||
| + | |||
| + | === Erwartung === | ||
| + | * Rspamd erkennt den GTUBE-String | ||
| + | * Postfix lehnt die Mail über den Milter ab | ||
| + | * Die Mail wird nicht zugestellt | ||
| + | * In den Logs erscheint: | ||
| + | |||
| + | milter-reject: END-OF-MESSAGE | ||
| + | Gtube pattern | ||
| + | |||
| + | === Ergebnis === | ||
| + | * Mail wird abgelehnt | ||
| + | * Beispiel Log: | ||
| − | |||
| − | |||
| − | |||
| − | |||
<pre> | <pre> | ||
| − | + | Mar 20 14:14:06 mail.it213.int postfix/cleanup[30205]: 04BC8C0995: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 5.7.1 Gtube pattern; from=<root@mail.it213.int> to=<thomas@it213.int> proto=ESMTP helo=<mail.it213.int> | |
| − | + | Mar 20 14:14:06 mail.it213.int postfix/cleanup[30205]: 04BC8C0995: removed (canceled) | |
| − | + | Mar 20 14:18:59 mail.it213.int postfix/cleanup[30218]: CDDD8C0995: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 5.7.1 Gtube pattern; from=<root@mail.it213.int> to=<thomas@it213.int> proto=ESMTP helo=<mail.it213.int> | |
| − | + | Mar 20 14:18:59 mail.it213.int postfix/cleanup[30218]: CDDD8C0995: removed (canceled) | |
</pre> | </pre> | ||
| − | == | + | === Interpretation === |
| − | * | + | * Rspamd läuft korrekt |
| − | + | * Milter-Anbindung funktioniert | |
| − | + | * Spam wird aktiv geblockt | |
| − | + | * System verhält sich wie erwartet | |
| − | + | ||
| − | + | == Test Virus (EICAR) == | |
| + | === Test === | ||
| + | * Die EICAR-Testsignatur simuliert einen Virus und wird von ClamAV erkannt | ||
| + | * Die Mail darf nicht zugestellt werden | ||
| + | |||
| + | echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > eicar.txt | ||
| + | |||
| + | swaks --to thomas@it213.int --server mail.it213.int --attach eicar.txt | ||
| + | |||
| + | === Prüfung === | ||
| + | * Live-Logs beobachten um zu sehen ob ClamAV/Rspamd eingreift | ||
| + | |||
| + | journalctl -f -u rspamd -u postfix -u clamav-daemon | ||
| + | |||
| + | === Erwartung === | ||
| + | * ClamAV erkennt die EICAR-Signatur | ||
| + | * Rspamd setzt das Symbol CLAM_VIRUS | ||
| + | * Postfix lehnt die Mail über den Milter ab | ||
| + | * Die Mail wird nicht zugestellt | ||
| + | * In den Logs erscheint: | ||
| + | |||
| + | CLAM_VIRUS | ||
| + | milter-reject | ||
| − | == | + | === Ergebnis === |
| − | * | + | * (abhängig vom aktuellen Zustand des Systems) |
| − | * | + | * Wenn korrekt konfiguriert: |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
<pre> | <pre> | ||
| − | + | milter-reject: END-OF-MESSAGE ... CLAM_VIRUS | |
| − | |||
| − | |||
</pre> | </pre> | ||
| − | == | + | === Interpretation === |
| − | * | + | * ClamAV ist korrekt an Rspamd angebunden |
| − | * | + | * Virenerkennung funktioniert |
| − | + | * Infizierte Mails werden aktiv geblockt | |
| − | + | * System verhält sich wie erwartet | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | == | + | == Test 3: SPF == |
| − | * | + | * Es wird eine Mail mit gefälschtem Absender erzeugt. |
| − | * | + | * SPF wird durch Rspamd bewertet und beeinflusst den Score. |
| − | |||
| − | |||
| − | |||
| − | + | swaks --to thomas@it213.int --server 127.0.0.1 \ | |
| − | + | --from fake@gmail.com | |
| − | |||
| − | |||
| − | |||
| − | + | * Erwartung: SPF_FAIL erscheint in den Logs oder im Rspamd Webinterface und erhöht den Spam-Score. | |
| − | * | ||
| − | |||
| − | |||
| − | |||
| − | == | + | == Live-Beobachtung == |
| − | * | + | * Die Verarbeitung der Mails kann live verfolgt werden. |
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | journalctl -f | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | * Erwartung: | |
| − | * | + | * Spam: "Gtube pattern" oder "milter-reject" |
| − | * | + | * Virus: "CLAM_VIRUS" |
| − | * | + | * SPF: "SPF_FAIL" |
Aktuelle Version vom 20. März 2026, 13:40 Uhr
Rspamd + ClamAV Integration (Postfix)
Ziel
- Integration eines Spam- und Virenfilters in eine bestehende Mailserver-Umgebung.
- Am Ende können Spam (GTUBE), Viren (EICAR) und SPF-Bewertungen demonstriert werden.
Schritt 1: Aufräumen (Tabula Rasa)
- Alte Rspamd- und ClamAV-Komponenten werden entfernt, um Konflikte zu vermeiden.
- Dadurch wird sichergestellt, dass keine alten Konfigurationen das Verhalten beeinflussen.
systemctl stop rspamd clamav-daemon 2>/dev/null || true service rspamd stop 2>/dev/null || true service clamav-daemon stop 2>/dev/null || true apt -y purge rspamd clamav clamav-daemon || true apt -y autoremove apt -y autoclean rm -rf /etc/rspamd rm -rf /var/lib/rspamd rm -rf /var/log/rspamd
Schritt 2: Installation
- Die benötigten Pakete für Spam- und Virenfilter werden installiert.
- Rspamd übernimmt die Analyse, ClamAV die Virenerkennung.
apt update apt -y install rspamd clamav clamav-daemon
Schritt 3: Virensignaturen aktualisieren
- ClamAV benötigt aktuelle Signaturen, um zuverlässig Viren zu erkennen.
- Der Befehl lädt die neuesten Definitionen herunter.
freshclam || true
Schritt 4: Grundkonfiguration
- Das Verzeichnis für lokale Rspamd-Konfigurationen wird angelegt.
- Hier werden alle eigenen Anpassungen gespeichert.
mkdir -p /etc/rspamd/local.d
Schritt 5: ClamAV Integration
- Rspamd wird so konfiguriert, dass eingehende Mails an ClamAV übergeben werden.
- Wird ein Virus erkannt, wird die Mail sofort abgelehnt.
cat <<EOF > /etc/rspamd/local.d/antivirus.conf
clamav {
action = "reject";
symbol = "CLAM_VIRUS";
type = "clamav";
servers = "127.0.0.1:3310";
}
EOF
Schritt 6: Aktionen
- Die Schwellwerte bestimmen, ab wann eine Mail abgelehnt oder markiert wird.
- Für Schulungen sind die Werte bewusst niedrig gewählt.
cat <<EOF > /etc/rspamd/local.d/actions.conf
reject = 5; add_header = 3; greylist = 4;
EOF
Schritt 7: Webinterface
- Das Webinterface ermöglicht die Analyse der Mailbewertung.
- Ein festes Passwort erlaubt den Zugriff.
cat <<'EOF' > /etc/rspamd/local.d/worker-controller.inc
password = "$2$kKqzF3cH9x7L9u1w0ZJ8R.Hp9m2l8pG6yVv8eR6m3yY1p2Q3w4e5G"; enable_password = "$2$kKqzF3cH9x7L9u1w0ZJ8R.Hp9m2l8pG6yVv8eR6m3yY1p2Q3w4e5G"; bind_socket = "0.0.0.0:11334";
EOF
Schritt 8: Postfix anbinden
- Postfix wird so konfiguriert, dass jede Mail durch Rspamd geprüft wird.
- Dies erfolgt über das Milter-Interface.
postconf -e "milter_protocol = 6" postconf -e "milter_default_action = accept" postconf -e "smtpd_milters = inet:127.0.0.1:11332" postconf -e "non_smtpd_milters = inet:127.0.0.1:11332"
Schritt 9: Dienste starten
- Die Dienste werden gestartet oder neu geladen.
- Fallbacks sorgen dafür, dass das Script auch ohne systemd funktioniert.
systemctl restart clamav-daemon 2>/dev/null || clamd & systemctl restart rspamd 2>/dev/null || rspamd -d systemctl restart postfix 2>/dev/null || service postfix restart
Ergebnis
- Rspamd filtert Spam und bewertet Mails anhand verschiedener Kriterien.
- ClamAV blockiert schädliche Anhänge zuverlässig.
Webinterface
- Zugriff über den Browser zur Analyse der Mails.
http://SERVER-IP:11334
- Passwort: xinux123
Rspamd / ClamAV Tests
Ziel
- Überprüfung der Mail-Filterung
- Nachweis von Spam-Erkennung (GTUBE)
- Nachweis von Virus-Erkennung (ClamAV / EICAR)
- Sichtbarkeit von SPF-Bewertung
Vorbereitung
- Zielbenutzer: thomas@it213.int
- Mailserver lokal erreichbar (127.0.0.1)
- swaks installiert
Test Spam (GTUBE)
Test
- Der GTUBE-String ist ein standardisierter Test für Spamfilter und wird immer erkannt
- Die Mail muss durch Rspamd blockiert oder als Spam markiert werden
swaks --to thomas@it213.int --server 127.0.0.1 --data "Subject: spam test XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X"
Prüfung
- Live-Logs beobachten um zu sehen ob Rspamd eingreift
journalctl -f -u rspamd -u postfix -u clamav-daemon
Erwartung
- Rspamd erkennt den GTUBE-String
- Postfix lehnt die Mail über den Milter ab
- Die Mail wird nicht zugestellt
- In den Logs erscheint:
milter-reject: END-OF-MESSAGE Gtube pattern
Ergebnis
- Mail wird abgelehnt
- Beispiel Log:
Mar 20 14:14:06 mail.it213.int postfix/cleanup[30205]: 04BC8C0995: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 5.7.1 Gtube pattern; from=<root@mail.it213.int> to=<thomas@it213.int> proto=ESMTP helo=<mail.it213.int> Mar 20 14:14:06 mail.it213.int postfix/cleanup[30205]: 04BC8C0995: removed (canceled) Mar 20 14:18:59 mail.it213.int postfix/cleanup[30218]: CDDD8C0995: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 5.7.1 Gtube pattern; from=<root@mail.it213.int> to=<thomas@it213.int> proto=ESMTP helo=<mail.it213.int> Mar 20 14:18:59 mail.it213.int postfix/cleanup[30218]: CDDD8C0995: removed (canceled)
Interpretation
- Rspamd läuft korrekt
- Milter-Anbindung funktioniert
- Spam wird aktiv geblockt
- System verhält sich wie erwartet
Test Virus (EICAR)
Test
- Die EICAR-Testsignatur simuliert einen Virus und wird von ClamAV erkannt
- Die Mail darf nicht zugestellt werden
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > eicar.txt
swaks --to thomas@it213.int --server mail.it213.int --attach eicar.txt
Prüfung
- Live-Logs beobachten um zu sehen ob ClamAV/Rspamd eingreift
journalctl -f -u rspamd -u postfix -u clamav-daemon
Erwartung
- ClamAV erkennt die EICAR-Signatur
- Rspamd setzt das Symbol CLAM_VIRUS
- Postfix lehnt die Mail über den Milter ab
- Die Mail wird nicht zugestellt
- In den Logs erscheint:
CLAM_VIRUS milter-reject
Ergebnis
- (abhängig vom aktuellen Zustand des Systems)
- Wenn korrekt konfiguriert:
milter-reject: END-OF-MESSAGE ... CLAM_VIRUS
Interpretation
- ClamAV ist korrekt an Rspamd angebunden
- Virenerkennung funktioniert
- Infizierte Mails werden aktiv geblockt
- System verhält sich wie erwartet
Test 3: SPF
- Es wird eine Mail mit gefälschtem Absender erzeugt.
- SPF wird durch Rspamd bewertet und beeinflusst den Score.
swaks --to thomas@it213.int --server 127.0.0.1 \ --from fake@gmail.com
- Erwartung: SPF_FAIL erscheint in den Logs oder im Rspamd Webinterface und erhöht den Spam-Score.
Live-Beobachtung
- Die Verarbeitung der Mails kann live verfolgt werden.
journalctl -f
- Erwartung:
- Spam: "Gtube pattern" oder "milter-reject"
- Virus: "CLAM_VIRUS"
- SPF: "SPF_FAIL"