it-swarm.com.de

Welche Tools können dazu beitragen, die maximale Seitenanzeige pro IP zu begrenzen, um Kratzer und Bots zu begrenzen?

Ich möchte verhindern, dass Schaber alle meine Inhalte mit Ausnahme von Google, Bing und anderen Suchmaschinen abrufen. Ich denke darüber nach, Fail2ban zu verwenden und die Treffer von einer IP auf etwa 1000 pro Tag zu begrenzen. Ist das eine gute Idee? Gibt es einen besseren Weg?

5
giorgio79

Es gibt viele Möglichkeiten, dies in Apache mithilfe von Modulen zu tun, oder Sie können alternativ IP-Tabellen einrichten, um die Aufgabe zu erledigen, obwohl ich persönlich nur die Module verwende.

mod_security

Ich persönlich habe das genutzt und es macht den Job gut, ein guter Artikel über das Begrenzen von Anfragen ist zu finden hier .

mod_evasive

Die Erkennung wird durchgeführt, indem eine interne dynamische Hash-Tabelle mit IP-Adressen und URIs erstellt wird und eine einzelne IP-Adresse aus einer der folgenden Möglichkeiten verweigert wird:

Dieselbe Seite mehr als ein paar Mal pro Sekunde anfordern Mehr als 50 gleichzeitige Anfragen an dasselbe untergeordnete Element pro Sekunde stellen Anfragen während der vorübergehenden Sperrliste (auf einer Sperrliste) stellen

Ein anderer hier:

mod_qos

Die aktuelle Version des Moduls mod_qos implementiert Kontrollmechanismen zur Verwaltung von:

Die maximale Anzahl gleichzeitiger Anforderungen an einen Speicherort/eine Ressource (URL) oder einen virtuellen Host. Begrenzung der Bandbreite, z. B. die maximal zulässige Anzahl von Anfragen pro Sekunde an eine URL oder die maximale/minimale Anzahl von heruntergeladenen KB pro Sekunde. Begrenzt die Anzahl der Anforderungsereignisse pro Sekunde (besondere Anforderungsbedingungen). Es kann auch sehr wichtige Personen (VIP) "erkennen", die ohne oder mit geringeren Einschränkungen auf den Webserver zugreifen können. Generischer Anforderungszeilen- und Headerfilter, um nicht autorisierte Vorgänge zu verweigern. Beschränkung und Filterung von Körperdaten anfordern (erfordert mod_parp). Einschränkungen auf der Verbindungsebene TCP, z. B. die maximale Anzahl zulässiger Verbindungen von einer einzelnen IP-Quelladresse oder die dynamische Keep-Alive-Steuerung. Bevorzugt bekannte IP-Adressen, wenn dem Server die freien TCP Verbindungen ausgehen.

mod_dosevasive

Die IP-Adresse des Clients wird in der temporären Blacklist der Hash-Tabelle überprüft. Wenn die IP-Adresse aufgelistet ist, wird dem Client der Zugriff mit 403 Forbidden verweigert.

Befindet sich der Client derzeit nicht auf der Sperrliste, werden die IP-Adresse des Clients und der angeforderte Universal Resource Identifier (URI) in einen Schlüssel gehasht. Mod_Dosevasive überprüft dann die Hash-Tabelle des Listeners, um zu überprüfen, ob dieselben Hashes existieren. In diesem Fall werden die Gesamtzahl der übereinstimmenden Hashes und der angeforderte Zeitrahmen im Vergleich zu den in der Datei httpd.conf durch die Mod_Dosevasive-Direktiven angegebenen Schwellenwerten ausgewertet.

Wenn die Anforderung durch die vorhergehende Prüfung nicht abgelehnt wird, wird nur die IP-Adresse des Clients in einen Schlüssel gehasht. Das Modul überprüft dann die Hash-Tabelle auf die gleiche Weise wie oben. Der einzige Unterschied bei dieser Überprüfung besteht darin, dass nicht berücksichtigt wird, welchen URI der Client überprüft. Es wird geprüft, ob die Clientanforderungsnummer den für den gesamten Standort festgelegten Schwellenwert für das angegebene Zeitintervall überschritten hat.

