Ist es möglich, bestimmte Seiten basierend auf der IP-Adresse bereitzustellen?

8

Ich war das Ziel eines Brute-Force-Angriffs auf zwei WordPress-Sites, die ich besitze. Der Angreifer verwendet das gute alte XML-RPC-Ding, um Brute-Force-Passwortangriffe zu verstärken. Glücklicherweise haben wir sehr gut generierte Passwörter, daher bezweifle ich sehr, dass er jemals irgendwohin gelangen wird.

Ich habe gerade iptables verwendet, um seine Anfragen zu blockieren, wenn er erneut auftaucht (immer vom selben virtuellen Cloud-Anbieter), aber ich würde den Server lieber so ändern, dass er eine Antwort erhält , wenn seine IP-Adresse eine Seite anfordert ein Leben bekommen. Die meisten Anfragen sind POSTs, daher möchte ich den Antwort-Header idealerweise so ändern, dass er so etwas wie "Besseres Glück beim nächsten Mal!" Enthält. oder etwas ebenso Befriedigendes.

Ist das möglich? Ich bin kein Experte für Apache, daher bin ich mir nicht sicher, wie schwierig dies zu implementieren wäre. Aber selbst wenn ich Stunden brauche, wird die Zufriedenheit von unschätzbarem Wert sein.

Als Referenz verwende ich Ubuntu 16.04.2 LTS, wobei Apache 2.4.18 Wordpress 4.7.3 hostet.

Aurelius
quelle
"immer vom selben virtuellen Cloud-Anbieter" OVH? Ich habe aus irgendeinem Grund bemerkt, dass viele Script-Kiddies ihre Dienste nutzen.
hd.
Nein, online.net ... sie haben bisher nicht auf einen meiner Missbrauchsberichte geantwortet. Als ich zum ersten Mal eine Missbrauchsanfrage schickte, stellte ich fest, dass die Beschwerde automatisch an den Kunden weitergeleitet wird. Daher fand er meine persönliche Website. Gute Arbeit, online.net ....
Aurelius

Antworten:

25

Installieren Sie einfach fail2ban mit dem entsprechenden Gefängnis und fertig. Geben Sie keine benutzerdefinierte Antwort, da diese höchstwahrscheinlich nie angezeigt wird.

EEAA
quelle
1
Sicher. Aber das ist definitiv etwas, was ich schon immer machen wollte. Selbst wenn er es nie sieht, bringt mich die Möglichkeit so zum Lachen, dass ich fast weine.
Aurelius
14
Nun: 1) IMHO herauszufinden, wie man eine kleine Beleidigung für ein Skript-Kind anzeigt, ist hier nicht zum Thema. 2) Wenn Sie dies tun, werden Ihre Apache-Ressourcen weiterhin verbraucht, während fail2ban / iptables die Upstream-Anforderungen blockiert, sodass Ihre Anwendung sich nie damit befassen muss.
EEAA
1
Oh sicher. Aber ich möchte vor dem Dauerverbot ein bisschen Spaß haben. Ob kleinlich oder nicht, ich möchte nur lachen, und dies geschieht auf Anfrage der Person, deren Geschäft den Server nutzt.
Aurelius
4
@ Aurelius, wenn du die IP kennst und diese Person sie nicht maskiert, warum machst du das nicht in der App selbst, in diesem Fall PHP. Überprüfen Sie einfach, ob es IP xx.xx.xx.xx ist und ob es nur das Skript mit einer Antwort zu beenden ist,die("blah blah");
Miguel
Als Antwort akzeptiert, hauptsächlich, weil ich nichts über fail2ban wusste und das im Allgemeinen sehr hilfreich ist. Miguels Antwort oben und BlackWebWolfs Antwort unten sind beide Dinge, die ich untersuchen werde!
Aurelius
5

Es gibt eine Möglichkeit, und wir haben es ziemlich oft getan, um mögliche Angriffe umzukehren. Verwenden Sie iptables, um den Cloud-Anbieter (Adressbereich) an einen anderen Port umzuleiten - und geben Sie dem Angreifer eine Antwort, auch in einfachen Headern.

In Apache können Sie Header anhand eines Beispiels ändern:

Header set GetOut "Better luck next time!"
BlackWebWolf
quelle
Hehehe !! Das ist es, worüber ich rede. Gute Idee! Ich werde das untersuchen.
Aurelius
5
Diese Strategie wird wahrscheinlich nach hinten losgehen, da sie den Angreifer wissen lässt, was funktioniert und was nicht. Es ist weitaus besser, die Anforderung nur stillschweigend an nichts weiterzuleiten und keine Warnflaggen in seiner Bot-Angriffssoftware auszulösen. Im Idealfall wird beispielsweise das HTML der angeforderten Seite zurückgegeben. Sie wissen nie, dass Sie sie gefangen haben, nichts passiert und Ihre Website ist sicherer. Widerstehen Sie dem Drang, sie wissen zu lassen, das ist immer ein Fehler. Es hilft ihnen einfach, das Problem zu beheben. In Ihrem Fall wechseln Sie einfach zu dynamischeren IP-Bereichen usw., wodurch das Problem VIEL schwerer zu lösen ist.
Lizardx
1
Sie haben Recht, es wird nicht empfohlen - es ist sogar möglicherweise gefährlich. Strategie mit Honeypot ist immer besser, aber die Frage war klar - wie man einen Angreifer
trollt
Es ist mir egal, ob es ein Fehler ist - ich habe fail2ban installiert und er wird trotzdem gebannt. Ich bezweifle sehr, dass er tatsächlich irgendwohin kommt. Soweit ich weiß, haben die jüngsten Versionen von WordPress diesen Sicherheitsfehler tatsächlich behoben? Ganz zu schweigen davon, dass er Passwörter, die länger als 20 Zeichen sind, brutal erzwingt ... ja, das passiert zu Lebzeiten unseres Universums nicht.
Aurelius
blackwebwolf, es ist ähnlich wie bei jemandem, der fragt, wie man die veraltete Erweiterung mysql_ von php implementiert, während man diese Frage technisch beantworten kann. Diese Antwort ist falsch, weil die eigentliche Antwort bedeutet, es richtig zu machen, in diesem Fall beispielsweise mit mysqli_ oder xpdo. Es ist nur die Vorstellung, die viele von uns auch in ihrer Vergangenheit gemacht haben, dass eine Reaktion wie Trolling alles andere als ein großes Negativ ist, korrigiert werden sollte, denn das ist ein schwerwiegender Fehler, und wenn man jemals darunter gelitten hat Bei diesem Fehler würde man sofort verstehen, warum die Frage falsch war.
Lizardx
3

