Dies kann verwendet werden, um den Zugriff auf Ihr Forum für bestimmte Länder oder Netzwerke vollständig zu blockieren, z. B. zur Betrugsprävention oder zur Einhaltung von Sanktionen.
Das Plugin nutzt die MaxMindDB-Datenbank, die in Discourse bereits verfügbar ist.
Konfiguration
Aktivieren Sie das Plugin
Fügen Sie alle Netzwerke, die Sie blockieren möchten, zu geo_blocking_asn_blocklist hinzu. Präfixieren Sie die Nummern mit AS, also zum Beispiel AS12345.
Fügen Sie alle Länder und Regionen, die Sie blockieren möchten, zu geo_blocking_country_region_blocklist hinzu. Die folgenden Formate werden akzeptiert:
Vollständiger Ländername (zum Beispiel: Belgien)
ISO-Code des Landes (zum Beispiel: JP für Japan)
Vollständiger Ländername gefolgt von einem Punkt und dann dem Regionsnamen (zum Beispiel: Schweiz.Jura).
Ich werde das sofort ausprobieren. Wie konnte ich das übersehen
Ich muss ein paar Länder und ASNs blockieren, aber aus offensichtlichen Gründen kann ich Varnish dafür nicht verwenden, wie bei meinen anderen Websites. Das löst diese Kopfschmerzen, wenn es noch funktioniert.
Vielen Dank für die Entwicklung dieses nützlichen Plugins, Richard.
Ich habe einige kleinere Änderungen vorgenommen, um es an meinen Anwendungsfall anzupassen: Blockieren bestimmter URLs für Benutzer in bestimmten Regionen. Ich habe in add_model_callback(:application_controller, :before_action) einige weitere Übereinstimmungsregeln mit request.fullpath hinzugefügt, z. B.:
Ich stelle fest, dass dieses Geo-Blocking auf URL-Ebene funktioniert, wenn ich die URL direkt in die Adressleiste des Browsers eingebe. Wenn ich jedoch zur URL navigiere, indem ich darauf von der Discourse-Homepage aus klicke, funktioniert dies nicht. (Aber nach dem Drücken von F5 zum Aktualisieren der Seite wird sie blockiert.)
Können Sie mir Ratschläge zur Behebung dieses Problems geben? Danke.
Sie müssten auch etwas Ember-Code hinzufügen, der den Router abfängt.
Ich glaube jedoch, dass Sie hier einen anderen Ansatz verfolgen müssten. Dieses Plugin wurde nicht für eine so spezifische Filterung entwickelt.
Es wäre wahrscheinlich viel besser, ein separates Plugin zu erstellen, das einen Mechanismus zum Hinzufügen/Entfernen von Benutzern zu Gruppen basierend auf deren Geolokalisierung hat, und dann könnten Sie die vorhandene Gruppensicherheit nutzen, um den Zugriff auf bestimmte Teile des Forums zu beschränken oder zu erlauben.
Dies ist ein praktisches Plugin, aber was könnte verhindern, dass es wie erwartet funktioniert? Erstens wurde das Plugin problemlos installiert, das ist nicht das Problem.
Ich habe ein paar blockierte Länder eingerichtet und dann mit einem VPN getestet, um über diese Länder darauf zuzugreifen, aber keine blockierten Warnungen erhalten.
Vielleicht ist das VPN das Problem. Nicht alle VPNs sind gleich?
Ok, danke für diesen Hinweis. Ich habe die Exit-Nodes nicht berücksichtigt und hatte keine Ahnung, wo sich die Exit-Nodes bei den Verbindungen befanden. Die “Whats my IP”-Anzeige war für mich ausreichend, sie stimmte mit der Region/dem Land überein, das auf Geo-Blocking getestet wurde.
Drehen wir es also um: Ich habe die Zone, in der ich mich befinde, blockiert und keinen VPN verwendet, ein anderes Gerät verwendet, auf dem ich sowohl das Festnetz als auch das Mobilfunknetz testen kann, und es passiert immer noch nichts, kein Geo-Block tritt wie erwartet in Kraft, wenn ich mich einwähle.
Bitte verstehe, dass ein Proxy, VPN oder Tor diese Art von Mechanismen immer umgehen kann. Das Plugin soll diese nicht blockieren. Geo-Blocking erfolgt entweder aus rechtlichen Gründen oder um den Zugriff für Gelegenheitsbesucher zu blockieren.
Hast du das getan?
1 „Gefällt mir“
RGJ
(Richard - Communiteq)
Hat dieses Thema aufgeteilt,
12
Vielen Dank für dieses großartige Plugin.
Wenn es dazu dient, Spam oder unerwünschte Länder daran zu hindern, öffentliche Seiten zu erreichen, könnte es für eine private Discourse-Instanz auch schlechte Bot-Scans verhindern?
Ein bisschen von beidem, aber es kommt darauf an. Offiziell verbietet es unerwünschte Länder, aber es macht keinen Unterschied zwischen wahrscheinlich Menschen und Bots.
Wenn Ihre Instanz privat ist (d. h. ein Login erforderlich ist), können Bots ohnehin nicht darauf zugreifen (es sei denn, sie wären speziell dafür entwickelt worden, ein Konto zu erstellen und sich anzumelden).
Scraper sind etwas anderes, weil diese Inhalte stehlen. Spam-Bots, die auf öffentlichen Instanzen ein Problem darstellen, sind ein völlig ähnliches Problem für private Foren. Deshalb haben wir KI, die Inhalte scannt.
Für mich schneidet Geo-Blocking einen ordentlichen Teil unerwünschter Anrufe und Anmeldungen weg. Ich kann es nutzen, weil ich ein rein finnisches Forum habe [1], aber ein globales kann es natürlich nicht nutzen.
Jeder Angreifer erhöht die Last für den Webserver, aber Discourse unterscheidet sich von der PHP-Welt. Ein Bot kann leicht einen DDoS-ähnlichen Effekt auf WordPress ausüben, und dann kann Geo-Blocking ein Teil der Verteidigungsstrategie sein. Aber Discourse ist dem gegenüber viel resistenter, schätze ich.
Aber gegen Spam-Bots hilft Geo-Blocking nicht, wenn alle Länder erlaubt sein müssen.
Übersetzer kann diese Situation ändern, wenn es eines Tages produktionsreif ist ↩︎
Vielen Dank für Ihre Antwort. Ja, tatsächlich erhalten sie keine Daten, aber ich sehe sie immer noch in den Nginx-Protokollen und es werden immer noch unerwünschte Verbindungen generiert. Daher habe ich dieses einfache Tool installiert, um Verbindungen zu bestimmten Ländern zu blockieren, bevor sie überhaupt die Docker-Discourse-Instanz erreichen: GitHub - friendly-bits/geoip-shell: User-friendly and versatile geoblocker for Linux
Ja, das ist ein großartiges Werkzeug. Beachten Sie, dass dies einen “harten” Block verursacht, während das Plugin Ihnen eine schöne und konfigurierbare Nachricht gibt, die Sie blockierten Benutzern anzeigen können.