ProxyTracer: Bloqueador de VPN e Proxy

:information_source: Resumo Detecte e bloqueie tráfego de VPN e proxy durante o registro de usuários, login e/ou globalmente usando a API ProxyTracer.
:hammer_and_wrench: Link do Repositório https://github.com/ProxyTracer/discourse-proxytracer
:open_book: Guia de Instalação Como instalar plugins no Discourse

Este plugin utiliza a API ProxyTracer para detectar e bloquear tráfego de VPN e proxy no Discourse.

Recursos

  • Oferece controle preciso sobre o bloqueio de usuários de VPN e Proxy durante o registro de novos usuários, autenticação de usuários existentes ou globalmente para todos os visitantes do site. Se você permitir que usuários de VPN e Proxy tenham acesso de leitura ao seu fórum, pode economizar solicitações à API e habilitar o bloqueio apenas para registro e autenticação de usuários.
  • Utiliza cache para armazenar avaliações recentes de endereços IP, reduzindo solicitações à API e diminuindo a latência. Você pode controlar por quanto tempo uma avaliação de IP deve ser mantida nas configurações.
  • Em caso de tempo limite da API ou falha de rede, o plugin prioriza o acesso do usuário para evitar bloqueios em larga escala. Esse comportamento pode ser alterado nas opções.
  • Suporte nativo para lista branca de IPs exatos e sub-redes CIDR.

Configuração

  1. Obtenha uma chave de API padrão no Painel do ProxyTracer.
  2. Acesse o painel de administração do Discourse: Admin → Plugins → ProxyTracer para encontrar as configurações do ProxyTracer.
  3. Insira sua chave de API no campo ProxyTracer API Key.
  4. Ative os parâmetros de proteção alternando Enabled during Signup, Enabled during Login e/ou Enabled for All Visitors.
  5. Adicione IPs confiáveis ou faixas CIDR à lista Whitelisted IPs.
  6. (Opcional) Ajuste o tempo limite da API e os limites de duração do cache Redis conforme as necessidades específicas de tráfego do seu servidor.
  7. (Opcional) Personalize a mensagem de bloqueio exibida aos usuários bloqueados. Por exemplo, você pode incluir instruções para entrar em contato com a administração do site caso acreditem que o bloqueio não é justificado e que não estão acessando o site por meio de proxy ou VPN.

Configurações

Abaixo está uma tabela com as configurações e suas descrições:

Nome Descrição
API Timeout (ms) Tempo de espera para a API responder antes de ocorrer um tempo limite.
Cache Duration (hours) Tempo de retenção de um endereço IP antes de verificar a API novamente.
Fail Open on Error Se a API falhar ou ocorrer tempo limite, permita que o usuário se registre ou faça login para evitar bloquear todos os usuários.
Enabled during Signup Bloqueie proxies e VPNs quando um novo usuário tentar se registrar.
Enabled during Login Bloqueie proxies e VPNs quando um usuário existente tentar fazer login.
Enabled for All Visitors Bloqueie proxies e VPNs de acessar ou visualizar qualquer página do fórum. (Aviso: Isso verifica todos os visitantes e utiliza intensamente sua cota de API).
Block Message A mensagem de erro exata exibida ao usuário quando ele é bloqueado.
Whitelisted IPs Endereços IP ou faixas CIDR (por exemplo, 192.168.1.0/24) que têm permissão estrita para ignorar o bloqueio.

Configuração de Rede: Cloudflare e Proxies Reversos

:warning: Para que o ProxyTracer funcione corretamente, o aplicativo Discourse deve receber o endereço IP real do cliente.

Para garantir o encaminhamento correto do endereço IP, siga estas instruções detalhadas.

Acesso de Emergência

Se você ficou bloqueado, pode recuperar o acesso seguindo estes passos simples.


Se quiser testar, você pode se cadastrar no ProxyTracer e obter créditos gratuitos de API para testes.

3 curtidas

os créditos reiniciam no próximo mês?

Você está perguntando sobre o crédito gratuito durante o cadastro? Se for esse o caso, é apenas um recarga única.

Isso não anula todo o propósito do plugin? Qualquer pessoa pode usar o modo seguro.

1 curtida

(postagem excluída pelo autor)

Depende. Existe uma configuração do site que permite desativar o modo seguro, o que é útil para o componente de tópico restrito e outros componentes/plugins que os usuários não deveriam poder desativar facilmente (publicidade, gate para convidados, …). Mas, enquanto você estiver desconectado, isso também tornaria mais difícil para os administradores usar o modo seguro. Acredito que eles ainda possam ativá-lo usando admin-login.

Para este plugin, duvido que o modo seguro ajude. O modo seguro desativa apenas a parte front-end dos plugins, e este plugin é 100% Ruby. Portanto, não acho que desativar customizações de JavaScript seja de alguma ajuda. Esse fato me deixa um pouco cético em relação ao plugin, assim como o fato de ele incluir um arquivo about.json como se fosse um componente de tema. Mas, no final, cada um é responsável pelo código que instala em seu fórum.

1 curtida

Você está absolutamente correto sobre isso; posso confirmar isso através dos meus próprios testes com uma instância do Discourse recém-criada. Procedi e atualizei a documentação com instruções que realmente funcionam, que consistem em fazer login no servidor e desativar manualmente o addon:

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

Posso confirmar que o modo seguro é inacessível quando a configuração “Habilitado para todos os visitantes” está ativada e alguém tenta acessar o modo seguro enquanto se conecta usando uma VPN/proxy.

De fato, um about.json é redundante para plugins padrão; procedi e removi-o do repositório.

Obrigado por todo o seu feedback, @Moin. Se tiver mais comentários ou sugestões, sinta-se à vontade para deixá-los aqui. O código é totalmente de código aberto e qualquer contribuição é bem-vinda: GitHub - ProxyTracer/discourse-proxytracer.