Colocar uma CDN ou um proxy reverso na frente de um site absorve tráfego e esconde o endereço do servidor, mas só enquanto o IP real continuar desconhecido. Os atacantes raramente quebram a CDN. Eles procuram a origem diretamente. Este guia lista onde as origens vazam e como fazer a origem recusar tudo, exceto o seu proxy.
Como as origens são encontradas
- Histórico de DNS: serviços guardam registros antigos, então um IP que você usava antes de adicionar a CDN continua listado.
- Subdomínios: registros como
mail.,ftp.oudev.que apontam direto para o servidor. - Cabeçalhos de e-mail: e-mails enviados pelo mesmo host revelam o IP dele nos cabeçalhos.
- Transparência de certificados e varreduras da internet: scanners associam um certificado a todos os IPs que o servem.
- Comportamento da aplicação: webhooks, buscadores de imagens e recursos de "verificar esta URL" se conectam a partir da origem.
Etapa 1: comece do zero
Se o servidor já foi exposto, a correção mais segura é um novo IP, ou um novo servidor e uma migração. Esconder um endereço que já é público não funciona. Planeje a mudança com o guia de migração sem downtime.
Etapa 2: aceite tráfego apenas do proxy
Permita as portas web apenas a partir das faixas publicadas do proxy e de mais nada. Com o UFW, fica assim, usando as faixas que o seu provedor publica.
sudo ufw default deny incoming
sudo ufw allow OpenSSH
for ip in $(cat proxy-ranges.txt); do sudo ufw allow from "$ip" to any port 443 proto tcp; done
sudo ufw enable
Atualize a lista periodicamente, já que as faixas mudam. Para uma garantia maior, use authenticated origin pulls (TLS mútuo) para que o Nginx rejeite qualquer cliente sem o certificado do proxy.
Etapa 3: separe tudo o que pode vazar
- Envie e-mails por outro host ou relay, nunca pela origem.
- Mantenha os subdomínios que não são web fora do IP da origem.
- Faça as requisições de saída da aplicação passarem por um proxy ou por um worker separado.
- Sirva um bloco de servidor Nginx padrão que devolva uma resposta vazia para um
Hostdesconhecido, para que uma varredura do IP puro não mostre nada.
server {
listen 443 ssl default_server;
ssl_reject_handshake on;
}
Etapa 4: teste como um atacante
Procure seu domínio em ferramentas de histórico de DNS, varra sua própria faixa de IPs atrás do certificado e verifique os cabeçalhos de uma mensagem de teste. Se qualquer um deles mostrar a origem, troque o IP e repita.
Lembre-se do que isso faz e do que não faz: protege a disponibilidade e a privacidade do endereço. Não esconde quem é o dono da conta. Para isso, leia quão anônima é a hospedagem anônima, e para ataques que passam da camada de rede veja as defesas de camada 7.