Este artigo é uma extensão do guia de fortalecimento de VPS e apresenta um método para conceder acesso condicional a serviços web em um VPS sem abrir novas portas no firewall.
Introdução
Utilizaremos o
cloudflared
, uma ferramenta de linha de comando e daemon que conecta nossa infraestrutura à rede global da Cloudflare, permitindo túneis seguros (com upgrades de HTTP para HTTPS) para acessar recursos atrás de firewalls.A maioria das aplicações web auto-hospedadas deve ser compatível com essa ferramenta. Usaremos o Dockge, um gerenciador de serviços Docker Compose, para facilitar implantações de aplicações web. Demonstramos o acesso a ele com o Cloudflare Zero Trust (usando
cloudflared
).Configuração do Serviço: Docker e Dockge
Nosso VPS é um host Ubuntu 24.04, configurado conforme os passos descritos em:
Neste guia, apenas o
ssh
está acessível remotamente neste host; todas as outras portas são bloqueadas pelo firewall ufw
(também abordamos a alteração da porta ssh
para uma porta alternativa e a configuração do fail2ban
).Para esta configuração adicional, propomos o uso do Dockge com Docker para suportar a instalação de um subconjunto de aplicações (stacks) usando
docker compose
. Para adicioná-los em nosso VPS Ubuntu 24.04:- Siga a seção “Configuração do Docker (a partir do docker.io)”, pois esta seção fornece apenas os passos para instalar o Docker:YouTube+2YouTube+2techtudo+2
- Siga a seção “Configuração (com Docker)” do post “Dockge”. A seguir, não instalaremos stacks adicionais, mas as ferramentas permitirão que adicionemos muitos, caso decidamos.
Após seguir essas instruções, o serviço Dockge estará disponível apenas no localhost. Ele não será acessível remotamente, pois nossa configuração de firewall do VPS limita o acesso a qualquer porta além da porta SSH modificada.
Para confirmar que o serviço está funcionando, podemos conectar à interface localhost do host remoto na porta do Dockge (5001) e encaminhá-la localmente para uma porta, por exemplo, 4001 (aqui
vps
é uma entrada Host
em nosso .ssh/config
):bash CopiarEditar ssh vps -L 4001:127.0.0.1:5001 -N
Com este comando, não haverá prompt de shell (
-N
); o túnel estará ativo até pressionarmos Ctrl+C
para encerrar o comando. Enquanto o túnel estiver ativo, podemos abrir o Firefox em http://127.0.0.1:4001/, o que abrirá a interface de configuração do Dockge.Cloudflare
ℹ️ A Cloudflare exige que uma forma de pagamento esteja cadastrada (cartão de crédito). No entanto, para o nosso uso, o plano gratuito da Cloudflare tem sido suficiente e estável para todos os recursos utilizados neste tutorial.
DNS: apontando o domínio para a Cloudflare
Para que os próximos passos funcionem corretamente, é necessário:
- Ter um domínio registrado em qualquer registrador (como Namecheap, Registro.br, GoDaddy, etc.)
- Alterar os servidores de DNS (nameservers) no registrador para os resolvers fornecidos pela Cloudflare
Neste artigo, utilizaremos o domínio de exemplo:
CopiarEditar example.com
🔗 Referência oficial com os passos completos:
Etapas resumidas para mover o domínio para a Cloudflare
- Acesse https://dash.cloudflare.com/
- Crie uma conta (ou acesse uma já existente) e ative a autenticação de dois fatores (2FA)
- Adicione o domínio no painel da Cloudflare:
- A Cloudflare tentará importar os registros DNS existentes
- Revise cada registro com atenção; caso necessário, consulte seu registrador para restaurar os registros faltantes
- Após a revisão, a Cloudflare informará os nameservers personalizados que deverão ser inseridos no seu registrador
- Atualize os nameservers no registrador original do domínio
- A propagação pode levar de alguns minutos até 24 horas
- Após finalizado, você receberá um e-mail de confirmação e o domínio estará totalmente gerenciado pela Cloudflare
⚠️ Esse processo transfere apenas o gerenciamento DNS — o domínio continua registrado no registrador original.
Reforço de Segurança: configurações recomendadas no painel da Cloudflare
Após ativar seu domínio no painel:
- Vá para Websites → example.com
- Em SSL/TLS, configure:
Encryption Mode
: Full (strict)- Em Edge Certificates: ative Always Use HTTPS
- Em Security:
- WAF → Custom Rules → Create Rule
- Nome:
Zero Threat
- Condição:
- “When incoming requests match…”:
Threat Score
- “Operator”:
greater than
- “Value”:
0
- Ação:
Block
- Clique em Deploy
- Em Bots:
- Ative
Bot Fight Mode
- Avalie se deseja ativar
Block AI Scrapers and Crawlers
- A proteção DDoS já está ativa por padrão
- Revise as demais configurações de segurança padrão e ative outras conforme necessidade
Recursos adicionais do painel (Quick Actions)
Na aba Overview do painel do domínio, clique em:
mathematica CopiarEditar Quick Actions → Activate Recommended Settings
Isto permite habilitar recursos como:
- WebSockets
- Onion Routing
- Hotlink Protection
- Browser Integrity Check
🔗 Veja a lista completa e individual:
Esses recursos são opcionais, e recomendamos ativar apenas os necessários para o seu ambiente.
Cloudflared: criando o túnel seguro
Com o domínio
example.com
devidamente hospedado na Cloudflare, o próximo passo é configurar um Cloudflare Tunnel, anteriormente conhecido como Argo Tunnel.🔗 Leitura complementar:
“Cloudflare Tunnel permite proteger e criptografar o tráfego de aplicações de qualquer infraestrutura sem precisar abrir portas públicas ou expor IPs. A conexão é criada entre o servidor de origem e o datacenter Cloudflare mais próximo, sem exposição direta do IP e com criptografia ponta-a-ponta.”
Integração com Zero Trust Web Access (ZTWA)
O
cloudflared
será utilizado com Zero Trust Web Access, recurso que permite:- Acesso seguro a aplicações internas
- Autenticação baseada em identidade (sem exigir instalação de client VPN)
- Regras individuais para cada aplicação
🔗 Material de estudo oficial:
📌 Princípios do Zero Trust:
- Nenhuma aplicação, usuário ou dispositivo é confiável por padrão
- Todo acesso exige verificação de identidade
- Cada requisição é autenticada e autorizada individualmente
- O acesso é concedido somente à aplicação definida, não à rede inteira
Aplicando Zero Trust no Dockge
Nesta arquitetura, a aplicação
Dockge
(acessível somente localmente via localhost:5001
) será exposta em:arduino CopiarEditar https://dockge.example.com
...e o acesso será restrito por identidade:
- Usuário autorizado digita seu e-mail
- Recebe um código único (OTP)
- Ao validar o código, a Cloudflare libera o acesso
- Nenhuma porta adicional foi aberta no VPS
Cloudflare Tunnel com cloudflared
: configuração prática
Com o domínio
example.com
agora sob gerenciamento DNS da Cloudflare e as configurações de segurança aplicadas, seguimos com a criação do túnel seguro entre o VPS Ubuntu 24.04 e a Cloudflare — utilizando o Zero Trust Web Access.Este túnel permitirá que serviços internos (como o Dockge, rodando em
localhost:5001
) sejam acessados publicamente com segurança e controle de identidade, sem expor nenhuma porta no servidor.Criação do túnel via painel Cloudflare
- Acesse o painel Zero Trust:
👉 https://dash.teams.cloudflare.com
- Vá em:
Network → Tunnels → Create a Tunnel
- Selecione:
cloudflared
- Nomeie o túnel:
Exemplo:
vps-cloudflared
💡 Por convenção, você pode usar o hostname do servidor ou o alias utilizado no .ssh/config
Instalação do cloudflared
no VPS
Na etapa seguinte, você verá instruções para instalar e conectar o
cloudflared
.Como seu VPS é Ubuntu 24.04 (x86_64):
- Se o
cloudflared
já está instalado (ex: por configuração prévia de DNS-over-HTTPS), basta executar:
bash CopiarEditar sudo cloudflared service install
- Caso contrário, execute o comando
curl
fornecido pelo painel, que instalará o binário, criará o serviço, e aplicará automaticamente o token do túnel.
⚠️ Este token é sigiloso — ele é equivalente a uma chave de API. Jamais deve ser publicado ou compartilhado.
Verificando o conector
Após a instalação, a conexão será estabelecida automaticamente. Você verá o conector listado em:
css CopiarEditar Zero Trust → Network → Tunnels → [vps-cloudflared] → Connectors
Se o status estiver como “Connected”, seu servidor está pronto para expor aplicações de forma segura.
Roteamento: conectando o serviço Dockge
Agora vinculamos o subdomínio desejado ao serviço local.
- Vá até o túnel criado:
Tunnels → [vps-cloudflared] → Route → Public Hostname
- Clique em Add a public hostname e preencha:
Campo | Valor |
Subdomain | dockge |
Domain | example.com |
Path | (deixe vazio) |
Type | http |
URL | 127.0.0.1:5001 |
- Não altere os campos de “HTTP Settings”, “Connection” ou “Access” — isso será definido no passo seguinte.
- Clique em Save.
Protegendo a aplicação com autenticação (One-Time PIN)
Com o túnel e roteamento configurados, protegemos o acesso usando autenticação baseada em identidade — neste caso, via e-mail e código único (OTP).
Criando a aplicação protegida
- Vá em:
Access → Applications → Add an Application
- Selecione o tipo:
Self-hosted
- Em “Configure Application”:
Campo | Valor |
Name | Dockge |
Subdomain | dockge |
Domain | example.com |
Path | (deixe em branco) |
Session Duration | 1h ou 4h |
IdP | One-time PIN |
- Não modifique Tags, Block pages ou WARP.
Clique em Next.
Adicionando uma política de acesso
- Nome da política:
email
- Ação:
Allow
- Sessão:
Same as application session timeout
- Clique em Add include →
Seletor:
Email
Valor:
user@gmail.com
(ou outro endereço autorizado)🔒 Você pode adicionar vários e-mails ou configurar grupos de acesso posteriormente.
- Clique em Add Application.
Testando o acesso à aplicação protegida
Acesse no navegador:
arduino CopiarEditar https://dockge.example.com
⚙️ Você verá:
- A página de autenticação da Cloudflare
- Um campo para digitar o e-mail autorizado
- Um botão Send me a code
- O código será enviado para o e-mail especificado
- Ao inserir o código corretamente (válido por 10 minutos), o acesso à aplicação será concedido
Resultado final
Após todo o processo, temos:
- ✅ O serviço Dockge disponível publicamente com endereço HTTPS
- ✅ Nenhuma porta (além do SSH) aberta no firewall do VPS
- ✅ Acesso autenticado e auditado via Cloudflare Access
- ✅ Política de segurança baseada em identidade (Zero Trust)
- ✅ Possibilidade de aplicar filtros adicionais (IP, país, ASN)
Autor do artigo
Sou formado em Marketing Digital por uma das principais faculdades do Brasil, com carreira construída unindo tecnologia, automação e estratégia digital.
Apaixonado por inovação, me especializei em T.I. e automação de marketing com inteligência artificial, criando soluções que ajudam empresas a vender mais, automatizar processos e crescer com eficiência.
Atuo como empreendedor digital, desenvolvendo sistemas completos com foco em automação de vendas, atendimento inteligente via WhatsApp e integração de ferramentas modernas com IA.
Minha missão é transformar ideias em sistemas inteligentes que funcionam de forma autônoma, liberando tempo e energia para que você possa focar no que realmente importa: o crescimento do seu negócio.