Mein Server hat in den letzten zwei Tagen einige Male keinen Arbeitsspeicher mehr, weshalb die Site abgestürzt ist. Ich habe AWstats überprüft und festgestellt, dass Hunderte von ungelösten IP-Adressen protokolliert wurden und die Anzahl der Treffer von ihnen unangemessen erscheint:
Ich werde die Top 10 IP-Adressen verbieten, da sie mir alle als Spam erscheinen. Aber es gibt noch andere Hunderte von IP-Adressen, die Tausende von Treffern verursachen, und ich weiß wirklich nicht, ob es sich um legitime Anfragen von Benutzern handelt, die Browser verwenden. Ich könnte sie alle mit htaccess verbieten, aber das scheint weder sehr praktisch noch eine langfristige Lösung zu sein. (Die Site erhält ungefähr 3 Millionen Seitenaufrufe pro Monat.)
Meine Fragen sind:
- Wie filtere ich legitime Benutzer aus unerwünschten Bots oder IP-Adressen heraus, die Inhalte entfernen?
- Soll ich alle "ungelösten IP-Adressen" sperren?
- Gibt es eine automatisierte Möglichkeit, Spam-IP-Adressen zu verbieten?
quelle
Antworten:
BOTS, CRAWLERS und SCRAPERS verwenden IP-Adressen in Blöcken. Es ist selten, dass eine IP-Adresse immer wieder dieselbe IP-Adresse verwendet. IP-Blöcke werden oft verkauft, gebracht und dann wieder verkauft! Einige dieser Blöcke werden aufgelöst, andere hängen nicht vom verwendeten Setup ab, da das Verbot der IP-Adresse für eine Auflösung nutzlos ist, da Sie das Risiko eingehen, echte Benutzer mit VPNs, Proxies usw. zu sperren, die möglicherweise ebenfalls nicht aufgelöst werden.
Das Sperren von IP-Adressen durch selbstüberwachende Protokolle ist nicht nur Zeitverschwendung, sondern funktioniert auch nur vorübergehend, bis die IP-Blöcke wieder gedreht werden. Der einfachste und beste Weg ... besteht darin, Ihren Server so einzurichten, dass Benutzer / Bots / Crawler, die viel zu schnell anfordern, vorübergehend blockiert werden, ähnlich wie bei Stack Exchange, und alle anderen Top-Sites, die wahnsinnigen Datenverkehr erhalten.
Wenn Sie nicht die Zeit oder die Fähigkeiten haben, Ihren eigenen internen Blocker zu bauen, ist es am besten, sich fail2ban anzuschauen.
Fail2Ban
Am besten stellen Sie sicherheitsrelevante Fragen zum Sicherheitsstapel, da dieser offensichtlich mehr Experten auf diesem Gebiet anzieht. Hier ist eine Frage und Antwort, die ich zum Einrichten von fail2ban mit einem temporären Block gefunden habe, wenn Besucher zu schnell fragen . Beachten Sie, dass Sie zusätzlich zum zeitweiligen Blockieren einer Dauerwelle auch einrichten können, falls diese dies weiterhin tun, während sie blockiert sind.
quelle
Verwenden Sie auf jeden Fall fail2ban, wie in Simons Antwort empfohlen, da es in seiner Standardkonfiguration vor anderen Problemen schützt. Sie erwähnen jedoch, dass auf dem Computer nicht genügend Arbeitsspeicher vorhanden ist und fail2ban Ihre Protokolle überwachen und auf diese Bots reagieren muss, die Arbeitsspeicher verwenden. Möglicherweise gehen Ihnen immer noch die Ressourcen aus, und wenn dies passiert, benötigen Sie etwas Effizienteres.
Ich empfehle Ihnen auch
iptables
direkt zu verwenden. Fail2ban verwendet iptables, um auf Angriffe zu reagieren, indem problematische IP-Adressen gelöscht werden. Es gibt jedoch keinen Grund, warum Sie nicht proaktiv sein und einfach einen Block bekannter fehlerhafter IPs vorab laden können.Als Beispiel verwende ich Folgendes, um die gesamte IP-Palette von poneytelecom stillschweigend zu löschen:
Um den gesamten Datenverkehr von den Top 8 der größten Treffer in Ihrem Screenshot effizient zu löschen, können Sie ihn verwenden
Zwei wichtige Dinge, an die Sie sich erinnern sollten. Änderungen bleiben bei Neustarts nicht bestehen, und Sie können legitime Besucher aus diesen IP-Adressbereichen blockieren. Für letztere müssen Sie die IP-Adressen nachschlagen (versuchen Sie es mit WHOIS) und entscheiden, ob es sich um einen akzeptablen Verlust handelt. Für mich war poneytelecom definitiv.
Und um Ihre iptables-Regel (n) in jeder Debian-basierten Distribution dauerhaft zu erhalten, probieren Sie das
iptables-persistent
Paket aus. Installieren und aktivieren Sie es mit diesem Befehl:Wenn Sie später Regeln ändern, müssen Sie diese mit speichern
sudo service iptables-persistent save
. (Hinweisiptables-persistent
kann auchnetfilter-persistent
in einigen Distributionen genannt werden)Viel Glück und Vorsicht
iptables
, meine Beispiele funktionieren einwandfrei und werden getestet. Wenn Sie jedoch neue anpassen und testen, lesen Sie unbedingt die Manpages und verstehen Sie die Konsequenzen jeder neuen Regel. Andernfalls besteht die Gefahr, dass der Server für alle unzugänglich wird Möglicherweise müssen Sie ein neues Image erstellen und von vorne beginnen.quelle