Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:massnahmen_gegen_spam

Maßnahmen gegen Spam

Voraussetzung

Einleitung

XMPP ist spamverseucht. Das ist eine harte Wahrheit. Es gibt verschiedene Möglichkeiten gegen Spam vorzugehen, die alle mal mehr, mal weniger sinnvoll oder effektiv sind.

Einrichtung

Eigene Kontaktmöglichkeiten angeben

Bevor du von anderen verlangst, dass Sie gegen Spam vorgehen, solltest du zunächst selbst dafür sorgen, dass du erreichbar bist. Dazu gehört z.B. Kontaktangaben auf deiner Website und die Umsetzung von XEP-0157: die Angabe einer Kontaktadresse innerhalb des XMPP Servers.

Als ejabberd arbeiten:

$ su - ejabberd

Öffne die Konfiguration:

$ jed opt/ejabberd/conf/ejabberd.yml

Suche nach

mod_disco: {}

und ändere es ab:

  mod_disco:
    server_info:
    -
      modules: all
      name: "abuse-addresses"
      urls: ["mailto:<deine-email-adresse>"]

Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen.

Mache ejabberd die geänderte Konfiguration bekannt:

$ ./opt/ejd/bin/ejabberdctl reload_config

Registrierung einschränken

Wenn du die Inband Registrierung anbietest, solltest du diese unbedingt mit einem Captcha absichern. Dies wurde mit einem früheren Howto bereits umgesetzt.

Sofern du eine Registrierung über deine Webseite anbietest und dabei die API von ejabberd nutzt, kannst du eine Prüfung einbauen, wie viele Konten eine IP Adresse innerhalb eines bestimmten Zeitraums bereits angelegt hat. Weitere Versuche ein Konto anzulegen sollten ab einer bestimmten Anzahl gesperrt werden. Auch diese Registrierung solltest du mit einem eigenen Captcha absichern

Automatische Filter

mod_spam_filter

Mit mod_spam_filter kannst du eingehende Nachrichten automatisiert nach Absendern oder in den Nachrichten enthaltenen URL durchsuchen lassen. Da sich die Absender neue Konten anlegen können und auch die beworbenen Links veränderbar sind, ist das Modul bedingt hilfreich. Ende-zu-Ende verschlüsselte Nachrichten fallen ohnehin raus.

Als ejabberd arbeiten:

$ su - ejabberd

mod_spam_filter installieren:

$ ./opt/ejd/bin/ejabberdctl module_install mod_spam_filter

mod_spam_filter konfigurieren:

$ mkdir spam
$ jed .ejabberd-modules/mod_spam_filter/conf/mod_spam_filter.yml

Ändere die Datei wie folgt ab:

modules:
  mod_spam_filter:
    spam_jids_file: "/home/ejabberd/spam/jids.txt"
    spam_urls_file: "/home/ejabberd/spam/urls.txt"

Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen.

Mache ejabberd die geänderte Konfiguration bekannt:

$ ./opt/ejd/bin/ejabberdctl reload_config

In der Datei spam/jids.txt werden einzelne Konten gesammelt:

me@example.de
her@server2.com

In der Datei spam/urls.txt werden einzelne URL gesammelt:

https://bit.ly/spam
https://werbung.de/anzeige

Um Veränderungen in den beiden Dateien in den Server zu übernehmen, muss nicht jedes mal die komplette Konfiguration neu eingelesen werden. Dazu genügt:

$ ./opt/ejd/bin/ejabberdctl reload-spam-filter-files <beispiel.de>
mod_block_strangers

Mit diesem Modul kannst du ganze Server auf eine Blocklist setzen. Nachrichten von diesen Servern werden dann erst mal abgelehnt, wenn der Absender nicht in der Kontaktliste des Empfängers ist. Alternativ kann statt dessen ein Captcha präsentiert werden. Erst nach dessen Lösung kann weiter kommuniziert werden.

Als ejabberd arbeiten:

$ su - ejabberd

Öffne die Konfiguration

$ jed opt/ejabberd/conf/ejabberd.yml

Suche nach:

mod_avatar: {}

und füge danach ein neues Modul ein:

  mod_block_strangers:
    access: strangers
    captcha: true

suche nach:

access_rules:

und füge einen neuen Block ein:

  strangers:
    deny: soft_blocked
    allow: all

suche nach:

acl:

und füge einen neuen Block ein:

  soft_blocked:
    server:
      - "<spamserver1.de>"
      - "<werbung2.com>"

Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen.

Mache ejabberd die geänderte Konfiguration bekannt:

$ ./opt/ejd/bin/ejabberdctl reload_config
mod_pres_counter

Als Ergänzung zu mod_block_strangers bietet sich mod_pres_counter an. Wenn Nachrichten nur noch zuverlässig durchgestellt werden, ist es aus Sicht der Spammer sinnvoll zunächst in die jeweiligen Konktaktlisten aufgenommen zu werden. Auch das kann eingeschränkt werden. In der Standardkonfiguration erlaubt das Modul den Austausch von 5 „Einheiten“, sog Stanzas innerhalb von 60 Sekunden. Um einen Kontakt in die eigene Kontaktliste aufzunehmen werden 4 Stanzas benötigt. Hier liegt es an dir durch Testen sinnvolle Werte zu finden.

Als ejabberd arbeiten:

$ su - ejabberd

Öffne die Konfiguration

$ jed opt/ejabberd/conf/ejabberd.yml

Suche nach:

mod_pres_counter: {}

und ändere es ab:

  mod_pres_counter:
    count: 5
    interval: 60

Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen.

Mache ejabberd die geänderte Konfiguration bekannt:

$ ./opt/ejd/bin/ejabberdctl reload_config
mod_blocking

Als letzte und gleichzeitig schärfste Maßnahme, kannst du einzelne Server vollständig blocken. Da XMPP ein Netzwerk von föderierten Servern ist und das Blockieren ganzer Server gegen dieses Prinzip verstößt, sollte das als letztes Mittel in Betracht gezogen werden. Teste bitte vorher die o.g. Lösungen und versuche auch mehrfach den verantwortlichen Admin des Servers kontaktieren.

Als ejabberd arbeiten:

$ su - ejabberd

Öffne die Konfiguration

$ jed opt/ejabberd/conf/ejabberd.yml

Suche nach:

acl:

und füge einen neuen Block ein:

  hard_blocked:
    server:
      - "<werbeserver1.de>"
      - "<adserver2.com>"

suche nach:

access_rules:

und füge einen neuen Block ein:

  s2s:
    deny: hard_blocked
    allow: all

suche nach:

s2s_use_starttls: required

und füge darüber ein:

s2s_access: s2s

Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen.

Mache ejabberd die geänderte Konfiguration bekannt:

$ ./opt/ejd/bin/ejabberdctl reload_config
de/massnahmen_gegen_spam.txt · Zuletzt geändert: 25.11.2022, 10:37 von Christoph Stoltz