Rspamd kurz und gut: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| − | = | + | = Rspamd + ClamAV Integration (Postfix) = |
| − | == | + | == Ziel == |
| − | * | + | * Integration eines Spam- und Virenfilters in eine bestehende Mailserver-Umgebung. |
| − | * Spam- | + | * 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: | + | == 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"; | |
| − | <pre> | + | symbol = "CLAM_VIRUS"; |
| − | + | type = "clamav"; | |
| − | + | servers = "127.0.0.1:3310"; | |
| − | + | } | |
| − | + | </pre> | |
| − | + | EOF | |
| − | |||
| − | } | ||
| − | </pre> | ||
| − | == Schritt: | + | == 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; | |
| − | <pre> | + | greylist = 4; |
| − | + | </pre> | |
| − | + | EOF | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | </pre> | ||
| − | == Schritt: | + | == 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> | + | <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: | + | == Schritt 9: Dienste starten == |
| − | * Die | + | * 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 1: Spam (GTUBE) == | ||
| + | * 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" | ||
| + | |||
| + | * Erwartung: Rspamd erkennt Spam und lehnt die Mail ab (milter-reject) oder setzt Spam-Header. | ||
| + | |||
| + | == Test 2: Virus (EICAR) == | ||
| + | * Die EICAR-Testsignatur simuliert einen Virus und wird von ClamAV erkannt. | ||
| + | * Die Mail darf nicht zugestellt werden. | ||
| + | |||
| + | swaks --to thomas@it213.int --server 127.0.0.1 \ | ||
| + | --attach <(echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*') | ||
| + | |||
| + | * Erwartung: ClamAV erkennt die Signatur und die Mail wird rejected. | ||
| + | |||
| + | == 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" | ||
Version vom 20. März 2026, 13:08 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 1: Spam (GTUBE)
- 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"
- Erwartung: Rspamd erkennt Spam und lehnt die Mail ab (milter-reject) oder setzt Spam-Header.
Test 2: Virus (EICAR)
- Die EICAR-Testsignatur simuliert einen Virus und wird von ClamAV erkannt.
- Die Mail darf nicht zugestellt werden.
swaks --to thomas@it213.int --server 127.0.0.1 \ --attach <(echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*')
- Erwartung: ClamAV erkennt die Signatur und die Mail wird rejected.
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"