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?

Neo
fonte

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

Chris_O
fonte
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.

gravidade
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