VpnHood!

Coloque seu servidor atrás de um proxy reverso

Uma rede que bloqueia o IP do seu servidor não pode deter aplicativos que não se conectam diretamente a ele. Atrás de um proxy reverso como o Cloudflare, os aplicativos se conectam ao proxy, e ele repassa a conexão para o seu servidor.

Como funciona

Seu domínio direciona para o proxy em vez do seu servidor. Os aplicativos consultam o domínio e conectam-se ao proxy, que descriptografa o tráfego — como faz em qualquer site — e criptografa novamente em direção ao seu servidor. O tráfego usa WebSocket, suportado pelo Cloudflare. Outros proxies reversos também funcionam, desde que suportem WebSocket e alcancem seu servidor via TLS.

Os aplicativos chegam ao seu servidor através do proxy Os aplicativos dos usuários consultam o seu domínio e se conectam ao proxy reverso, como o Cloudflare, que repassa a conexão para o seu servidor. O acesso direto ao IP do servidor fica bloqueado, mas os aplicativos contornam isso. Proxy reverso como o Cloudflare Seu domínio app.example.com 203.0.113.10 bloqueado Seus usuários VpnHood! CLIENT Seu servidor VpnHood! SERVER O proxy ajuda os aplicativos a contornar o bloqueio
Os aplicativos chegam ao seu servidor através do proxy Os aplicativos dos usuários consultam o seu domínio e se conectam ao proxy reverso, como o Cloudflare, que repassa a conexão para o seu servidor. O acesso direto ao IP do servidor fica bloqueado, mas os aplicativos contornam isso. Proxy reverso como o Cloudflare Seu domínio app.example.com 203.0.113.10 bloqueado Seus usuários VpnHood! CLIENT Seu servidor VpnHood! SERVER O proxy ajuda os aplicativos a contornar o bloqueio

Os aplicativos só consultam o domínio se a chave o listar como um nome confiável, o que exige um certificado emitido por uma autoridade certificadora.

A chave também pode incluir o endereço direto do seu servidor. Assim, os aplicativos conectam de qualquer forma: o proxy garante o acesso se o IP for bloqueado, mas qualquer pessoa com a chave pode visualizar o endereço. Uma chave sem o endereço direto força todo o tráfego pelo proxy.

O que você deve saber

  • Bloqueio: Uma rede ainda pode bloquear os endereços do proxy reverso ou o seu domínio. Porém, os endereços da Cloudflare atendem a muitos outros sites, portanto bloqueá-los tem um custo alto.
  • DNS: Os aplicativos consultam seu domínio pelo DNS da rede antes de conectar. Se a rede bloquear ou falsificar a resposta, os aplicativos recorrem aos endereços da chave. Por isso, uma chave que contenha apenas o domínio não conseguirá conectar.
  • Privacidade: O proxy reverso enxerga o que passa pelo túnel, exatamente como o seu servidor: para onde seus usuários se conectam e tudo o que enviarem sem criptografia. O tráfego HTTPS deles permanece criptografado. Use um proxy reverso de confiança.
  • Apenas TCP: Seu servidor não disponibiliza portas UDP e QUIC para aplicativos que chegam pelo proxy.
  • Termos de uso: Verifique se os termos do seu provedor permitem tráfego de VPN. Grupos pequenos de usuários, com cerca de 50 ou menos, normalmente não enfrentam problemas.

Antes de começar

  • Um domínio ou subdomínio, com certificado de uma autoridade certificadora no seu servidor: o guia Usar um nome de domínio e um certificado confiável mostra como fazer. Configure isso primeiro, enquanto o registro do domínio ainda aponta diretamente para o servidor.
  • Um único servidor associado ao domínio. Registros que apontam para dois servidores podem distribuir conexões da mesma sessão entre eles, interrompendo a sessão.
  • O servidor escutando na porta TCP 443 ou em outra porta repassada pelo proxy. A Cloudflare encaminha HTTPS apenas em 443, 2053, 2083, 2087, 2096, 8443.

Ativar o proxy

  1. Na Cloudflare, acerte os registros DNS do seu domínio: marque como Proxied o registro que aponta para seu servidor, bem como o registro AAAA, se houver.
  2. Em SSL/TLS, defina o modo de criptografia como Full (strict). Assim, a Cloudflare acessa seu servidor via TLS e valida o certificado. No modo Flexible, ela usaria HTTP comum, que não é aceito pelo servidor.

O VpnHood! MANAGER renova seus certificados via HTTP comum na porta TCP 80, por meio do domínio, e a Cloudflare repassa essas requisições ao servidor. Em um servidor gerenciado, deixe Always Use HTTPS desativado: ativá-lo redirecionaria a requisição para HTTPS, impedindo a renovação.

Em um servidor gerenciado

Verifique o certificado do farm para o domínio: em Signature deve constar CA Signed, e Visibility deve estar como PublicInToken. Assim, as chaves incluirão o domínio para consulta pelos aplicativos.

Para direcionar todos os aplicativos pelo proxy, remova os endereços diretos do servidor nas chaves, em Access Points do servidor:

  1. Desative Automatic Configuration.
  2. Edite cada endereço e altere Mode para Private.
  3. Mantenha Listen em Yes para que o servidor continue escutando e aceitando conexões do proxy.
Pontos de Acesso de um servidor no VpnHood! MANAGER configurados para proxy reverso: Configuração Automática desativada (1), e cada endereço com Modo Privado (2) e Escutar Sim (3)
Ambos os endereços do servidor estão fora das chaves, e o servidor continua escutando neles.

O MANAGER permite chaves sem endereço apenas enquanto o certificado estiver como CA Signed. O guia Defina os endereços IP do seu servidor explica cada configuração.

Mantendo em PublicInToken, os endereços continuam nas chaves, e os aplicativos usam tanto eles quanto o proxy. Assim, o proxy mantém seus usuários conectados mesmo se um endereço for bloqueado.

Os aplicativos com chaves antigas recebem a nova na próxima conexão, pois a opção Push token to clients vem ativada por padrão.

O domínio aponta para um único servidor; portanto, em um cluster com vários servidores, todos os aplicativos que passam pelo proxy chegam ao mesmo destino.

Em um servidor independente

Confirme se o servidor usa o certificado do domínio, com IsValidHostName definido como true: o guia Use um nome de domínio e um certificado confiável mostra como fazer. As chaves criadas a partir de então incluirão o domínio, e os aplicativos farão a busca.

Um servidor independente sempre inclui seus próprios endereços nas chaves, junto com o domínio, para que os aplicativos usem ambos além do proxy. O proxy mantém seus usuários conectados caso um endereço seja bloqueado, mas qualquer pessoa com uma chave pode ver o endereço.

Próximos passos