Flarum
A integração oficial do ProxyTracer para o Flarum. Esta extensão traz inteligência de IP de nível corporativo para sua comunidade, detectando automaticamente VPNs, proxies, datacenters e nós Tor conhecidos, e oferecendo a opção de impedi-los de se cadastrar, fazer login ou até mesmo de visualizar completamente seu fórum Flarum.
O código-fonte completo pode ser encontrado no Github e no Packagist.
Recursos
- Controle granular que permite aos administradores aplicar a validação de IP durante o cadastro de novos usuários, autenticação de usuários existentes ou globalmente para todos os visitantes do site.
- Cache integrado que utiliza a API nativa Laravel Cache do Flarum para armazenar avaliações recentes de endereços IP, reduzindo drasticamente as chamadas de API externa e garantindo zero latência.
- Em caso de timeout da API ou falha de rede, a extensão prioriza o acesso do usuário (fail-open) para evitar bloqueios generalizados. Este comportamento pode ser configurado nas opções.
-
Suporte nativo para lista de permissões (whitelist) de IPs exatos e sub-redes CIDR (ex.:
192.168.1.0/24).
Instalação
-
Acesse seu servidor via SSH e navegue até o diretório raiz do Flarum (onde o seu
composer.jsonestá localizado):cd /var/www/flarum -
Instale a extensão via Composer:
composer require proxytracer/flarum-proxytracer -
Limpe o cache do Flarum para compilar os novos assets do frontend:
php flarum cache:clear
Configuração:
- Obtenha uma chave de API padrão no Painel do ProxyTracer.
- Navegue até o painel de administração do seu Flarum: Admin → Features → ProxyTracer para abrir a janela modal de configurações.
-
Insira sua chave de API no campo
API Key. -
Ative os parâmetros de proteção marcando
Block Signups,Block Loginse/ouBlock All Site Access. -
Adicione quaisquer IPs ou faixas CIDR confiáveis à
IP Whitelist(um por linha). - (Opcional) Ajuste os limites de Timeout da API e Expiração de Cache para atender às necessidades específicas de tráfego do seu servidor.
- (Opcional) Personalize a Mensagem de Bloqueio que aparece para usuários bloqueados. Por exemplo, você pode adicionar instruções para entrar em contato com a administração do site caso eles acreditem que o bloqueio é injustificado e que não estão acessando o site por meio de um proxy ou VPN.

Configuração de Rede: Cloudflare e Proxies Reversos
Siga as diretrizes de configuração abaixo que correspondem à arquitetura do seu servidor para garantir o encaminhamento correto de IP.
Integração Direta com Cloudflare (Instalação Padrão)
Se o seu servidor Flarum se conecta diretamente à internet e utiliza a Cloudflare exclusivamente para DNS e proxy de borda, você pode usar o recurso integrado de desvio da Cloudflare na extensão.
Dentro das configurações do ProxyTracer no Flarum, basta ativar a opção Extract IPs from Cloudflare headers.
O ProxyTracer extrairá automaticamente o IP real do cliente a partir do cabeçalho proprietário CF-Connecting-IP da Cloudflare. Nota: Ative esta configuração apenas se o seu servidor estiver diretamente conectado à Cloudflare. Ativar isso em uma configuração sem Cloudflare pode permitir que usuários mal-intencionados burlem restrições falsificando seus cabeçalhos de IP.
Arquitetura de Proxy em Múltiplas Camadas (Cloudflare + Proxy Reverso Local)
Isso se aplica se a sua instância do Flarum for roteada por meio de um painel de gerenciamento de servidor local ou proxy reverso (ex.: Nginx Proxy Manager, CloudPanel, Traefik, Plesk) posicionado atrás da Cloudflare. Em uma arquitetura de proxy reverso em múltiplas camadas (ou "duplo"), o simples botão não é suficiente porque o tráfego é entregue ao Flarum pela sua interface de rede local, e não diretamente pela Cloudflare.
Você deve configurar seu proxy reverso local para extrair o IP real do cliente a partir do cabeçalho CF-Connecting-IP, mas apenas para tráfego originado de endereços IP confiáveis da Cloudflare. Repassar esse cabeçalho de forma cega sem verificar a fonte permite que usuários mal-intencionados burlem limites de taxa e banimentos falsificando seu endereço IP.
# IPs IPv4 da Cloudflare, consulte [https://www.cloudflare.com/ips/](https://www.cloudflare.com/ips/)
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;
# IPs IPv6 da Cloudflare
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;
real_ip_header CF-Connecting-IP;Em seguida, localize sua diretiva location /. Devido à configuração acima, o Nginx agora resolverá com segurança $remote_addr para o IP real do cliente somente se a requisição tiver realmente passado pela Cloudflare. Modifique os cabeçalhos de encaminhamento de IP da seguinte forma:
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
...
}Salve a configuração e recarregue seu serviço Nginx (systemctl reload nginx).
Acesso de Emergência
cd /var/www/flarum
php flarum extension:disable proxytracer-proxytracer
php flarum cache:clearsettings, localize a chave proxytracer.block_all, altere seu valor para 0 e execute php flarum cache:clear.Licença
Este software é licenciado sob a GNU Affero General Public License v3.0 (AGPLv3). Consulte o arquivo LICENSE para obter todos os detalhes.