Plugin di Geo Blocking

Riepilogo: Plugin Geo Blocking per Discourse

:link: GitHub: GitHub - communiteq/discourse-geo-blocking
:arrow_right: Installazione: Segui la guida all’installazione dei plugin.
:moneybag: Cliente: Questo plugin è stato sponsorizzato da Sketchfab.

FunzionalitĂ 

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).

  • Se abiliti geo blocking detailed reason, il messaggio di errore conterrĂ  il paese/regione o la rete che ha causato il blocco dell’utente.

rispetto a

  • Per testare il plugin puoi controllare geo blocking log blocked e/o geo blocking log allowed e ispezionare /logs sul tuo forum.

Per un elenco completo dei paesi e delle regioni supportati, consulta list_of_countries_and_regions.txt.

Attenzione e Avvertenze

Se i visitatori anonimi vengono bloccati, potrebbero comunque visualizzare una versione memorizzata nella cache della home page per circa un minuto.

La pagina di errore non contiene argomenti “Popolari” e “Recenti” perché ciò potrebbe divulgare contenuti a un utente bloccato.

25 Mi Piace

Grazie per la rapida consegna di questo progetto, Richard!

4 Mi Piace

Grazie. Molto utile

1 Mi Piace

Ci proverò subito. Come ho potuto perdermelo :woozy_face:

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.

Sì, il plugin è ancora mantenuto e funzionante.

2 Mi Piace

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:

return unless request.fullpath.start_with?(*SiteSetting.topic_geo_blocking_exact_paths.split('|'))

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.

1 Mi Piace

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.

3 Mi Piace

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?

Questo plugin non è previsto che blocchi le VPN.

Tranne che, ovviamente, bloccherĂ  i nodi di uscita VPN in aree geografiche bloccate.

1 Mi Piace

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

5 post sono stati spostati in un nuovo argomento: Problemi con MaxMindDB

Sembra che venga utilizzata la vecchia icona fa-user invece di user. Questo causa molti errori.

2 Mi Piace

Corretto, grazie per la segnalazione!

4 Mi Piace

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?

1 Mi Piace

Un po’ entrambe le cose, ma dipende. Ufficialmente vieta i paesi indesiderati, ma non fa distinzione tra probabili umani e bot.

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).

E abbiamo giĂ  bot che creano account :man_shrugging:

Gli scraper sono una cosa diversa, perché rubano contenuti. I bot di spam che sono un problema nelle istanze pubbliche sono un problema totalmente simile per i forum privati. Ecco perché abbiamo l’IA che scansiona i contenuti.

Per me, il geo-blocking elimina una buona parte di chiamate e accessi indesiderati. Posso usarlo perché ho un forum interamente finlandese [1], ma uno globale non può usarlo, ovviamente.

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.


  1. il traduttore potrebbe cambiare questa situazione, se un giorno sarà pronto per la produzione ↩︎

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

1 Mi Piace

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.

2 Mi Piace