Dies ist mit ModSecurity, einem WAF-Modul eines Drittanbieters für Apache, sehr einfach. Es beinhaltet jedoch das Erlernen der Syntax der Regelsprache.

Sie können ModSecurity auch verwenden, um die Verbindung einfach zu trennen, anstatt überhaupt zu antworten.

Zu sagen, dass die Installation von ModSecurity nur zu diesem Zweck, wenn, wie andere vorgeschlagen haben, die Antworten wahrscheinlich ignoriert werden, möglicherweise übertrieben ist.

Barry Pollard
quelle
2

Ich würde mich für fail2ban entscheiden und Anfragen von bekannten Missbrauchsorten löschen. Und wenn Sie der Meinung sind, dass der Dienstanbieter des Angreifers nicht schuld ist, melden Sie die Angriffe an seine Missbrauchs-E-Mail-Adresse.

Wenn Sie Zeit damit verbringen möchten, etwas zu erstellen, das den Angreifer verlangsamt, sollten Sie versuchen, eine Plane zu erstellen . Zuerst müssen Sie natürlich wissen, woher die Angriffe kommen. Dann könnten Sie Apache verwenden, um die Anfrage von der IP (Bereich?) Zu einem bestimmten Skript umzuleiten. Dies könnte den Trick machen, obwohl ich es selbst nicht ausprobiert habe. Implementieren Sie dann einfach ein Skript, das beispielsweise alle 15 Sekunden einen Punkt (oder etwas aus / dev / null) druckt, um die Verbindung des Angreifers auf unbestimmte Zeit offen zu halten.

Da der Angreifer höchstwahrscheinlich Skripte verwendet, um Ihre Site anzugreifen, kann es einige Zeit dauern, bis er feststellt, dass die Angriffe ins Stocken geraten sind, da alle Verbindungen scheinbar aktiv sind, es keine Zeitüberschreitung gibt und die Anforderung nicht sofort abgelehnt wird.

Das Problem ist, dass Sie Ihre Zeit und Ressourcen für etwas verwenden, das wahrscheinlich nicht so hilfreich ist wie das wichtigere Anliegen: das Sichern Ihres Logins. Es ist schwer anzugreifen, wenn Sie nicht wissen, wo Sie angreifen sollen. Betrachten Sie einige der folgenden Punkte:

  • Beschränken Sie den Zugriff auf die Anmeldeseite (nur Ihr Intranet? IP-Bereich? VPN? Andere?).
  • Fügen Sie reCaptcha oder eine andere Bestätigungsfrage zum Login hinzu.
  • Verwenden Sie die Multi-Faktor-Authentifizierung .
  • verstecke deine Anmeldeseite. Wenn möglich, verlinken Sie nicht von Ihrer Hauptseite darauf und verwenden Sie nicht / login oder einen anderen offensichtlichen Ort.
Gemeinschaft
quelle
Danke für die Information! A) Die beiden Benutzer, die sich anmelden können, haben zufällig generierte lange Passwörter. B) Auf der Anmeldeseite befindet sich eine Art Captcha. C) Ich versuche, .htaccess zum Laufen zu bringen, um den Zugriff auf diese Seite zu verhindern. Es scheint jedoch, dass sich die Standards für .htaccess mehrmals geändert haben - ich sehe überall eine andere Syntax und bisher funktioniert htaccess kaum.
Aurelius
Außerdem habe ich alle Angriffe ohne jegliche Antwort an online.net gemeldet.
Aurelius
Einige nützliche Tipps für htaccess: stackoverflow.com/questions/6441578/… (Ich empfehle dringend die Digest-Authentifizierung).
Wenn man sich die Kommentare auf dieser Seite ansieht, scheint Digest keine gute Idee zu sein? httpd.apache.org/docs/2.4/mod/mod_auth_digest.html
Aurelius
1
Da haben Sie mich erwischt. Ja, ich erinnerte mich daran, dass wir seit der Verwendung der Digest-Authentifizierung nicht überall https hatten. Der Grund, warum wir keine htacces-Passwörter verwenden, ist, dass dies keine langfristige Lösung ist. Es ist in Ordnung, damit eine Woche vor der Veröffentlichung etwas zu verbergen, aber für den täglichen Gebrauch möchten Sie keine andere Ebene von Passwörtern. Es ist nicht einmal so viel sicherer. Wenn die Ressource vorhanden ist, die im öffentlichen Internet überhaupt nicht angezeigt wird, sind wir auf dem richtigen Weg.