Blockieren von Spam anhand der IP-Adresse

Passend zu unserem Thema des Monats für November, wurde unser Blog vorherige Woche von Spamkommentaren regelrecht überflutet. Dank des kostenlosen WordPress-Plugins Antispam Bee wurden diese zwar direkt als Spam erkannt und geblockt, dennoch überprüfen wir gerne alle Kommentare, um „false positives“ auszuschliessen. Wie kann man diese Art von Spam geschickt unterbinden, sodass Antispam Bee gar nicht erst eingreifen muss?

Requests mit Hilfe der .htaccess blocken

Wie wir bereits in unserem Beitrag zu Referral Spam in Google Analytics erläuterten, können ungewünschte Besucher der Site relativ einfach mittels der .htaccess geblockt werden. In diesem Fall blocken wir jedoch nicht den Host eines Referrals sondern direkt die IP-Adresse des Spammers. Das Vorgehen dabei ist wie folgt:

Antispam Bee sendet automatisch einen Report zu jedem als Spam identifizierten Kommentar. Bei uns gingen teilweise weit über 30 E-Mails pro Tag ein. Dort werden einige Details zu den Kommentatoren aufgelistet, unter anderem finden wir dort auch eine IP-Adresse. Spambenachrichtigung von Antispam Bee

Die IPs unserer Spamkommentare lagen alle in einer Range von 91.200.12.136 bis 91.200.12.143. Da nur die letzten beiden Stellen der IP variabel sind kann man diese Range vereinfacht auch so darstellen: 91.200.12.1xx. Das x kann dabei jeden Wert zwischen 0 und 9 darstellen. Interessehalber haben wir kurz die Location dieser IP-Adressen überprüft – Dienste wie www.infosniper.net ermöglichen dies online. In unserem Fall stammen die IPs aus Kiev: da wir dort nicht wirklich die Zielgruppe unseres deutschsprachigen Blogs vermuten, können wir diese getrost blocken.

Auch hierfür gibt es Tools, welche einem direkt den gewünschten Code für die .htaccess generieren. Gute Beispiele sind die .htaccess Tools oder auch Tom’s Tools. Letztere generieren folgenden Code für uns:

# BAN USER BY IP
<Limit GET POST>
 order allow,deny
 allow from all
 deny from 91.200.12.
</Limit>

Erläuterung des Codes

1.

<Limit></Limit>

Die Limit Directive sorgt dafür, dass nur GET und POST Requests geblockt werden. Da wir in unserem Fall jeden Zugriff auf die Site von dieser Quelle blocken möchten, können wir dies auch einfach entfernen. Wir könnten natürlich auch weiterhin Zugriff auf die Site gewähren und nur das absenden von Kommentaren unterbinden:

#Hier werden nur POST-Requests geblockt
<Limit POST>
 .
 .
 .
</Limit>

2.

Order Allow,Deny

Mit Hilfe der Order Directive kann festgelegt werden, in welcher Reihenfolge die folgenden Zeilen durchgegangen werden. Order, allow und deny können wahlweise auch gross geschrieben werden. In unserem Fall werden zuerst alle Requests auf ihre Erlaubnis geprüft. Da wir in der nächsten Zeile ein „allow from all“ haben, wird im ersten Durchgang jeder Request erlaubt. Im zweiten Schritt werden alle Requests auf ein Deny geprüft. In unserem Fall verweigern wir Requests mit der gegebenen IP den Zugriff. Dadurch wird der Request geblockt. Würden wir die Reihenfolge in

Order Deny,Allow

umdrehen, würde die IP zwar erst blockiert werden, anschliessend dann aber durch das „allow from all“ wieder durchgelassen werden. Wir könnten für unseren Zweck auch diesen Code verwenden

Order Deny,Allow
Deny from 91.200.12.

