Como remover o cabeçalho Server: da resposta HTTP com o Apache?


20

Gostaria de remover a linha:

Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g

das respostas HTTP do meu servidor, mas não consegui encontrar outra coisa senão modificar include/ap_release.he compilar o Apache. Eu queria saber se existe uma maneira que eu não conheço?

Respostas:


16

Você pode remover ou mascarar a identificação do servidor do Cabeçalho Http, usando o firewall do aplicativo da web de código aberto ModSecurity .

Máscara de identidade do servidor

Uma técnica que geralmente ajuda a desacelerar e confundir os invasores é a alteração da identidade do servidor da web. Servidores da Web normalmente enviam sua identidade com todas as respostas HTTP no cabeçalho do servidor. O Apache é particularmente útil aqui, não apenas enviando seu nome e versão completa por padrão, mas também permite que os módulos do servidor anexem suas versões também.

Para alterar a identidade do servidor da web Apache, você teria que entrar no código-fonte, encontrar onde o nome "Apache" é codificado, alterá-lo e recompilar o servidor. O mesmo efeito pode ser alcançado usando o

Diretiva SecServerSignature:

SecServerSignature "Microsoft-IIS/5.0"

Deve-se notar que, embora isso funcione muito bem, invasores habilidosos (e ferramentas) podem usar outras técnicas para "fazer a impressão digital" do servidor da web. Por exemplo, arquivos padrão, mensagem de erro, ordenação dos cabeçalhos de saída, a maneira como o servidor responde a determinadas solicitações e similares - podem revelar a verdadeira identidade. Analisarei ainda mais o suporte ao mascaramento de identidade nas versões futuras do mod_security.

Se você alterar a assinatura do Apache, mas estiver incomodado com a mensagem estranha no log de erros (alguns módulos ainda estão visíveis - isso afeta apenas o log de erros, do lado de fora ainda funciona conforme o esperado):

[Fri Jun 11 04:02:28 2004] [notice] Microsoft-IIS/5.0 mod_ssl/2.8.12 OpenSSL/0.9.6b \ configured -- resuming normal operations

Então você deve reorganizar a ordem de carregamento dos módulos para permitir que o mod_security seja executado por último, exatamente como explicado no chrooting.

Nota

Para que essa diretiva funcione, você deve deixar / definir ServerTokens como Full.

Quando a diretiva SecServerSignature é usada para alterar a assinatura do servidor público, o ModSecurity começa a gravar a assinatura real no log de erros, para permitir identificar o servidor da Web e os módulos usados.

Fonte: Manual de referência do ModSecurity


Está em execução no momento, mas acho que não é inteligente usar outro nome de servidor existente, porque você pode acionar ações de ataque.
Codebeat

27

Se você definir ServerTokens" Prod", poderá reduzir o cabeçalho para " Server: Apache". Consulte a documentação para obter uma lista completa de opções:

Documentação para Apache 2.2

Documentação para Apache 2.4

Nota: As configurações são as mesmas nas duas versões, no entanto, a documentação 2.4 adiciona esta nota:

Definir ServerTokens para menos que o mínimo não é recomendado, pois dificulta a depuração de problemas interoperacionais. Observe também que desabilitar o cabeçalho Server: não faz nada para tornar seu servidor mais seguro. A idéia de "segurança através da obscuridade" é um mito e leva a uma falsa sensação de segurança.

Se você deseja remover completamente a palavra "Apache", precisará modificar a fonte.


+1 tnx para a resposta, esqueci de mencionar na pergunta que eu sabia disso, mas quero que ele diga Microsoft IIS ou algo assim. Eu deveria ter deixado isso claro.
Neo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.