Uno de los encabezados HTTP que Apachehttpd
devuelve con los datos de respuesta es "Servidor". Por ejemplo, mi máquina de servidor web está relativamente actualizada Arch Linux. Devuelve encabezados muy parecidos a los siguientes:
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
Tengo ServerSignature off
en /etc/httpd/conf/httpd.conf
, pero el "Servidor:" sigue apareciendo cabecera. He experimentado con mod_headers . Lo tengo habilitado y he intentado algunas cosas:
<IfModule headers_module>
Header set ProcessingTime "%D"
Header set Server BigJohn
</IfModule>
Después de detenerse y comenzar httpd
con la configuración anterior, los encabezados HTTP incluyen algo como ProcessingTime: 1523
, pero la línea de encabezado "Servidor:" permanece sin cambios. Entonces sé que "mod_headers" está instalado y habilitado, y funciona, pero no como lo deseo.
Veo que algo llamado "mod_security" dice hacer esto, pero no quiero todo el resto del equipaje que lleva mod_security.
ACTUALIZAR:
Una vez que te mod_security
instales, solo necesitas unas pocas directivas:
<IfModule security2_module>
SecRuleEngine on
ServerTokens Full
SecServerSignature "Microsoft-IIS/6.0"
</IfModule>
Eso es por mod_security
2.7.7
fuente
Respuestas:
El ID del servidor / encabezado de token está controlado por la directiva " ServerTokens " (proporcionada por
mod_core
). Además de modificar el código fuente Apache HTTPD, o usar elmod_security
módulo, no hay otra forma de suprimir completamente el encabezado de ID del servidor.Con este
mod_security
enfoque, puede deshabilitar todas las directivas / funciones del módulo en elmodsecurity.conf
archivo y aprovechar solo la directiva de ID de encabezado del servidor sin ningún "equipaje" adicional.fuente
mod_security es genial, pero realmente no lo necesitas para lograr tu objetivo.
después de que se hayan incluido todas las modificaciones,
httpd.conf
simplemente puede desarmar los encabezados que elija.http://httpd.apache.org/docs/2.4/mod/core.html#serversignature
fuente
sudo a2enmod headers
Header unset Server
no funciona en Apache 2.2 y 2.4. Los encabezados de respuesta todavía contienenServer: Apache
Simplemente actualizo esto para las personas que todavía están buscando. Estaba teniendo problemas para cambiar la línea del servidor en el encabezado HTTP. Este consejo debería funcionar para las distribuciones de sucursales de Debian con systemd y Apache 2.4.7. Específicamente, estoy usando Ubuntu Server LTS 14.04.03. Un consejo que encontré fue hacer
Esto me llevó a /etc/apache2/conf-available/security.conf donde se especificaron ServerTokens y ServerSignature. Por lo tanto, los cambios que estaba haciendo en /etc/apache2/apache2.conf estaban siendo sobrescritos por las directivas ya especificadas en security.conf.
Simplemente cambié las directivas en security.conf y Apache comenzó a funcionar como quería.
Sobre el tema de Header unset Server, encontré un informe de error en el que los desarrolladores de Apache dijeron que no es un problema solucionado. Aparentemente para ellos es un problema filosófico, a pesar de que la especificación para HTTP / 1.1, RFC 2616 fue creada en parte por Tim Berners-Lee, diciendo que la etiqueta del servidor es opcional.
Realmente quería establecer la etiqueta del servidor en "Desconocido" para que nuestros escaneos de Qualys sean felices. Entonces, instalé mod_security, ahora llamado libapache2-modsecurity, siguiendo este tutorial de DigitalOcean . Mucha suerte, espero haber ayudado a todos ustedes, futuros lectores.
fuente
He probado algo en Oracle HTTP Server 11.1.1.9 (que se basa en Apache 2.2.22) que funcionó para mí, hasta cierto punto ...
Establecer "ServerTokens" en "none" parece eliminar el valor del encabezado "Server", aunque el encabezado se sigue enviando en la respuesta, pero ahora tiene un valor nulo.
El encabezado de respuesta se vería así:
fuente
none
en el último Apache:ServerTokens takes 1 argument: 'Prod(uctOnly)', 'Major', 'Minor', 'Min(imal)', 'OS', or 'Full'