Kategorien
Allgemein Systemadministration

Wie man lästige Sitegrabber blockiert, selbst wenn diese das Tor-Netzwerk verwenden

Wer Webseiten betreut, die sonst kostenpflichtige Daten bereitstellen, wird früher oder später mit dem Problem konfrontiert dass Grabber versuchen diese Daten ab zu greifen um diese anderweitig zu nutzen. Besonders knifflig wird dies wenn die Grabber dazu das Tor Netzwerk verwenden.

Betroffen können Webseiten sein, die Börsenkurse darstellen, Geo Daten bereitstellen oder auch Portale mit Reiseinformationen. Möglicherweise entstehen durch benutzten Echtzeitschnittstellen von Drittanbietern durch die Grabber sogar höhere Kosten.

Agressive Grabber die Mietserver verwenden, lassen sich relativ einfach in der lokalen Firewall (iptables) aussperren. Wenn es jedoch immer mehr IPs werden und auch noch Zugriffen von Tor Ausgangsservern dazu kommen wird die Wartung der Firewall schnell aufwändig und unübersichtlich.

Hier kommt ipset ins Spiel, welches es als iptables Modul ermöglicht, die zu sperrenden IPs in seperaten Listen zu speichern.

Ipset

Ipset ist ein iptables Modul mit dazugehörigen Kommandozeilen Tool zur Verwaltung von Listen.

Unter Debian/Ubuntu geschieht die Installation mittels:

apt-get install ipset

Neue Listen lassen sich mit ipset -N erstellen. Wir erstellen und eine Liste grabber und wollen IPs in einer Hash Tabelle speichern.

ipset -N grabber iphash

Um die Tabelle in iptables zu verwenden müssen wir diese dort in einem Filter angeben

iptables -A INPUT -m set --match-set grabber src -j DROP

Diese Anweisung sollte an die eigene iptables Konfiguration angepasst werden. In diesem Beispiel wird jede Quell-IP, die in der ipset Liste grabber gefunden wird, abgelehnt und alle dazugehörigen Daten verworfen. Diese Anweisung muß natürlich bei jedem Reboot erneut eingetragen werden.

Tor Netzwerk

In dem speziellen Fall bei dem Grabber über das Tor Netzwerk Seiten abrufen, ist das Sperren einzelner IPs fast nicht mehr möglich. Zum Glück lässt sich eine Liste (fast) aller aktuellen Tor Ausgangsserver herunterladen. Folgender Code trägt diese IPs in unsere Liste ein und ergänzt neue IPs

#!/bin/bash
IP="127.0.0.1"
wget -q https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$IP -O -|sed '/^#/d' |while read IP
do
  ipset -q -A grabber $IP
done

Dieses Script könnte per Cronjob regelmässig ausgeführt werden um die Liste aktuell zu halten.

Erweiterungen

Da es deutlich stressfreier und weniger fehleranfällig ist, IPs mit ipset zu sperren als neue Einträge mit iptables zu erstellen lassen sich auch einfacher Skripte erstellen die z.B. aus Apache Logs aufällige IPs aussuchen um diese dann zu blockieren.

Quellen:

  • http://mikhailian.mova.org/node/194

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.