Configurar MAXMIND para búsquedas inversas de IP

¿Qué es MAXMIND y por qué querría usarlo?

Discourse utiliza MAXMIND para proporcionar información geográfica para búsquedas inversas de IP.

Sin la base de datos de Maxmind, verá algo como esto:

O quizás haya notado este mensaje aparecer brevemente al reconstruir su contenedor:

La descarga de la base de datos de IP de MaxMind requiere un ID de cuenta y una clave de licencia.
Por favor, configure DISCOURSE_MAXMIND_ACCOUNT_ID y DISCOURSE_MAXMIND_LICENSE_KEY. Consulte https://meta.discourse.org/t/configure-maxmind-for-reverse-ip-lookups/173941 para más detalles.

¿Por qué debería importarme?

A menudo es útil para los moderadores ver desde dónde se está iniciando sesión una persona para determinar si es quien (y dónde) dice ser, o para diagnosticar problemas en su sitio. («Oh, frecuentemente vemos problemas con Special-ISP».)

Además, desde 2.2.0.beta4, Discourse también utiliza esta información para notificar a los administradores si se detecta un inicio de sesión desde una ubicación nueva. Sin la base de datos de Maxmind, Discourse no puede proporcionar esta notificación.

¿Qué pasa si no configuro una cuenta de MaxMind y genero una clave de licencia?

No podrá realizar búsquedas inversas. Si los problemas mencionados anteriormente no le preocupan, es muy probable que no ocurra nada malo si simplemente ignora esto.

¿Cómo configuro una cuenta de MaxMind y obtengo un ID de cuenta y una clave de licencia?

Consulte la página de Maxmind Generate a license key para obtener instrucciones actualizadas, pero necesita:

  • Visitar la página de Registro de GeoLite2.
  • Generar una clave de licencia en la pestaña Administrar claves de licencia en la barra de navegación izquierda una vez que haya iniciado sesión. Genere una nueva clave y copie el ID de cuenta y la clave de licencia. Si la pierde, deberá generar una nueva.

Luego, agregue esa clave a la sección ENV de su app.yml con una línea como esta:

  DISCOURSE_MAXMIND_ACCOUNT_ID: tu-id-de-cuenta-aquí
  DISCOURSE_MAXMIND_LICENSE_KEY: tu-clave-aquí

O mediante discourse-setup cuando se le solicite.

Notas para usuarios de IPv6

La instalación estándar no admite completamente IPv6 de forma predeterminada. Si tiene un servidor configurado con IPv6 y necesita información de Maxmind para direcciones IPv6, deberá asegurarse de que la dirección IP real del usuario sea la que llega a Discourse, normalmente mediante el uso de un proxy externo que pase la dirección IP remota a Discourse. Esto requiere más conocimientos de administración de sistemas que la instalación estándar.

31 Me gusta

@pfaffman, la URL de ‘Mis claves de licencia’ contiene tu ID de cuenta en MaxMind y, por lo tanto, no funcionará para nadie más que para ti :wink:

3 Me gusta

¡Me funciona! :winking_face_with_tongue:

Lo curioso es que ¡nadie más se ha quejado en 3 años! Es una wiki, así que puedes arreglarlo. Intentaré actualizar cuando llegue a un ordenador si consigo recordarlo.

2 Me gusta

Muestra cuántas personas leen realmente páginas como esta :grin:

He editado la página :nerd_face:

3 Me gusta

¿Verdad? Y pasé bastante tiempo creándolo. No estoy seguro de cómo no me di cuenta de que el enlace solo funcionaba para mí, pero supongo que tener que iniciar sesión fue suficiente para distraerme a mí y, tal vez, a muchas otras personas.

2 Me gusta

Solo una pregunta de curiosidad @evert, ¿querías dejar los corchetes ahí? Si es así, ¿quizás quedaría mejor como un botón?

Ejemplo de botón

Manage License Keys

<kbd>Manage License Keys</kbd>
3 Me gusta

Claro, ¿por qué no? :+1:t2:

2 Me gusta

Hasta donde puedo decir, estoy listo para empezar

image

pero todos los usuarios muestran la ubicación “desconocida”

Cualquier ayuda es apreciada.

Necesitas eliminar el carácter # del principio y reconstruir. El carácter # convierte toda la línea en un comentario en el archivo YAML.

5 Me gusta

Gracias, ¿simplemente escribir y salir o reconstruir también?

Tienes que reconstruir. De lo contrario, Discourse no verá los cambios en app.yml.

4 Me gusta

Gracias, hecho y funcionando :hugs:

2 Me gusta

Probablemente no haga falta decirlo para la mayoría aquí, pero alguien que use una VPN puede generar más alertas que otros. Es un empujón para los administradores, pero no indica necesariamente un usuario malintencionado.

2 Me gusta

¡Perfecto! Gracias por este tutorial.

1 me gusta

Disculpe,
Cuando Discourse realiza una búsqueda de IP (IP inversa) para el panel de administración, ¿se basa en una base de datos GeoIP sin conexión o consulta una API externa cada vez?

¡¡gracias!!

1 me gusta

Para contextualizar, mi preferencia es manejar las búsquedas de IP sin conexión apuntando Discourse a un archivo local GeoLite2-City.mmdb, en lugar de llamar a una API externa.

¿Todavía no hay soporte para IPv6? Quizás sea hora de redirigir este tráfico a v4 ):

Bueno, estoy atascado. Creo que estoy configurado correctamente, pero estoy recibiendo un error 401 al descargar las bases de datos de MaxMind.

Estoy en una instalación estándar, autoalojada y actualizada.

Creé una cuenta en MaxMind y agregué una nueva clave de licencia.

Edité la sección ENV de app.yml para:

  ## La clave de geolocalización IP de MaxMind para la búsqueda de direcciones IP
  ## ver https://meta.discourse.org/t/-/137387/23 para más detalles
  DISCOURSE_MAXMIND_ACCOUNT_ID: [mi ID de cuenta]
  DISCOURSE_MAXMIND_LICENSE_KEY: [mi clave de licencia]

…luego ejecuté ./launcher rebuild app

Durante la reconstrucción, se registraron estos errores “401 No autorizado”:

La descarga de la base de datos MaxMind GeoLite2-City falló. : OpenURI::HTTPError : Error 401
La descarga de la base de datos MaxMind GeoLite2-ASN falló. : OpenURI::HTTPError : Error 401

(… y por supuesto, no se descargaron archivos de base de datos a mi /var/www/discourse/vendor/data)

Según esta sugerencia, utilicé un comando encontrado en el Portal de Desarrolladores de MaxMind — con las mismas credenciales — para descargar directamente una base de datos:

curl -O -J -L -u [mi ID de cuenta]:[mi clave de licencia] \
'https://download.maxmind.com/geoip/databases/GeoLite2-City/download?suffix=tar.gz'

…que funcionó sin problemas.

¿Qué podría estar faltando para provocar un 401 al conectarse desde Discourse?