Rspamd kurz und gut: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 121: | Zeile 121: | ||
== Test Spam (GTUBE) == | == Test Spam (GTUBE) == | ||
| − | * Der GTUBE-String ist ein standardisierter Test für Spamfilter und wird immer erkannt | + | ===Test=== |
| − | * Die Mail muss durch Rspamd blockiert oder als Spam markiert werden | + | * 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 | + | 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 |
| − | * Die Mail | + | * Postfix lehnt die Mail über den Milter ab |
| + | * Die Mail wird nicht zugestellt | ||
| + | * In den Logs erscheint: | ||
| − | + | milter-reject: END-OF-MESSAGE | |
| − | + | Gtube pattern | |
| − | * Erwartung | + | === Ergebnis === |
| + | * Mail wird abgelehnt | ||
| + | * Beispiel Log: | ||
| + | |||
| + | <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> | ||
| + | |||
| + | === 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> | ||
| + | milter-reject: END-OF-MESSAGE ... CLAM_VIRUS | ||
| + | </pre> | ||
| + | |||
| + | === Interpretation === | ||
| + | * ClamAV ist korrekt an Rspamd angebunden | ||
| + | * Virenerkennung funktioniert | ||
| + | * Infizierte Mails werden aktiv geblockt | ||
| + | * System verhält sich wie erwartet | ||
== Test 3: SPF == | == Test 3: SPF == | ||
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"