Questo può essere utilizzato per bloccare completamente l’accesso al tuo forum da determinati paesi o reti, ad esempio per prevenzione frodi o per conformarsi a sanzioni.
Il plugin sfrutta il database MaxMindDB giĂ disponibile in Discourse.
Configurazione
Abilita il plugin
Aggiungi tutte le reti che desideri bloccare a geo_blocking_asn_blocklist. Anteponi AS ai numeri, ad esempio AS12345.
Aggiungi tutti i paesi e le regioni che desideri bloccare a geo_blocking_country_region_blocklist. Sono accettati i seguenti formati:
Nome completo del paese (ad esempio: Belgio)
Codice ISO del paese (ad esempio: JP per il Giappone)
Nome completo del paese seguito da un punto e poi dal nome della regione (ad esempio: Svizzera.Giura).
Ho bisogno di bloccare geograficamente alcuni paesi e AS, ma per ovvi motivi non posso usare Varnish per questo compito come con i miei altri siti. Questo risolve quel grattacapo, se è ancora operativo.
Grazie per aver sviluppato questo utile plugin, Richard.
Ho apportato alcune piccole modifiche per adattarlo al mio caso d’uso: bloccare determinati URL per utenti in determinate regioni. Quello che ho fatto è, in add_model_callback(:application_controller, :before_action), aggiungere alcune regole di corrispondenza in più con request.fullpath, ad esempio:
Trovo che questo geo-blocking a livello di URL funzioni se accedo all’URL digitandolo direttamente nella barra di navigazione del browser. Tuttavia, se navigo verso l’URL cliccandoci sopra dalla homepage di Discourse, questo non funziona. (ma dopo aver premuto F5 per aggiornare la pagina, viene bloccato).
Potresti darmi qualche consiglio per risolvere questo problema? Grazie.
Dovresti aggiungere del codice Ember che intercetti anche il router.
Tuttavia, penso che dovresti adottare un approccio diverso. Questo plugin non è stato creato per un filtraggio così specifico.
Probabilmente funzionerebbe molto meglio creare un plugin separato che abbia un meccanismo per aggiungere/rimuovere utenti ai gruppi in base alla loro geolocalizzazione, e quindi potresti sfruttare la sicurezza dei gruppi esistente per limitare o consentire l’accesso a parti specifiche del forum.
Questo è un plugin utile da avere, ma cosa potrebbe impedirne il corretto funzionamento? Innanzitutto, il plugin si è installato correttamente, questo non è il problema.
Ho impostato alcuni paesi bloccati e poi ho testato utilizzando una VPN per accedervi da quei paesi, ma non ho riscontrato alcun avviso di blocco.
Forse la VPN è il problema. Non tutte le VPN sono uguali?
Ok, grazie per quel suggerimento. Non stavo tenendo conto dei nodi di uscita e non ho idea di dove fossero i nodi di uscita nelle connessioni, l’output di “what’s my ip” era sufficiente per me, corrispondeva alla regione/paese che veniva testato per il blocco geografico.
Quindi, al contrario, ho bloccato la zona in cui mi trovo e non ho usato una VPN, ho usato un dispositivo diverso su cui posso testare sia la rete fissa che quella cellulare, e ancora non succede nulla, nessun blocco geografico si attiva come previsto quando ci si connette.
Comprendi che un proxy, una VPN o Tor saranno sempre in grado di aggirare questo tipo di meccanismi. Il plugin non è destinato a bloccarli. Il geo-blocking viene effettuato per motivi legali o per bloccare l’accesso a un visitatore occasionale.
Hai fatto questo?
1 Mi Piace
RGJ
(Richard - Communiteq)
Ha separato questo argomento il
12
Grazie per questo ottimo plugin.
Se il suo scopo è prevenire spam o paesi indesiderati che raggiungono pagine pubbliche, potrebbe anche prevenire scansioni di bot malevoli per un’istanza discourse privata?
Se la tua istanza è privata (cioè richiede l’accesso) allora i bot non possono accedervi comunque (a meno che non siano stati appositamente creati per creare un account ed effettuare l’accesso).
Ogni “knocker” aumenta il carico per il web server, ma Discourse è diverso dal mondo PHP. Un bot può facilmente causare un effetto di tipo DDoS a WordPress, e quindi il geo-blocking potrebbe essere una parte della strategia di difesa. Ma Discourse è molto più immune a questo, immagino.
Ma contro i bot di spam, il geo-blocking non aiuta se tutti i paesi devono essere consentiti.
Grazie per la tua risposta, sì, in effetti non otterranno alcun dato ma li vedo ancora nei log di nginx e genera ancora connessioni indesiderate, quindi ho installato questo semplice strumento per bloccare le connessioni al VPS da determinati paesi prima ancora che raggiungano l’istanza Docker di discourse GitHub - friendly-bits/geoip-shell: User-friendly and versatile geoblocker for Linux
Sì, è un ottimo strumento. Nota che questo causa un blocco “hard”, mentre il plugin ti fornisce un messaggio piacevole e configurabile che puoi mostrare agli utenti bloccati.