Um dos cabeçalhos HTTP que o Apachehttpd
envia com dados de resposta é "Servidor". Por exemplo, minha máquina de servidor da Web é o Arch Linux relativamente atualizado. Ele envia cabeçalhos de volta semelhantes aos seguintes:
HTTP/1.1 404 Not Found
Date: Thu, 10 Apr 2014 17:19:27 GMT
Server: Apache/2.4.9 (Unix)
Content-Length: 1149
Connection: close
Content-Type: text/html
Eu tenho ServerSignature off
em /etc/httpd/conf/httpd.conf
, mas o "Server:" cabeçalho ainda aparece. Eu experimentei mod_headers . Eu o habilitei e tentei algumas coisas:
<IfModule headers_module>
Header set ProcessingTime "%D"
Header set Server BigJohn
</IfModule>
Depois de parar e começar httpd
com a configuração acima, os cabeçalhos HTTP incluem algo como ProcessingTime: 1523
, mas a linha de cabeçalho "Servidor:" permanece inalterada. Então eu sei que o "mod_headers" está instalado e ativado, e funcionando, mas não como eu desejo.
Vejo que algo chamado "mod_security" afirma fazer isso, mas não quero todo o resto da bagagem que o mod_security carrega.
ATUALIZAR:
Depois de mod_security
instalar, você precisa apenas de algumas diretivas:
<IfModule security2_module>
SecRuleEngine on
ServerTokens Full
SecServerSignature "Microsoft-IIS/6.0"
</IfModule>
Isso é para mod_security
2.7.7
fonte
Respostas:
O cabeçalho do ID / token do servidor é controlado pela diretiva " ServerTokens " (fornecida por
mod_core
). Além de modificar o código-fonte Apache HTTPD ou usar omod_security
módulo, não há outra maneira de suprimir totalmente o cabeçalho do ID do servidor.Com a
mod_security
abordagem, você pode desativar todas as diretivas / funções do módulo nomodsecurity.conf
arquivo e aproveitar apenas a diretiva de ID de cabeçalho do servidor sem nenhuma "bagagem" adicional.fonte
O mod_security é ótimo, mas você realmente não precisa dele para atingir seu objetivo.
Depois que todos os mods foram incluídos,
httpd.conf
você pode simplesmente desabilitar os cabeçalhos de sua escolha.http://httpd.apache.org/docs/2.4/mod/core.html#serversignature
fonte
sudo a2enmod headers
Header unset Server
não funciona no Apache 2.2 e 2.4. Cabeçalhos de resposta ainda contémServer: Apache
Apenas atualizando isso para pessoas que ainda estão procurando. Estava com problemas para alterar a linha do servidor no cabeçalho HTTP. Este conselho deve funcionar para distribuições de ramificação Debian com systemd e Apache 2.4.7. Especificamente, estou usando o Ubuntu Server LTS 14.04.03. Alguns conselhos que encontrei foram:
Isso me levou ao /etc/apache2/conf-available/security.conf, onde ServerTokens e ServerSignature foram especificados. Portanto, quaisquer alterações que eu estava fazendo no /etc/apache2/apache2.conf estavam sendo substituídas pelas diretivas já especificadas no security.conf.
Simplesmente mudei as diretivas em security.conf e o Apache começou a funcionar como eu queria.
No tópico do servidor de cabeçalho não configurado, encontrei um relatório de bug em que os desenvolvedores do Apache disseram que não é um problema corrigido. Aparentemente, para eles, é uma questão filosófica, apesar de a especificação para HTTP / 1.1, RFC 2616, em parte de autoria de Tim Berners-Lee, dizer que a tag Server é opcional.
Eu realmente queria definir a etiqueta do servidor como "Desconhecida" para deixar nossas varreduras Qualys felizes. Então, instalei o mod_security, agora chamado libapache2-modsecurity, seguindo este tutorial do DigitalOcean . Boa sorte, espero ter ajudado para todos vocês, futuros leitores.
fonte
Eu testei algo no Oracle HTTP Server 11.1.1.9 (baseado no Apache 2.2.22) que funcionou para mim, até certo ponto.
Definir "ServerTokens" como "none" parece remover o valor do cabeçalho "Server", embora o cabeçalho em si continue sendo enviado na resposta, mas agora tenha um valor nulo.
O cabeçalho da resposta ficaria assim:
fonte
none
Apache mais recente:ServerTokens takes 1 argument: 'Prod(uctOnly)', 'Major', 'Minor', 'Min(imal)', 'OS', or 'Full'