Automatisiertes Scannen der kompletten Seite unterbinden
am 02.08.2014 - 12:41 Uhr in
Hallo,
ich betreibe eine kleine, einfache statische Seite (99% Text) über einen Schriftsteller (gemeinfrei) in weitestgehend Standardkonfiguration.
Nun wird - eigenartigerweise - in letzter Zeit die komplette Seite verstärkt "gescannt", wenn man das so ausdrücken kann. Also per Script oder was weiß ich werden sämtliche Nodes über die internen Verlinkungen nacheinander in kürzester Zeit aufgerufen - manchmal " moderat: 12-20 Seitenaufrufe pro Minute, mitunter aber auch mit dem vollen Speed, den der Hoster zur Verfügung stellt.
OK - wenn sich da ein interessierter Nutzer echt mit Hand "durchackern" würde - kein Problem. Die Seite ist ja frei für alle.
Nun gut - aber genau diese sture, automatisierte Laden möchte ich gern unterbinden. Ich suche irgendwas, was sinngemäß wie "Mein Freund Harvey" bei vBulletin arbeitet oder eben die Zugriffe ab einer bestimmten Anzahl pro Minute "abwürgt" bzw. diese IP dann sperrt. Habe zwar hier schon geschaut, aber entweder bin ich zu blöd oder habe die falschen Suchbegriffe verwendet. Irgendwas mit "Honeypot" oder so habe ich zwar gefunden, werde aber nicht schlau daraus. Ich muß aber auch zugeben, daß mein Englisch (drupal.org) nicht das beste ist.
Vielen Dank schon mal im voraus ...
- Anmelden oder Registrieren um Kommentare zu schreiben
An Modulen kenne ich nur
am 02.08.2014 - 21:18 Uhr
An Modulen kenne ich nur diverse Spam-Bots die vor unerwünschten User-Accounts oder Spam-Kommentaren schützen.
So wie z.B. das genannte Honeypot, welches sehr gute Dienste leistet.
Für Deinen Fall hilft ein Eintrag in der .htaccess Datei, wo Du die IP-Adresse sperren kannst.
Das hat halt immer den Nachteil, daß die IP-Adresse häufig von mehreren Usern genutzt wird, die dann auch ausgesperrt sind.
Aber der Verlust ist vermutlich nicht so rieisig, wenn die Bots in USA oder Russland oder dgl. sitzen.
Die Wahrscheinlichkeit, daß ein anderer User der sich wirklich für den Schriftsteller interessiert, mit der gleichen IP unterwegs ist, ist ja eher gering.
Hier gibts Infos:
http://www.suchmaschinen-doktor.de/fragen/beitrag-71/unerwuenschte+bots+...
Mit den Worten "bots aussperren htaccess" wirst Du noch mehr Infos finden.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Solche Anfragen sollte man auf Server-Ebene blocken
am 02.08.2014 - 23:47 Uhr
Es ist nicht klug, Drupal damit zu beauftragen solche massenhaften Abfragen zu kontrollieren und bei Bedarf zu blocken. Das frisst dann auch Ressourcen und zar dauerhaft im Normalbetrieb. Viel effektiver lässt sich das auf Server-Ebene abfangen. Bei einem Apache Webserver z.B. mit mod_evasive:
http://spielwiese.la-evento.com/xelasblog/archives/56-Apache-DOS-Attacke...
Bei einem managed Hosting am besten mal den Hosting-Dienstleister danach fragen, ob er da keinen Riegel vorschieben kann.
# DrupalCenter-Moderator # https://www.drupal.org/u/c-logemann
# CTO der Nodegard GmbH: Tech. Concepts | Security + Availability Operations / Wir unterstützen IT-Abteilungen, Agenturen, Freiberufler:innen
dies dürften Besuche von Suchmaschinen sein
am 03.08.2014 - 08:14 Uhr
Suche die IP-Adressen der Suchmaschinen heraus, von denen du gefunden werden willst, und sperre auf Serverebene die IPs, die du nicht möchtest.
Du kannst auch IP-Ranges, zb. alles aus Russland, China und Afrika, sperren.
Grüße
Ronald
Vielen Dank
am 03.08.2014 - 13:35 Uhr
für alle die Antworten.
@ montviso
Ich habe erst mal grob in die Seite "suchmaschinen-doktor" reingeschmökert - sehr interessant! Und ich werde danach auch meine htaccess entsprechend modifizieren. Das schließt jedenfalls schon mal die unerwünschen Suchmaschinen aus.
Was die Spambots, Anmeldeversuche und Kommentare betrifft: Meine Seite ist so konfiguriert, daß sie keine Anmeldungen und Kommentare zuläßt. Also sollte wirklich mal diese Situation auftreten, so muß sich der betreffende User erst via Mail oder Kontakformular bei mir melden und dann richte ich bei Bedarf selbst das Konto ein. Von daher ist somit auch das Honeypot für mich nicht so das Richtige. Zumal die meisten Suchmaschinen, Bots usw. mittlerweile auch so "intelligent" sind, zwischen zwei Zugriffen bzw. Zugriffsversuchen 5 Sekunden oder länger zu warten, wie ich das mitbekommen habe. Besser wäre halt schon, z.B. ab 20 Zugriffen innerhalb von 2 Minuten eine Sperre auszulösen.
@ Carsten Logemann
Es ist nur ein managed Hosting. Aber ich denke, von den Ressourcen frißt eine Lösung über Drupal auch nicht mehr, als wenn ich ein (weiteres) Modul für irgendeine Zusatzfunktion installiere. Wäre sicherlich vertretbar.
@ ronald
Kann natürlich eine Suchmaschine sein, auch wenn ich persönlich das in diesem Fall eher anzweifle. Aber ich werde - wie weiter oben schon geschrieben - einiges sperren. Muß mich aber halt erst noch durch die Seite "ackern".
Modul ist nicht gleich Modul
am 03.08.2014 - 14:00 Uhr
@ Carsten Logemann
Es ist nur ein managed Hosting. Aber ich denke, von den Ressourcen frißt eine Lösung über Drupal auch nicht mehr, als wenn ich ein (weiteres) Modul für irgendeine Zusatzfunktion installiere. Wäre sicherlich vertretbar.
Module unterscheiden zum teil sehr extrem darin, was sie machen. Und manchmal schleichen sich neben Sicherheitslücken auch Performance-Bremsen in ein Modul ein. Ein Modul, was das beschriebene Problem lösen könnte, muss logischerweise jeden Aufrufs des Systems analysieren. Dies grenzt Drupals interne Möglichkeiten, die Performance zu steigern mittels Caching, massiv ein.
Vor allem, wenn schon jetzt das System unter ein paar Scans von Suchmaschinen leidet, ist die Performance des System wahrscheinlich ohnehin schon an seinen Grenzen. Die Nutzung des System durch Gäste, zu den technisch auch Suchmaschinen zählen, sollte man nach Möglichkeit so abwickeln, daß Datenbankabfragen usw. verringert werden. Ein massiver Einsatz von Caching ist dann sehr sinnvoll z.B. auch mit dem Boost-Module, das auch in der Regel auch in managed Hosting funktioniert.
Bei Funktionen, die z.B. auch Gästen ermöglicht werden soll, wie z.B. ein Kontakt-Formular und eben auch die Funktion zum Einloggen, die eben aus einem Gast ein authentifizierten Benutzer macht, benötigt man dann Module, die Missbrauch eindämmen, da Drupal dann selbst "entscheiden" muss, ob es ein gute oder schlechte Anfrage ist. Aber beim beschriebenen Problem kann der Webserver erheblich effizienter das Problem erkennen und abfangen, als Drupal dazu in der Lage wäre. Siehe z.B. auch den Hinweis zum DDOS-Problem beim TinyIDS-Modul.
# DrupalCenter-Moderator # https://www.drupal.org/u/c-logemann
# CTO der Nodegard GmbH: Tech. Concepts | Security + Availability Operations / Wir unterstützen IT-Abteilungen, Agenturen, Freiberufler:innen
Hilfreich, aber nicht wirklich gelöst.
am 05.08.2014 - 12:52 Uhr
Ich habe jetzt mal ein wenig "rumexperimentiert". Zuerst mal gewisse IPs in der htaccess von gewissen Suchmaschinen gesperrt nach dem Link von montviso. Schöner "Nebeneffekt" war, daß tatsächlich viele Aufrufe einfach mal wegfallen, wenngleich es auch mein eigentliches Problem nicht löst.
Dann habe ich mir nochmals Honeypot angeschaut / ausprobiert - damit bekomme ich zwar diesen einen "wilden Scanner" geblockt, aber eben nicht die anderen, die ein "moderates" Tempo vorlegen, also 12 Aufrufe / Minute, entsprechend also alle 5 Sekunden, was ja auch die Voreinstellung von honeypot ist. Diesen Wert höher setzen möchte ich nicht, da dann mit Sicherheit auch viele echte User darunter leiden. Eher würde ich die Zeit verringern wollen, denn wenn sich ein User, der halbwegs die Struktur der Seite kennt, durch die Übersichts- und Listenseiten bis auf den ihn interessierenden Text klickt, geht das auch schon wesentlich schneller als 5 Sekunden pro Seite. Hab es daher wieder deinstalliert.
@ Carsten Logemann
Ja, stimmt, daran hatte ich jetzt nicht gedacht. Ist wie im PC-Bereich, wo es auch alle möglichen Programme gibt von supersimpel bis hochkomplex, von quick and dirty bis excellent.
Anmeldeversuche werden durch meine Einstellung von Drupal sowieso verweigert, ebenso Kommentare. Bleibt also nur das Kontak-Formular. Klar bekomme ich darüber hin und wieder auch mal Spam, aber meist sind es echte Anfragen zu bestimmten Themen, Hinweise, Informationen usw.
Damit kommen wir zu einem Punkt, der mich seinerzeit selbst etwas überrascht hat: Es wäre bei dieser Seite keine gute Idee, von vornherein bestimmte Länder ausschließen zu wollen. Auch wenn meine Seite nur eine kleine "Randgruppe" oder auch "Fan-Gemeinde" anspricht, so sind sie doch tatsächlich weltweit verteilt.
Somit betrachte ich diese Anfrage im Moment noch nicht als "gelöst", aber zumindest habe ich trotzdem wieder einiges dazugelernt, was ja auch etwas wert ist ...
Und noch ein Dankeschön an alle Helfer.
Zitat: Eher würde ich die
am 05.08.2014 - 13:07 Uhr
Eher würde ich die Zeit verringern wollen, denn wenn sich ein User, der halbwegs die Struktur der Seite kennt, durch die Übersichts- und Listenseiten bis auf den ihn interessierenden Text klickt, geht das auch schon wesentlich schneller als 5 Sekunden pro Seite.
Die 5 Sekunden oder welche Zahl auch immer, sind auf das Ausfüllen eines Formulares bis zum Abschicken bezogen, nicht auf das Navigieren innerhalb der Website.
Grüße Jenna
@Meiner Einer,für mein
am 05.08.2014 - 13:13 Uhr
@Meiner Einer,
Ich bin bisher davon ausgegangen, daß Honeypot nur bei Formularen funktioniert.
( durch Hinzufügen eines Hiddenfeldes, welches der menschl. User nicht befüllt, weil er es nicht sieht.
Die Spam-Maschine richtet sich nach dem Quellcode und befüllt das Feld.)
Funktioniert das Modul auch bei normalen Seiten, in dem es die Frequenz der Aufrufe checkt?
Das habe ich wohl übersehen.
Ich habe allerdings auch nicht drauf geachtet, weil mich damals nur die Abwehr von Spam-Registrierungen interessiert hat.
Ich denke, die schlauen Bots, die auf moderates Tempo getrimmt sind, kann man wirklich nur via IP ausschließen, wenn das Muster drauf deutet, daß es kein Mensch ist.
Das Problem bei den Login- und sonstigen Formularen bzw. Seitenaufrufen ist ja, daß es nicht nur schlaue Bots gibt, die sich wie Menschen verhalten, sondern auch Menschen, die sich wie dumme Bots verhalten (und alle 5 Sekunden weiter klicken bzw. Fake-Kommentare händisch erstellen) ;-)
Mein Eindruck: Man kann das Problem Spam nie auf gelöst setzen, es bleibt ein ewiger Kampf zwischen Hase und Igel...
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Also laut der
am 05.08.2014 - 13:36 Uhr
Also laut der Configurationsseite kann man da auch ganz "normale" Seiten, Artikel, Buchseiten überwachen lassen. Aber ich gebe zu, wirklich testen habe ich es nicht können, da User1, der ich ja bin, ausgeklammert wird. Ich hätte das höchstens über einen zweiten, anderen Browser testen können, über den ich nicht eingeloggt bin. Aber da es dann trotzdem noch dieselbe, also meine gerade aktuelle IP wäre - keine Ahnung, ob das so geht ...
Aber wenn es jetzt für Dich interessant wäre, kann ich gerne mal als Tester für Deine Seite fungieren und da mal wild rumklicken ...
Du kannst gerne mal Bot
am 05.08.2014 - 14:31 Uhr
Du kannst gerne mal Bot spielen ;-)
z.B. hier: http://www.gartenstauden.de/inhaltsverzeichnis/gartenstauden
Ich habe gerade mal möglichst schnell eine nach der anderen Seite geöffnet (als Gast).
Das wird nicht unterbunden.
Ich finde auch keine Meldungen im Watchdog, wohingegen abgelehnte Versuche, ein Form abzuschicken hier massenhaft angezeigt werden.
Die Einstellungen in Honeypot sind:
Honeypot time limit
5 seconds
(Minimum time required before form should be considered entered by a human instead of a bot. )
Hier steht auch nur, daß die 5 sec. für ein Form gelten.
Von Einstellungen bezüglich einer Seite kann ich nirgendwo etwas entdecken.
Gibt es evt. verschiedene Honeypot Module?
Ich habe dieses hier: https://www.drupal.org/project/honeypot
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Ist genau das Modul, was ich
am 05.08.2014 - 15:13 Uhr
Ist genau das Modul, was ich auch verwendet habe. OK, dann habe ich da irgendwas falsch interpretiert - wie schon oben erwähnt: mein Englisch ist eher eine Katastrophe ...
Ich war tatsächlich anhand der Configurationsseite der Meinung, es würde auch einfache Zugriffe blocken.
Habe jetzt Bot gespielt - wie ein Wilder hin und her geklickt. Bin leider nicht gesperrt worden. Das heißt aber auch, honeypot ist für mich völlig ungeeignet. Meine derzeitige IP dürfte die 79.215.71.193 gewesen sein.
Danke, daß Du dich für den Test zur Verfügung gestellt hast - übrigens: Schicke Seite ...
Zitat: Das heißt aber auch,
am 05.08.2014 - 15:26 Uhr
Das heißt aber auch, honeypot ist für mich völlig ungeeignet.
Ja fürchte ich auch.
Ich habe mir zu den Bots noch nicht so viel Gedanken gemacht.
In der Regel sind die Zugriffe eher nachts.
Wenn es ein Problem wäre, dann würde ich auch dieIP via .htaccess sperren.
Und danke für's Kompliment. ;-)
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de