Configura MAXMIND per le ricerche IP inverse

Cos’è MAXMIND e perché dovrei volerlo utilizzare?

Discourse utilizza MAXMIND per fornire informazioni geografiche per le ricerche IP inverse.

Senza il database di Maxmind, vedrai qualcosa di simile a questo:

Oppure potresti aver notato questo messaggio apparire mentre ricompili il tuo container:

Il download del database IP di MaxMind richiede un ID account e una chiave di licenza
Imposta DISCOURSE_MAXMIND_ACCOUNT_ID e DISCOURSE_MAXMIND_LICENSE_KEY. Consulta https://meta.discourse.org/t/configure-maxmind-for-reverse-ip-lookups/173941 per ulteriori dettagli.

Perché dovrei preoccuparmene?

Spesso è utile per i moderatori vedere da dove qualcuno sta effettuando l’accesso per determinare se la persona è chi (e dove) dice di essere, o per diagnosticare problemi sul tuo sito. (“Oh, vediamo frequentemente problemi con Special-ISP”.)

Inoltre, a partire da 2.2.0.beta4, Discourse utilizza queste informazioni per notificare agli amministratori se un accesso viene rilevato da una nuova posizione. Senza il database Maxmind, Discourse non può fornire questa notifica.

Cosa succede se non configuro un account MaxMind e non genero una chiave di licenza?

Non potrai eseguire ricerche inverse. Se i problemi sopra menzionati non ti preoccupano, è probabile che non accada nulla di grave se ignori semplicemente questo.

Come configuro un account MaxMind e ottengo un ID Account e una chiave di licenza?

Consulta la pagina di Maxmind Generate a license key per istruzioni aggiornate, ma devi:

  • Visitare la pagina Iscriviti a GeoLite2.
  • Generare una chiave di licenza nella scheda Gestisci chiavi di licenza nella barra di navigazione sinistra dopo aver effettuato l’accesso. Genera una nuova chiave e copia l’ID account e la chiave di licenza. Se la perdi, dovrai generarne una nuova.

Aggiungi quindi quella chiave alla sezione ENV del tuo file app.yml con una riga simile a questa:

  DISCOURSE_MAXMIND_ACCOUNT_ID: il-tuo-id-account-qui
  DISCOURSE_MAXMIND_LICENSE_KEY: la-tua-chiave-qui

Oppure tramite discourse-setup quando richiesto.

Note per gli utenti IPv6

L’installazione standard non supporta pienamente IPv6 immediatamente. Se hai un server configurato con IPv6 e hai bisogno di informazioni Maxmind per indirizzi IPv6, dovrai assicurarti che l’indirizzo IP effettivo dell’utente sia quello che raggiunge Discourse, normalmente utilizzando un proxy esterno che passa l’indirizzo IP remoto a Discourse. Questo richiede maggiori competenze di amministrazione di sistema rispetto all’installazione standard.

31 Mi Piace

@pfaffman, l’URL di ‘My License Keys’ contiene il tuo ID account MaxMind e quindi non funzionerà per nessun altro tranne te :wink:

3 Mi Piace

Funziona per me! :winking_face_with_tongue:

La cosa divertente, però, è che nessun altro si è lamentato per 3 anni! È una wiki, quindi puoi sistemarla. Cercherò di aggiornarla quando sarò al computer, se riuscirò a ricordarmene.

2 Mi Piace

Mostra quante persone leggono effettivamente pagine come queste :grin:

Ho modificato la pagina :nerd_face:

3 Mi Piace

Già!? E ci ho passato un bel po’ di tempo a crearlo. Non sono sicuro di come mi sia sfuggito che il link funzionasse solo per me, ma immagino che dover accedere sia stato sufficiente a distrarmi e forse a molte altre persone.

2 Mi Piace

Solo una domanda per curiosità, @evert, intendevi lasciare le parentesi quadre lì? Se sì, forse starebbe meglio come pulsante?

Esempio di pulsante

Manage License Keys

<kbd>Manage License Keys</kbd>
3 Mi Piace

Certo, perché no? :+1:t2:

2 Mi Piace

Per quanto ne so, sono pronto a partire

image

ma tutti gli utenti mostrano la posizione “sconosciuta”

Qualsiasi aiuto è apprezzato.

Devi rimuovere il carattere # davanti e ricostruire. Il carattere # rende l’intera riga un commento nel file YAML.

5 Mi Piace

Grazie, basta scrivere ed uscire o ricostruire anche?

Devi ricostruire. Altrimenti Discourse non vedrà le modifiche a app.yml.

4 Mi Piace

Grazie, fatto e funzionante :hugs:

2 Mi Piace

Probabilmente è superfluo dirlo per molti qui, ma qualcuno che utilizza una VPN potrebbe generare più avvisi di altri. È un incentivo per gli amministratori, ma non indica necessariamente un utente malintenzionato.

2 Mi Piace

Perfetto! grazie per questo tutorial.

1 Mi Piace

Mi scusi,
Quando Discourse esegue una ricerca IP (reverse-IP) per il pannello di amministrazione, si basa su un database GeoIP offline o interroga un’API esterna ogni volta?

grazie!!

1 Mi Piace

Per contesto, la mia preferenza è gestire le ricerche IP offline puntando Discourse a un file locale GeoLite2-City.mmdb, piuttosto che chiamare un’API esterna.

Ancora nessun supporto per IPv6? Forse è ora di reindirizzare questo traffico a v4 ):

Beh, sono bloccato. Penso di essere configurato correttamente, ma sto ricevendo un errore 401 per i download del database MaxMind.

Sono su un’installazione standard, self-hosted e aggiornata.

Ho creato un account su MaxMind e aggiunto una nuova chiave di licenza.

Ho modificato la sezione ENV di app.yml come segue:

  ## La chiave di geolocalizzazione IP di MaxMind per la ricerca dell'indirizzo IP
  ## vedi https://meta.discourse.org/t/-/137387/23 per dettagli
  DISCOURSE_MAXMIND_ACCOUNT_ID: [il mio ID account]
  DISCOURSE_MAXMIND_LICENSE_KEY: [la mia chiave di licenza]

…poi ho eseguito ./launcher rebuild app

Durante il rebuild, sono stati registrati questi errori “401 Unauthorized”:

Download del database MaxMind GeoLite2-City fallito. : OpenURI::HTTPError : 401 Error
Download del database MaxMind GeoLite2-ASN fallito. : OpenURI::HTTPError : 401 Error

(…e ovviamente nessun file del database è arrivato nella mia /var/www/discourse/vendor/data)

Secondo questa suggerimento ho usato un comando trovato sul Portale sviluppatori di MaxMind — con le stesse credenziali — per scaricare direttamente un database:

curl -O -J -L -u [my account ID]:[my license key] \
'https://download.maxmind.com/geoip/databases/GeoLite2-City/download?suffix=tar.gz'

…che ha funzionato senza problemi.

Cosa potrei aver trascurato che causa un 401 quando mi connetto da Discourse?