Marcio Cunha

Como Configurar Páginas de Erro Customizadas e Ocultar a Versão do Servidor Web

Aprenda a substituir as páginas de erro padrão por interfaces profissionais e a remover assinaturas de servidores web como Nginx e Apache para blindar sua aplicação contra ataques direcionados.

Marcio Cunha5 min
Também disponível em:EnglishEspañol
Resumo
  • Páginas de erro padrão expõem informações tecnológicas que facilitam a vida de invasores em busca de vulnerabilidades conhecidas.
  • Ocultar o cabeçalho Server e a assinatura de versão no Nginx ou Apache reduz drasticamente a superfície de ataque inicial.
  • Erros 404, 502 e 504 exigem tratamento distinto para separar falhas de rota, indisquibilidade de microsserviços e est estouro de tempo limite.
  • Manter o código HTTP correto durante a exibição de páginas customizadas garante que robôs de busca entendam o status real da página.
  • A experiência do usuário melhora significativamente quando uma falha inesperada apresenta caminhos alternativos de navegação em vez de telas cruas.

Por Que Exibir Páginas de Erro Padrão É um Risco de Segurança

Quando um visitante acessa um endereço que não existe ou quando o servidor sofre uma pane repentina, a aplicação costuma exibir mensagens genéricas geradas pelo próprio software de infraestrutura. Essas telas básicas revelam, sem nenhum pudor, o nome exato do servidor web e a versão exata que está rodando por trás do site. Na prática, isso significa entregar de bandeja um mapa para cibercrusionistas, que usam essas assinaturas para descobrir falhas de segurança conhecidas naquela versão específica e tentar invadir o sistema. Substituir essas páginas feias por interfaces limpas e profissionais não é apenas uma questão de estética, mas uma camada fundamental de blindagem para qualquer projeto na internet.

Entendendo os Códigos Críticos: 404, 502 e 504 na Prática

Para configurar uma rota de erro eficiente, primeiro precisamos entender o que cada número significa no jargão técnico da web. O código 404 indica simplesmente que o endereço digitado não foi encontrado no servidor, o que pode acontecer por um link quebrado ou um erro de digitação. Já o erro 502 representa um problema de comunicação em que o servidor principal tentou conversar com um programa auxiliar ou microsserviço de apoio e não obteve resposta válida. Por fim, o erro 504 aponta para o esgotamento de tempo limite, ou seja, o servidor demorou tanto tempo para processar a tarefa que desistiu de esperar. Tratar cada um desses cenários de forma isolada evita que o usuário fique perdido sem saber se o erro foi no link ou se o sistema inteiro caiu.

Como Ocultar a Assinatura da Versão do Servidor no Nginx e no Apache

O primeiro passo prático para proteger sua infraestrutura é silenciar o servidor web para que ele pare de espalhar detalhes sobre sua tecnologia interna. No Nginx, um programa de alta performance muito usado para entregar páginas rapidamente, isso é feito ajustando diretivas específicas no arquivo principal de configuração. Na prática, desativamos a exibição da versão e alteramos a assinatura pública para nomes genéricos ou totalmente em branco. No Apache, o software concorrente mais tradicional da web, o processo envolve mexer nas diretivas de assinatura de servidor e de exposição de tokens do sistema operacional. O objetivo dessas alterações é impedir que uma simples ferramenta de inspeção de rede descubra quais softwares sustentam o seu negócio.

Para aplicar essa blindagem no Nginx, você deve editar o arquivo de configuração global e adicionar comandos específicos dentro do bloco principal. Veja o trecho de código necessário para realizar essa alteração com segurança:

http {
server_tokens off;
more_set_headers 'Server: Servidor Seguro';
}

Se você utiliza o Apache como seu servidor principal, o procedimento exige ajustes no arquivo de configuração de segurança para ocultar os detalhes do sistema. Utilize as diretivas abaixo para desativar a exibição de versões e nomes internos:

ServerSignature Off
ServerTokens Prod

Configurando Páginas de Erro Personalizadas no Servidor Web

Uma vez que o servidor está silencioso e seguro contra a exposição de versões, chegou o momento de criar páginas amigáveis para quando as coisas derem errado. Em vez de entregar um texto sem formatação, configuramos o servidor para redirecionar o visitante para um arquivo HTML estilizado com a identidade visual da sua marca. É fundamental garantir que o servidor mantenha o código de status HTTP correto ao exibir essa página, pois se o site retornar um código de sucesso para uma página que não existe, os mecanismos de busca podem indexar o erro incorretamente. A configuração correta vincula cada número de erro a um arquivo físico específico dentro da pasta do seu projeto.

Para configurar essas rotas customizadas no Nginx, utilizamos a diretiva de erro acoplada aos caminhos dos arquivos correspondentes. O exemplo a seguir demonstra como mapear os erros mais comuns para páginas dedicadas:

server {
listen 80;
server_name meudominio.com;

error_page 404 /404.html;
error_page 502 504 /500.html;

location = /404.html {
root /var/www/html;
internal;
}
}

Validando a Configuração e Testando a Resposta do Servidor

Após salvar os arquivos de configuração e reiniciar os serviços do servidor web, a etapa de validação garante que tudo está funcionando conforme o esperado. Na prática, usamos ferramentas de linha de comando para simular uma requisição e inspecionar os cabeçalhos de resposta HTTP enviados pela máquina. O objetivo principal desta verificação é confirmar que o campo que revela a versão do software sumiu completamente ou exibe apenas um texto genérico. Além disso, testar a navegação em URLs inexistentes confirma se a página estilizada carrega rapidamente sem quebrar o layout ou corromper os códigos de status de rede.

  1. Abra o terminal do seu computador para interagir diretamente com o servidor de teste.
  2. Execute o comando de requisição para inspecionar os detalhes invisíveis da resposta HTTP:
    curl -I https://meudominio.com/pagina-inexistente
  3. Confirme se o cabeçalho de versão desapareceu e se o código numérico retornado corresponde exatamente ao tipo de erro esperado.

Considerações Finais sobre Manutenção e Segurança de Servidores

Configurar páginas de erro personalizadas e esconder a versão do servidor são práticas que exigem atenção contínua ao longo do ciclo de vida da aplicação. À medida que novas atualizações de segurança são lançadas para o Nginx ou Apache, os arquivos de configuração devem ser revisados para garantir que nenhuma diretiva antiga seja sobrescrita por engano. Além disso, manter uma rotina de testes periódicos ajuda a identificar falhas de configuração antes que um visitante real esbarre em uma tela de erro quebrada. A segurança da informação é construída em camadas, e fechar essas pequenas brechas estruturais eleva consideravelmente a resiliência de todo o seu ecossistema digital.