Einer der HTTP-Header, die der Apachehttpd
mit Antwortdaten zurücksendet, ist "Server". Zum Beispiel ist mein Webserver relativ aktuelles Arch Linux. Es sendet Header zurück, die ungefähr so aussehen:
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
Ich habe ServerSignature off
in /etc/httpd/conf/httpd.conf
, aber die Überschrift "Server:" wird weiterhin angezeigt. Ich habe mit mod_headers experimentiert . Ich habe es aktiviert und ein paar Dinge ausprobiert:
<IfModule headers_module>
Header set ProcessingTime "%D"
Header set Server BigJohn
</IfModule>
Nach dem Beenden und Starten httpd
mit der obigen Konfiguration enthalten die HTTP-Header so etwas wie ProcessingTime: 1523
, aber die Kopfzeile "Server:" bleibt unverändert. Ich weiß also, dass "mod_headers" installiert und aktiviert ist und funktioniert, aber nicht so, wie ich es mir wünsche.
Ich sehe, dass etwas mit dem Namen "mod_security" behauptet, dies zu tun, aber ich möchte nicht den ganzen Rest des Gepäcks, das mod_security mit sich führt.
AKTUALISIEREN:
Sobald Sie mod_security
installiert sind, benötigen Sie nur ein paar Anweisungen:
<IfModule security2_module>
SecRuleEngine on
ServerTokens Full
SecServerSignature "Microsoft-IIS/6.0"
</IfModule>
Das ist für mod_security
2.7.7
quelle
Antworten:
Der Server- ID- / Token-Header wird durch die (von bereitgestellte
mod_core
) " ServerTokens " -Direktive gesteuert . Abgesehen von der Änderung des Apache HTTPD-Quellcodes oder der Verwendung desmod_security
Moduls gibt es keine andere Möglichkeit, den Server-ID-Header vollständig zu unterdrücken.Mit diesem
mod_security
Ansatz können Sie alle Anweisungen / Funktionen des Moduls in dermodsecurity.conf
Datei deaktivieren und nur die Server-Header-ID-Anweisung ohne zusätzliches "Gepäck" verwenden.quelle
mod_security ist großartig, aber Sie brauchen es nicht wirklich, um Ihr Ziel zu erreichen.
Nachdem alle Mods enthalten sind,
httpd.conf
kannst du einfach die Header deiner Wahl entfernen.http://httpd.apache.org/docs/2.4/mod/core.html#serversignature
quelle
sudo a2enmod headers
Header unset Server
funktioniert nicht in Apache 2.2 und 2.4. Antwort-Header enthält nochServer: Apache
Ich aktualisiere dies nur für Leute, die noch suchen. Ich hatte Probleme, die Serverzeile im HTTP-Header zu ändern. Dieser Rat sollte für Debian Branch Distributionen mit Systemd und Apache 2.4.7 funktionieren. Insbesondere verwende ich Ubuntu Server LTS 14.04.03. Einige Ratschläge, die ich fand, waren zu tun
Dies führte mich zu /etc/apache2/conf-available/security.conf, wo sowohl ServerTokens als auch ServerSignature angegeben wurden. Daher wurden alle Änderungen, die ich an /etc/apache2/apache2.conf vorgenommen habe, durch die bereits in security.conf angegebenen Anweisungen überschrieben.
Ich habe einfach die Direktiven in security.conf geändert und Apache fing an zu arbeiten, wie ich wollte.
Beim Thema "Header unset Server" habe ich einen Fehlerbericht gefunden, in dem die Apache-Entwickler angegeben haben, dass das Problem nicht behoben werden kann. Anscheinend ist es für sie ein philosophisches Problem, obwohl die Spezifikation für HTTP / 1.1, RFC 2616, teilweise von Tim Berners-Lee verfasst, besagt, dass das Server-Tag optional ist.
Ich wollte unbedingt das Server-Tag auf "Unbekannt" setzen, um unsere Qualys-Scans zufrieden zu stellen. Also habe ich mod_security, jetzt libapache2-modsecurity genannt, nach diesem DigitalOcean-Tutorial installiert . Viel Glück, ich hoffe, ich habe allen zukünftigen Lesern geholfen.
quelle
Ich habe auf Oracle HTTP Server 11.1.1.9 (der auf Apache 2.2.22 basiert) etwas getestet, das in gewissem Maße für mich funktioniert hat.
Das Setzen der "ServerTokens" auf "none" scheint den "Server" -Headerwert zu entfernen, obwohl der Header selbst weiterhin in der Antwort gesendet wird, aber jetzt einen Nullwert hat.
Der Antwortheader würde folgendermaßen aussehen:
quelle
none
auf neuesten Apache verwenden:ServerTokens takes 1 argument: 'Prod(uctOnly)', 'Major', 'Minor', 'Min(imal)', 'OS', or 'Full'