INFRAESTRUTURA PRIVADA OFFSHORE
Web e onionAplicado · 4 min de leitura

Separe sua borda web pública da aplicação

Dê ao servidor web, ao proxy reverso e à aplicação responsabilidades distintas, com acesso deliberado à origem, TLS, limites de solicitação e um caminho de incidentes.

Por SwissOctet Editorial
A RESPOSTA DIRETA

Separe a publicação do HTTP da execução da aplicação e dos dados persistentes. Um proxy reverso pode organizar o roteamento e os limites, mas o acesso à origem, a autorização da aplicação, a capacidade do upstream e a recuperação exigem cada um seus próprios controles.

01

Uma requisição web atravessa várias responsabilidades

Um servidor web recebe requisições HTTP e pode servir arquivos estáticos. Um processo de aplicação executa o comportamento dinâmico do projeto, como verificar uma conta ou consultar um banco de dados. Um proxy reverso recebe requisições em nome desse processo e as encaminha para um upstream. Um único programa pode cumprir vários papéis, mas separar as responsabilidades torna a configuração e a recuperação mais fáceis de entender.

Rastreie uma requisição desde a resolução do nome do host até a resposta. Registre onde o TLS termina, qual processo escolhe a rota e qual componente pode ler os dados da aplicação. Faça o mesmo para uma requisição administrativa. Esse exercício frequentemente expõe um listener ou nome de host que foi criado para testes e permaneceu acessível por acidente. O diagrama deve descrever o caminho implantado, e não a arquitetura que você esperava construir.

02

Use a borda para organizar o comportamento do HTTP

O NGINX documenta tanto o fornecimento de conteúdo estático quanto o encaminhamento de requisições para um upstream. Sua arquitetura de workers e seus módulos HTTP fornecem mecanismos de configuração, mas uma configuração específica ainda determina o comportamento. Defina nomes de host, upstreams e raízes do sistema de arquivos de forma deliberada. Restrinja os arquivos que podem ser servidos para que configuração, credenciais e metadados de repositório nunca se tornem baixáveis por estarem próximos à aplicação.

Defina limites apropriados para corpos de requisição, timeouts e conexões de acordo com a aplicação. Trate os caches como uma decisão de dados: conteúdo vinculado a um usuário ou permissão não pode herdar com segurança uma regra de cache compartilhada sem revisão. Teste a autenticação e o comportamento de cache em conjunto. Mantenha uma configuração reproduzível e valide as alterações antes de recarregar o serviço, com uma rota conhecida de volta à versão anterior em funcionamento.

CamadaResponsabilidade útilVerifique antes do lançamento
Borda web públicaTLS, roteamento por nome de host e limites de HTTPCertificados, raízes e nomes de host pretendidos
Processo da aplicaçãoLógica de negócios e autorizaçãoAutenticação, verificações de entrada e falha de dependência
Serviço de dados internoEstado persistente da aplicaçãoAcesso restrito e restauração testada
Rede do provedor upstreamO serviço de rede contratadoEscopo de proteção e caminho de escalonamento
03

Um proxy reverso não remove a exposição da origem

Se a origem permanecer acessível publicamente, um cliente poderá alcançá-la sem usar a rota de proxy pretendida. Restrinja o acesso à origem por meio do design de rede e da configuração da aplicação quando a implantação exigir essa fronteira. Em uma única máquina, um backend frequentemente pode escutar em loopback ou em um socket local. Entre máquinas, use rotas restritas explícitas e proteção adequada para a conexão upstream.

Os cabeçalhos encaminhados também precisam de uma regra de confiança. Aceite informações sobre o cliente original apenas de intermediários confiáveis e impeça que chamadores arbitrários forneçam valores que a aplicação trate como autoritativos. Decida o que aparece nos logs de acesso e nos relatórios de erro. Um proxy pode alterar as informações disponíveis em cada camada; ele não apaga identificadores de conta nem torna a aplicação anônima para seu próprio operador.

04

Aplique decisões de acesso dentro da aplicação

A arquitetura Zero Trust do NIST concentra-se em decisões de acesso a recursos, em vez de confiança implícita baseada apenas na localização de rede. Aplique esse princípio de forma concreta: autentique o chamador, autorize a operação solicitada e conceda às contas de serviço apenas o escopo necessário. Uma requisição proveniente de uma sub-rede interna não deve se tornar automaticamente uma requisição de administrador.

