Rspamd kurz und gut: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 120: Zeile 120:
 
* swaks installiert
 
* swaks installiert
  
== Test 1: Spam (GTUBE) ==
+
== Test Spam (GTUBE) ==
 
* Der GTUBE-String ist ein standardisierter Test für Spamfilter und wird immer erkannt.
 
* 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.
 
* Die Mail muss durch Rspamd blockiert oder als Spam markiert werden.

Version vom 20. März 2026, 13:10 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)

  • 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"