Iptables Solution

iptables -A FORWARD -m state --state NEW -m recent --rcheck --seconds 600 --hitcount 5 --name ATACK --rsource -j REJECT --reject-with icmp-port-unreachable

iptables -A FORWARD -d 127.0.0.1/32 -o eth1 -p tcp -m tcp --dport 80 -m recent --set --name ATACK --rsource -j ACCEPT
5
Simon Hayter

Ein CDN-Dienst könnte sich vor Ihre Site setzen und bekannte Crawler herausfiltern. Sie filtern auch Spammer heraus und da sie Ihre Bilder an Orten auf der ganzen Welt zwischenspeichern, wäre Ihre Site schneller.

Ich benutze CloudFlare seit ungefähr einem Monat auf einer Site für einen Kunden und erlebte einen Rückgang der Bandbreitennutzung und einen Anstieg des Datenverkehrs. CloudFlare bietet auch eine kostenlose App mit dem Namen scrapeshield https://www.cloudflare.com/apps/scrapeshield an, aber Scraping ist für diese Site kein großes Problem

1
CodeMonkey

Ich denke, die effizientesten Möglichkeiten, um unerwünschte Hosts und IPs einzuschränken, sind:

  1. Blockieren Sie sie außerhalb Ihres Servers, um die Belastung zu verringern.
  2. Verwenden Sie interne IP-Filter-/Firewall-Regeln, um die Belastung Ihrer Webserver-Anwendung zu verringern.
  3. Sperren Sie sie über Ihren Webserver.

Die erste erfordert dedizierte Hardware oder einen Proxy-Server.

Der zweite Schritt kann über ein Bedienfeld (z. B. cPanel, Plesk usw.) oder manuell durch Erstellen von IP-Filter-/Firewall-Regeln (in anderen Antworten behandelt) erfolgen.

Der dritte Schritt kann in IIS über die Benutzeroberfläche, in Apache mithilfe von Modulen (in anderen Antworten behandelt) oder in der Konfiguration von Apache wie folgt ausgeführt werden:

# Block unwanted Host domains
RewriteEngine on
RewriteCond %{HTTP_REFERER} baddomain01\.com [NC,OR]
RewriteCond %{HTTP_REFERER} baddomain02\.com [NC]
RewriteRule .* - [F]

Letzteres ist eine gute Option, da Sie keine bestimmten IP-Adressen oder Klassen verbieten, was Schulen, große Unternehmen oder Bibliotheken ausschließen könnte, die NAT (eine einzelne ausgehende IP-Adresse) verwenden.

Sie können häufig Scraper- und Bot-Hosts in den Zugriffs- und Fehlerprotokollen Ihres Webservers erkennen, was mit einer Statistikanwendung einfach zu bewerkstelligen ist.

0
dan

Es gibt ein Apache-Modul namens "robotcop", das speziell für diesen Zweck entwickelt wurde.

Leider ist die Website für dieses Apache-Modul (www.robotcop.org) nicht mehr in Betrieb. Hier ist ein Slashdot-Artikel, der den Start des Robotcop-Moduls ankündigt .

Der Quellcode (Open Source - Apache-Lizenz) für das Modul ist weiterhin an verschiedenen Stellen erhältlich:

0

Ein anderer Ansatz zur Begrenzung von Abstreifern und Bots wäre die Implementierung eines Honigtopfs. Legen Sie eine Seite auf, auf die nur Bots zugreifen können und die den Zugriff von Bots über robots.txt einschränken. Jeder Bot, der diese URL dann trifft, wird auf die schwarze Liste gesetzt.

WPoison ist ein Projekt, das den Quellcode dafür bereitstellt.

0