Ich habe eine Web-App, die keine Benutzer auf den Philippinen hat, die aber ständig von Spammern, Cardern, die Karten testen, und anderen unerwünschten Aktivitäten bombardiert wird. Ich kann in den Protokollen sehen, dass sie IPs auf den Philippinen haben und meine Site zunächst über google.ph oder andere .ph
Sites finden.
Ich habe ziemlich gute Filter und Sicherheitskontrollen installiert, so dass sie nicht wirklich viel Schaden anrichten, aber trotzdem werde ich es wirklich leid. Sie verbrauchen Bandbreite, füllen meine Datenbank, Missbrauchsprotokolle und Sicherheitsprotokolle mit Mist, verschwenden meine Zeit mit der Abrechnung von Konten usw.
Während die überwiegende Mehrheit der philippinischen Bürger keine Spammer sind und ich nicht jedes Land blockieren kann, das mich ärgert, besteht die Lösung an dieser Stelle einfach darin, den gesamten Verkehr von den Philippinen zu meiner Webapp zu blockieren. (Ich weiß, dass das Blockieren von IP-Blöcken in ganzen Ländern keine gute Praxis ist und viele Probleme hat, aber für dieses Land möchte ich eine Ausnahme machen.)
(Ich weiß, dass sie ihre IP-Adresse fälschen könnten, aber zumindest kann ich sie dazu bringen, ein bisschen dafür zu arbeiten.)
Ich weiß, dass es da draußen ein paar Geoip-Dienste gibt. Kennt jemand kostenlose oder kostengünstige Dienste? Oder eine andere Möglichkeit, den Verkehr aus einem bestimmten Land herauszufiltern?
Ich verwende PHP auf Apache 2, wenn es darauf ankommt.
Antworten:
Sie können dies basierend auf der IP-Adresse mit einer kostenlosen IP Locatin-API wie IPInfoDB http://ipinfodb.com/index.php tun.
quelle
Im Gegensatz zu den meisten anderen Postern hier werde ich Ihnen nicht sagen, dass dies eine schlechte Idee ist, dass Sie es nicht tun sollten, dass es Ihr Problem nicht lösen wird oder dass Sie etwas anderes tun sollten. Folgendes ist mit uns passiert:
Menschen aus China und Korea (oder die sowieso Proxies in China und Korea benutzen) nervten uns immer wieder. Portscanning, Durchsuchen unserer Websites nach Sicherheitslücken, Durchführen von Anmeldeversuchen usw. Ich habe versucht, diese zu ignorieren (fail2ban kümmert sich normalerweise um sie), aber an einigen Stellen haben sie uns so hart getroffen, dass es effektiv zu einem DoS-Angriff wurde. Wenn Sie Hunderte von Verbindungen gleichzeitig von Personen haben, die versuchen, Ihren Webserver als Proxy zu verwenden, versuchen, SSH auf Ihren Computer zu übertragen, versuchen, zufällige Benutzernamen und Kennwörter zu verwenden, belastet dies in der Regel die Site. Irgendwann hatte ich die Nase voll.
Wir bekommen keinen legitimen Verkehr aus China oder Korea; Unsere Firma verkauft dort nicht (wir sind E-Commerce-Unternehmen), daher bestand kein Risiko, legitimen Datenverkehr zu verlieren. Ich dachte, es wäre einfacher, sie im Voraus zu blockieren, anstatt darauf zu warten, dass sie Schwänze sind.
Und das ist es. Unsere Problembenutzer gingen weg, die Netzwerklast und der Server wurden verringert, und wir überstanden die Weihnachtszeit problemlos.
Hinweis 1 : Sie können dies mit regulären iptables (dh ohne ipset) tun, dies ist jedoch rechenintensiver als die Verwendung von ipset.
Hinweis 2 : So sehen die Dumps aus (ipset generiert diese für Sie, wenn Sie möchten):
Anmerkung 3 : Wir verwenden ein Nethash, da alle unsere Bereiche als CIDR-Blöcke gespeichert sind. Wenn Sie sie nicht in CIDR konvertieren möchten, können Sie stattdessen eine iptreemap verwenden. Ich stelle mir jedoch vor, dass dies weniger effizient ist, wenn Sie viel Verkehr haben.
quelle
Wie behebt man einen Fehler im Code?
Wie so?
Bug: Add (2,2) gibt 0 zurück, sollte 4 zurückgeben.
Fester Code:
Offensichtlich nicht. Man schafft nicht nur eine schwankende Monstrosität von Sonderfällen, die enorm zerbrechlich ist und ein Rezept für eine Katastrophe darstellt. Sie patchen auch nicht nur HEUTE das Symptom des zugrunde liegenden Problems.
Finden Sie stattdessen die Ursache heraus und beheben Sie diese. Dies ist weitaus robuster als jeder hackige Spezialfall-Patch, den Sie implementieren könnten.
Warum ist Ihre Web-App anfällig für Spam? Welche Eigenschaften machen es anfällig? Welche Eigenschaften machen es zu einem wertvollen Ziel? Gibt es Möglichkeiten, diese Eigenschaften zu ändern, um Ihre App robuster gegen Spam und weniger verlockend zu machen? Die Antwort auf diese Fragen lautet mit ziemlicher Sicherheit Ja. Fügen Sie Validierungsketten zu Ihren Formularen hinzu, verwenden Sie ein Captcha intelligent, randomisieren Sie URLs und / oder Parameternamen, um sie für Bots unfreundlich zu machen. Es gibt Millionen von Möglichkeiten, um dieses Problem anzugehen. Es tut mir leid, dass Sie sich für eine der am wenigsten wertvollen, am wenigsten nützlichen und anfälligsten Lösungen entschieden haben.
quelle
Erstens würde ich dringend empfehlen, dies nicht zu tun.
Wie andere weitaus beredter gesagt haben, wird das Problem durch das Blockieren eines bestimmten Landes nicht behoben, sondern nur geringfügig verschoben. Wenn Benutzer aus diesem Land sehen, dass Sie sie speziell blockiert haben , werden sie nur dazu motiviert, Ihnen weitere Probleme zu bereiten .
Wenn Sie dies wirklich tun möchten, stellt IPinfoDB eine kostenlose IP-Geolocation-Datenbank zur Verfügung.
quelle
Sie sollten Produkte wie fail2ban verwenden, um Fehler, die Sie in Ihrer Webanwendung auslösen und die darauf hinweisen, dass gerade ein Spam-Versuch ausgeführt wird, auszuschließen. Dadurch wird die IP-Adresse für einen bestimmten Zeitraum blockiert, wodurch Ihre Site zwar widerstandsfähig wird, aber nicht vollständig alle IP-Blockierungen blockiert.
quelle
Einige Lösungen:
Diese Lösungen sind ziemlich einfach und schnell zu installieren und kostenlos.
Eine längerfristige Lösung wäre, den Spam von Ihrer Webanwendung zu erkennen, die IP zu protokollieren und Ihre iptables zu füttern, um sie automatisch zu blockieren.
quelle
Haben Sie darüber nachgedacht, von wem die Netzwerke betrieben werden, von denen aus Sie angegriffen werden? Finden Sie den "Missbrauch" -Kontakt mit whois und melden Sie ihn. Natürlich kann es aus mehreren Netzwerken stammen, aber es kann sich auch lohnen, wenn Sie einige wiederkehrende Adressen / Netzwerkblöcke sehen.
quelle
Sie haben jedes Recht IP - Adressen zu blockieren , aus welchem Grund auch immer Sie für sich selbst rechtfertigen kann. Sie sind es, die eine Dienstleistung erbringen, und Sie entscheiden, wer sie haben kann oder nicht. Es ist vielleicht fraglich, ob dies moralisch ist, aber das können Sie nur für sich selbst entscheiden.
Das Blockieren eines IP-Segments, da es einige geografische Aspekte aufweist, klingt für mich mehr oder weniger nach einem panischen Ansatz.
Was ich in der Vergangenheit getan habe, ist, dass ein Crawler meine neuesten Protokolle durchläuft und basierend auf diesem Verbot einzelne IPs, die für einen Zeitraum von 24 Stunden ärgerlich sind. Wenn sich diese bestimmte IP wieder schlecht verhält, ist sie für 2 Tage gesperrt, dann für 3 Tage usw. usw. Sie erhalten die Abweichung.
IPs, die für mehr als eine Woche gesperrt sind, werden an mich gesendet, und ich sende eine Missbrauchsmail an diesen Dienstanbieter (der weiß, dass dies möglicherweise sogar hilft).
quelle
Ich würde mich für eine Snort + OSSEC-Lösung entscheiden, die so etwas dynamisch aufrechterhalten könnte.
quelle