Separe funções públicas e administrativas quando for prático. Verifique novamente a permissão quando um usuário acessar um registro, em vez de confiar apenas no login inicial. Mantenha credenciais distintas para o proxy, a aplicação e o banco de dados. Introduza mudanças em etapas que possam ser testadas, começando por um caminho sensível estreito. Chamar uma implantação de Zero Trust é menos útil do que demonstrar que uma ação proibida é de fato negada no componente responsável por ela.

05

Planeje a negação de serviço em mais de uma camada

Um link de rede saturado e uma requisição de aplicação custosa falham em lugares diferentes. A limitação de taxa na borda web pode ajudar a restringir padrões de requisição, enquanto os limites da aplicação podem delimitar trabalhos como buscas, uploads ou exportações. O módulo de limitação de requisições do NGINX fornece um mecanismo; a chave e os limites devem se adequar aos usuários reais e ser testados para evitar rejeitar tráfego legítimo.

As orientações do OWASP sobre negação de serviço também abordam o esgotamento de recursos no comportamento da aplicação. Estabeleça limites de tempo e tamanho em torno de trabalhos custosos, use filas limitadas e monitore sinais de falha. Controles locais não podem criar capacidade em um link upstream já saturado. Confirme a proteção de rede específica incluída na oferta escolhida e prepare um caminho de escalonamento. Nunca presuma que a proteção de Camada 3–4 de um catálogo também comprove proteção para toda carga de trabalho HTTP.

06

Faça da recuperação parte da publicação

Verifique o site a partir de um cliente externo usando seu nome de host pretendido. Confirme HTTPS, redirecionamentos, recursos estáticos, logins e uma transação representativa da aplicação. Confirme que listeners administrativos e arquivos privados permanecem inacessíveis. Simule um upstream parado e verifique se a borda retorna uma falha controlada, em vez de expor detalhes internos ou esperar sem limite.

Para o Canvas, leia os controles disponíveis na conta de hospedagem. Para um VPS, mantenha a borda web e a aplicação como parte do seu próprio plano operacional. Uma porta de rede grande é uma especificação de capacidade, não prova de que a aplicação consegue sustentar essa taxa de transferência. Mantenha monitoramento, restauração e contatos do provedor no runbook. Publique somente depois que o caminho real da requisição e um caminho prático de recuperação tiverem sido verificados.

TRANSFORME ISSO EM AÇÃO

Sua lista prática.

  • Rastreie uma requisição pública e uma administrativa.
  • Defina raízes servidas e listeners upstream.
  • Confie em cabeçalhos encaminhados apenas de intermediários aprovados.
  • Teste a autorização e os limites de cache.
  • Prepare limites e escalonamento para falhas de rede e de aplicação.
PERGUNTAS COMUNS

Os detalhes que importam.

Um servidor web também pode atuar como proxy reverso?+

Sim. O NGINX é um exemplo documentado. Seus papéis dependem da configuração, e a aplicação ainda precisa de sua própria autorização e manutenção.

Um proxy reverso oculta automaticamente a origem?+

Não. A origem pode permanecer acessível, a menos que o roteamento, o firewall e as configurações de listener imponham a fronteira pretendida.

A limitação de requisições deterá todo ataque DDoS?+

Não. Ela aborda padrões selecionados de requisições HTTP. Saturação de rede e outras falhas de recursos exigem controles apropriados de upstream e de aplicação.

REFERÊNCIAS PRINCIPAIS

Vá à fonte.

Estas referências apoiam os conceitos técnicos deste guia. Siga a documentação atual antes de alterar um sistema em produção.

  1. NGINX: Guia para iniciantes nginx.org
  2. NGINX: Limitação de requisições HTTP nginx.org
  3. NIST SP 800-207: Arquitetura Zero Trust nvlpubs.nist.gov
  4. OWASP: Prevenção de Negação de Serviço cheatsheetseries.owasp.org

Orientação editorial da SwissOctet. Os exemplos são ilustrativos. Especificações de serviço, opções disponíveis e condições contratuais devem ser verificadas separadamente.

CONECTE O CONHECIMENTO

Infraestrutura relacionada.

MANTENHA O FIO

Suas próximas notas de campo.

Explore todos os guias