ProxyTracer: Bloqueador de VPN y proxy

:information_source: Resumen Detectar y bloquear el tráfico de VPN y proxy durante el registro de usuarios, el inicio de sesión y/o de forma global utilizando la API de ProxyTracer.
:hammer_and_wrench: Enlace al repositorio https://github.com/ProxyTracer/discourse-proxytracer
:open_book: Guía de instalación Cómo instalar complementos en Discourse

Este complemento utiliza la API de ProxyTracer para detectar y bloquear el tráfico de VPN y proxy en Discourse.

Características

  • Ofrece un control preciso sobre el bloqueo de usuarios de VPN y proxy durante el registro de nuevos usuarios, la autenticación de usuarios existentes o de forma global para todos los visitantes del sitio. Si te parece bien que los usuarios de VPN y proxy tengan acceso de lectura a tu foro, puedes ahorrar solicitudes a la API y activar la función solo para el registro y la autenticación de usuarios.
  • Utiliza almacenamiento en caché para guardar las evaluaciones recientes de direcciones IP, lo que reduce las solicitudes a la API y disminuye la latencia. Puedes controlar cuánto tiempo se recuerda una evaluación de dirección IP en la configuración.
  • En caso de tiempo de espera de la API o fallo de red, el complemento prioriza el acceso de los usuarios para evitar bloqueos generalizados. Este comportamiento se puede modificar mediante las opciones.
  • Soporte integrado para la inclusión en listas blancas de direcciones IP exactas y subredes CIDR.

Configuración

  1. Obtén una clave de API estándar en el Panel de control de ProxyTracer.
  2. Navega al panel de administración de Discourse: Admin → Complementos → ProxyTracer para encontrar la configuración de ProxyTracer.
  3. Introduce tu clave de API en el campo Clave de API de ProxyTracer.
  4. Activa los parámetros de protección activando Activado durante el registro, Activado durante el inicio de sesión y/o Activado para todos los visitantes.
  5. Añade las direcciones IP o rangos CIDR de confianza a la lista IPs en lista blanca.
  6. (Opcional) Ajusta el tiempo de espera de la API y los límites de duración de la caché Redis según los requisitos específicos de tráfico de tu servidor.
  7. (Opcional) Personaliza el mensaje de bloqueo que se muestra a los usuarios bloqueados. Por ejemplo, puedes añadir instrucciones para contactar con la administración del sitio en caso de que crean que el bloqueo no está justificado y que no están accediendo al sitio a través de un proxy o una VPN.

Configuración

Tabla de configuraciones y descripciones

Nombre Descripción
Tiempo de espera de la API (ms) Tiempo de espera para que la API responda antes de agotarse.
Duración de la caché (horas) Tiempo para recordar una dirección IP antes de volver a consultar la API.
Permitir acceso en caso de error Si la API falla o se agota el tiempo, permite que el usuario se registre/inicie sesión de todos modos para evitar bloquear a todos.
Activado durante el registro Bloquea proxies y VPN cuando un nuevo usuario intenta registrarse.
Activado durante el inicio de sesión Bloquea proxies y VPN cuando un usuario existente intenta iniciar sesión.
Activado para todos los visitantes Bloquea proxies y VPN para que no accedan ni visualicen ninguna página del foro. (Advertencia: Esto verifica a cada visitante y utiliza intensivamente tu cuota de API).
Mensaje de bloqueo El mensaje de error exacto que se muestra al usuario cuando es bloqueado.
IPs en lista blanca Direcciones IP o rangos CIDR (por ejemplo, 192.168.1.0/24) que están estrictamente permitidos para eludir el bloqueo.

Configuración de red: Cloudflare y proxies inversos

:warning: Para que ProxyTracer funcione correctamente, la aplicación de Discourse debe recibir la dirección IP real del cliente.

Para garantizar el reenvío correcto de la dirección IP, puedes seguir estas instrucciones detalladas.

Acceso de emergencia

Si te has bloqueado a ti mismo, puedes recuperar el acceso siguiendo estos pasos sencillos.


Si deseas probar el complemento, puedes registrarte en ProxyTracer y obtener créditos de API gratuitos para pruebas.

3 Me gusta

¿Se reinician los créditos cada mes?

¿Te refieres al crédito gratuito al registrarte? Si es así, solo es una recarga única.

¿Acaso esto no anula por completo el propósito del complemento? Cualquiera puede usar el modo seguro.

1 me gusta

(publicación eliminada por el autor)

Depende. Hay una configuración del sitio que permite desactivar el modo seguro, lo cual es útil para el componente de temas restringidos y otros componentes o complementos que los usuarios no deberían poder desactivar tan fácilmente (publicidad, puerta para invitados, etc.). Sin embargo, mientras no hayas iniciado sesión, eso también dificultaría que los administradores usen el modo seguro. Creo que aún pueden activarlo mediante inicio de sesión como administrador.

En cuanto a este complemento, dudo que el modo seguro ayude. El modo seguro solo desactiva la parte del lado del cliente de los complementos, y este complemento está escrito 100% en Ruby. Por lo tanto, no creo que desactivar las personalizaciones de JavaScript sea de mucha ayuda. Este hecho me hace un poco escéptico sobre el complemento, al igual que el hecho de que incluya un archivo about.json como si fuera un componente de tema. Pero al final, cada uno es responsable del código que instala en su foro.

1 me gusta

Tienes toda la razón en esto; puedo confirmarlo con mis propias pruebas en una instancia de Discourse recién creada. Procedí a actualizar la documentación con instrucciones que realmente funcionan, las cuales consisten en iniciar sesión en el servidor y desactivar manualmente el complemento:

cd /var/discourse
./launcher enter app
rails c
SiteSetting.proxytracer_enabled = false
exit
exit

Puedo confirmar que el modo seguro es inaccesible cuando la configuración “Habilitado para todos los visitantes” está activada y alguien intenta acceder al modo seguro mientras se conecta mediante una VPN/proxy.

Efectivamente, un about.json es redundante para los plugins estándar, así que procedí a eliminarlo del repositorio.

Gracias por todos tus comentarios, @Moin. Si tienes otras observaciones o sugerencias, siéntete libre de dejarlas aquí. El código es completamente de código abierto y cualquier contribución es bienvenida: GitHub - ProxyTracer/discourse-proxytracer.