Dies ist tatsächlich der Code, der für unseren Zweck mit Hilfe der .htaccess Tools generiert wurde. Beide Codes erfüllen den selben Zweck, wobei wir das Limit wahlweise nutzen oder weglassen können. Die Korrekte Reihenfolge ist also sehr wichtig und kann je nach gewünschtem Ergebnis unterschiedlich sein.

3.

Allow from all
Deny from 91.200.12.143
Deny from 91.200.
Deny from www.example.com
Deny from www.example

In den folgenden Zeilen können nur gezielt Quellen blockiert oder erlaubt werden. Dies können IP-Adressen, aber auch Hosts sein. Zudem ermöglicht „from all“ das Erlauben oder Blocken aller Zugriffe. Zu beachten ist, dass auch ganze IP-Ranges geblockt werden können. Wie im Beispiel gezeigt würde die dritte Zeile die gesamte Range 91.200.xxx.xxx blocken. Für unseren Fall blocken wir tatsächlich die Range 91.200.12.xxx. Selbiges ist auch mit Domains möglich, wie in der letzten Zeile dargestellt.

4.

Kommentare können durch ein # am Zeilenanfang deklariert werden. Diese Zeilen werden von Apache komplett ignoriert.

Fazit

Störenfriede lassen sich also über die .htaccess direkt blockieren, sofern man deren IP-Adresse oder Domain feststellen kann. Tools können dabei helfen, den korrekten Code zu erstellen. Dabei muss unbedingt überprüft werden, ob die Reihenfolge wirklich den gewünschten Effekt hat und nicht versehentlich alle Besucher geblockt werden. Letztlich sollte insbesondere bei einer Range von IP-Adressen bedacht werden, dass hier schnell auch unschuldige User ausgesperrt werden können. In unserem Fall sind die Besucher aus Kiev wohl zu vernachlässigen, dennoch ist hier etwas Vorsicht geboten.

Wir haben uns für die etwas weniger rabiate Methode entschieden, nur POST-Requests von den beschriebenen IPs zu unterbinden. Betroffene Besucher erhalten nun diese Fehlermeldung:

Fehlermeldung für geblockte User

Tatsächlich können wir davon ausgehen, dass die eingesetzten Bots sehr schnell bemerken, dass sie blockiert werden, und anschliessend unsere Site vorerst nicht mehr ansteuern. Daher sollte diese Lösung nur übergangsweise nötig sein. In einigen Wochen können wir den Code wieder löschen, oder für späteren Gebrauch einfach nur auskommentieren. Seit der Änderung in unserer .htaccess hatten wir übrigens nicht einen Spamkommentar.

Wir hoffen, dieser Artikel konnte Ihnen das Thema etwas näher bringen. Bei weiteren Fragen lassen Sie doch einfach einen Kommentar da (wenn wir alles richtig gemacht haben, ist Ihre IP auch nicht gesperrt 😉 ).

2 Kommentare zu “Blockieren von Spam anhand der IP-Adresse

  1. Unter meinem Namen werden wöchentlich Spam-Mails von der IP 82.165.150.xxx an meine Kontakte verschickt.

    Ich benutze os x und habe im TextEdit folgenden Text erstellt und mit der Endung .htaccess gespeichert:

    Order Deny,Allow
    Allow from all
    Deny from 82.165.159.

    Muss ich die Datei in einen speziellen Ordner ablegen oder reicht es wenn sie auf dem Schreibtisch ist?
    Müssen meine Kontakte dies nun auch machen, damit der Terror endlich aufhört?

    Danke für deine Rückmeldung.

    • Hallo Daniel,

      in unserem Artikel geht es um Spam auf einem Webserver. Die .htaccess nützt auf deinem privaten Rechner leider nichts. In deinem Fall solltest Du dringend einen Virenscanner über dein OS laufen lassen und eventuell bei deinem Mail-Provider anfragen, was du noch tun könntest. Mit unserem Fall hier, hat das aber nicht wirklich etwas zu tun.

      Beste Grüsse,
      Jakob

Schreiben Sie einen Kommentar

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