WEB APPLICATION DEFENSE - SUPREME GUIDE
WEB APPLICATION DEFENSE - SUPREME GUIDE
MATEUS CELESTINO PRO X/WEB APPLICATION DEFENSE - SUPREME GUIDE

WEB APPLICATION DEFENSE - SUPREME GUIDE

Categoria
Criado em
May 7, 2025 02:17 PM GMT+0
Última edição
May 7, 2025 03:18 PM GMT+0
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.
notion image

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:
  1. 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
  1. 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
    notion image
    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

    1. Acesse https://dash.cloudflare.com/
    1. Crie uma conta (ou acesse uma já existente) e ative a autenticação de dois fatores (2FA)
    1. 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
    1. Após a revisão, a Cloudflare informará os nameservers personalizados que deverão ser inseridos no seu registrador
    1. Atualize os nameservers no registrador original do domínio
        • A propagação pode levar de alguns minutos até 24 horas
    1. 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.
     
    notion image

    Reforço de Segurança: configurações recomendadas no painel da Cloudflare

    Após ativar seu domínio no painel:
    1. Vá para Websites → example.com
    1. Em SSL/TLS, configure:
        • Encryption ModeFull (strict)
        • Em Edge Certificates: ative Always Use HTTPS
    1. 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.
     
    notion image

    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)

    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

     
    notion image
     

    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

    1. Acesse o painel Zero Trust:
      1. 👉 https://dash.teams.cloudflare.com
    1. Vá em:
      1. Network → Tunnels → Create a Tunnel
    1. Selecione:
      1. cloudflared
    1. Nomeie o túnel:
      1. 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.
    1. Vá até o túnel criado:
      1. Tunnels → [vps-cloudflared] → Route → Public Hostname
    1. 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.

    notion image

    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

    1. Vá em:
      1. Access → Applications → Add an Application
    1. Selecione o tipo:
      1. Self-hosted
    1. 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

    1. Nome da política:
      1. email
    1. Ação:
      1. Allow
    1. Sessão:
      1. Same as application session timeout
    1. Clique em Add include →
      1. Seletor: Email
        Valor: user@gmail.com (ou outro endereço autorizado)
    🔒 Você pode adicionar vários e-mails ou configurar grupos de acesso posteriormente.
    1. Clique em Add Application.

    notion image
    notion image
    notion image
     

    Testando o acesso à aplicação protegida

    Acesse no navegador:
    arduino CopiarEditar https://dockge.example.com
    notion image
    ⚙️ Você verá:
    1. A página de autenticação da Cloudflare
    1. Um campo para digitar o e-mail autorizado
    1. Um botão Send me a code
    1. O código será enviado para o e-mail especificado
    1. 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.
     
    notion image
    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.
    AGENDE AGORA !AGENDE AGORA !