Configurer MAXMIND pour les recherches inversées d'IP

Qu’est-ce que MAXMIND et pourquoi voudrais-je l’utiliser ?

Discourse utilise MAXMIND pour fournir des informations géographiques lors des recherches inversées d’adresses IP.

Sans la base de données de MaxMind, vous verrez quelque chose comme ceci :

Ou peut-être avez-vous remarqué ce message apparaître lors de la reconstruction de votre conteneur :

Le téléchargement de la base de données IP de MaxMind nécessite un identifiant de compte et une clé de licence.
Veuillez définir DISCOURSE_MAXMIND_ACCOUNT_ID et DISCOURSE_MAXMIND_LICENSE_KEY. Consultez https://meta.discourse.org/t/configure-maxmind-for-reverse-ip-lookups/173941 pour plus de détails.

Pourquoi m’en soucier ?

Il est souvent utile pour les modérateurs de voir d’où une personne se connecte afin de déterminer si elle est bien celle (et là) qu’elle prétend être, ou pour diagnostiquer des problèmes sur votre site (« Oh, nous rencontrons fréquemment des problèmes avec Special-ISP »).

De plus, depuis la version 2.2.0.beta4, Discourse utilise également ces informations pour notifier les administrateurs lorsqu’une connexion est détectée depuis un nouvel emplacement. Sans la base de données MaxMind, Discourse ne peut pas fournir cette notification.

Que se passe-t-il si je ne configure pas de compte MaxMind et ne génère pas de clé de licence ?

Vous ne pourrez pas effectuer de recherches inversées. Si les problèmes mentionnés ci-dessus ne vous concernent pas, il est fort probable qu’aucun problème ne survienne si vous ignorez simplement cela.

Comment configurer un compte MaxMind et obtenir un identifiant de compte et une clé de licence ?

Consultez la page de MaxMind Generate a license key pour des instructions à jour, mais vous devez :

  • Visiter la page Inscription GeoLite2.
  • Générer une clé de licence sous l’onglet Gérer les clés de licence dans la barre de navigation de gauche une fois connecté. Générez une nouvelle clé et copiez l’identifiant de compte ainsi que la clé de licence. Si vous la perdez, vous devrez en générer une nouvelle.

Vous devez ensuite ajouter cette clé dans la section ENV de votre fichier app.yml avec une ligne comme celle-ci :

  DISCOURSE_MAXMIND_ACCOUNT_ID: votre-identifiant-de-compte-ici
  DISCOURSE_MAXMIND_LICENSE_KEY: votre-clé-ici

Ou via discourse-setup lorsque vous y êtes invité.

Notes pour les utilisateurs IPv6

L’installation standard ne prend pas entièrement en charge IPv6 dès la sortie. Si vous disposez d’un serveur configuré avec IPv6 et que vous avez besoin d’informations MaxMind pour les adresses IPv6, vous devez vous assurer que l’adresse IP réelle de l’utilisateur est bien celle qui atteint Discourse, généralement en utilisant un proxy externe qui transmet l’adresse IP distante à Discourse. Cela nécessite plus d’expertise en administration système que l’installation standard.

31 « J'aime »

@pfaffman, l’URL de « Mes clés de licence » contient votre ID de compte chez MaxMind et ne fonctionnera donc que pour vous :wink:

3 « J'aime »

Ça marche pour moi ! :winking_face_with_tongue:

Ce qui est drôle, cependant, c’est que personne d’autre ne s’est plaint depuis 3 ans ! C’est un wiki, donc vous pouvez le corriger. J’essaierai de mettre à jour quand j’aurai accès à un ordinateur si je m’en souviens.

2 « J'aime »

Montre combien de personnes lisent réellement des pages comme celles-ci :grin:

J’ai modifié la page :nerd_face:

3 « J'aime »

C’est clair ! Et j’ai passé pas mal de temps à le créer. Je ne sais pas comment j’ai pu manquer le fait que le lien ne fonctionnait que pour moi, mais je suppose que le fait de devoir se connecter a suffi à me distraire, ainsi que peut-être beaucoup d’autres personnes.

2 « J'aime »

Juste une question par curiosité @evert, aviez-vous l’intention de laisser les crochets là ? Si oui, cela aurait-il peut-être l’air mieux sous forme de bouton ?

Exemple de bouton

Manage License Keys

<kbd>Manage License Keys</kbd>
3 « J'aime »

Bien sûr, pourquoi pas ? :+1:t2:

2 « J'aime »

D’après ce que je peux voir, tout va bien

image

mais tous les utilisateurs affichent la localisation « unknown »

Toute aide est appréciée.

Vous devez supprimer le caractère # devant et reconstruire. Le caractère # fait de toute la ligne un commentaire dans le fichier YAML.

5 « J'aime »

Merci, il suffit d’écrire et de quitter ou de reconstruire aussi ?

Vous devez reconstruire. Sinon, Discourse ne verra pas les modifications de app.yml.

4 « J'aime »

Merci, c’est fait et ça fonctionne :hugs:

2 « J'aime »

Il va sans dire pour la plupart d’entre vous, mais une personne utilisant un VPN peut générer plus d’alertes que d’autres. C’est une incitation pour les administrateurs, mais cela n’indique pas nécessairement un utilisateur malveillant.

2 « J'aime »

Parfait ! Merci pour ce tutoriel.

1 « J'aime »

Excusez-moi,
Lorsque Discourse effectue une recherche IP (IP inversée) pour le panneau d’administration, s’appuie-t-il sur une base de données GeoIP hors ligne ou interroge-t-il une API externe à chaque fois ?

Merci !!

1 « J'aime »

Pour situer le contexte, je préfère gérer les recherches d’IP hors ligne en pointant Discourse vers un fichier GeoLite2-City.mmdb local, plutôt que d’appeler une API externe.

Pas encore de support pour l’IPv6 ? Il serait peut-être temps de rediriger ce trafic vers l’IPv4 ):

Eh bien, je suis bloqué. Je pense que j’ai tout configuré correctement, mais je reçois une erreur 401 pour les téléchargements de la base de données MaxMind.

Je suis sur une installation standard, auto-hébergée et à jour.
J’ai créé un compte chez MaxMind et ajouté une nouvelle clé de licence.

J’ai modifié la section ENV de app.yml comme suit :

  ## La clé d'adresse IP de géolocalisation MaxMind pour la recherche d'adresse IP
  ## voir https://meta.discourse.org/t/-/137387/23 pour plus de détails
  DISCOURSE_MAXMIND_ACCOUNT_ID: [mon ID de compte]
  DISCOURSE_MAXMIND_LICENSE_KEY: [ma clé de licence]

…puis j’ai exécuté ./launcher rebuild app.

Lors de la reconstruction, ces erreurs “401 Unauthorized” ont été enregistrées :

Téléchargement de la base de données MaxMind GeoLite2-City échoué. : OpenURI::HTTPError : Erreur 401
Téléchargement de la base de données MaxMind GeoLite2-ASN échoué. : OpenURI::HTTPError : Erreur 401

(… et bien sûr, aucun fichier de base de données n’est arrivé dans mon répertoire /var/www/discourse/vendor/data)

Selon cette suggestion, j’ai utilisé une commande trouvée sur le portail développeur MaxMind — avec les mêmes identifiants — pour télécharger directement une base de données :

curl -O -J -L -u [mon ID de compte]:[ma clé de licence] \
'https://download.maxmind.com/geoip/databases/GeoLite2-City/download?suffix=tar.gz'

…ce qui a fonctionné sans problème.

Qu’est-ce que je pourrais manquer pour provoquer une erreur 401 lors de la connexion depuis Discourse ?