web-dev-qa-db-fra.com

Changer l'en-tête HTTP Apache httpd "Serveur:"

"Server" est l'un des en-têtes HTTP que Apache httpd renvoie avec les données de réponse. Par exemple, ma machine de serveur Web est Arch Linux relativement à jour. Il renvoie des en-têtes ressemblant étroitement à ce qui suit:

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

J'ai ServerSignature off dans /etc/httpd/conf/httpd.conf, mais l'en-tête "Server:" apparaît toujours. J'ai expérimenté avec mod_headers . Je l'ai activé et j'ai essayé plusieurs choses:

<IfModule headers_module>
Header set ProcessingTime "%D"
Header set Server BigJohn
</IfModule>

Après avoir arrêté et démarré httpd avec la configuration ci-dessus, les en-têtes HTTP incluent quelque chose comme ProcessingTime: 1523, mais la ligne d'en-tête "Server:" reste inchangée. Je sais donc que "mod_headers" est installé et activé, et fonctionne, mais pas comme je le souhaite.

Je vois que quelque chose appelé "mod_security" prétend le faire, mais je ne veux pas tout le reste des bagages que mod_security emporte avec lui.

MISE À JOUR:

Une fois que vous obtenez mod_security installé, vous n'avez besoin que de quelques directives:

<IfModule security2_module>
SecRuleEngine on
ServerTokens Full
SecServerSignature "Microsoft-IIS/6.0"
</IfModule>

C'est pour mod_security 2.7.7

34
Bruce Ediger

L'en-tête ID/jeton du serveur est contrôlé par la directive " ServerTokens " (fournie par mod_core). Outre la modification du code source Apache HTTPD ou l'utilisation de mod_security module, il n'y a pas d'autre moyen de supprimer complètement l'en-tête d'ID du serveur.

Avec le mod_security, vous pouvez désactiver toutes les directives/fonctions du module dans modsecurity.conf fichier, et exploitez uniquement la directive ID d'en-tête du serveur sans "bagage" supplémentaire.

13
Chipster

mod_security est génial, mais vous n'en avez pas vraiment besoin pour atteindre votre objectif.

après que tous les mods ont été inclus dans httpd.conf vous pouvez simplement désactiver les en-têtes de votre choix.

Header unset Server

ServerSignature Off
ServerTokens Prod

http://httpd.Apache.org/docs/2.4/mod/core.html#serversignature

25
Matt Ryan

Il suffit de mettre à jour cela pour les personnes qui recherchent toujours. J'avais du mal à changer la ligne du serveur dans l'en-tête HTTP. Ces conseils devraient fonctionner pour les distributions de branche Debian avec systemd et Apache 2.4.7. Plus précisément, j'utilise Ubuntu Server LTS 14.04.03. Un conseil que j'ai trouvé était de faire

grep -Ri servertokens /etc/Apache2

Cela m'a conduit à /etc/Apache2/conf-available/security.conf où ServerTokens et ServerSignature étaient spécifiés. Par conséquent, toutes les modifications que j'apportais à /etc/Apache2/Apache2.conf étaient écrasées par les directives déjà spécifiées dans security.conf.

J'ai simplement changé les directives dans security.conf et Apache a commencé à fonctionner comme je le voulais.

ServerTokens Prod
ServerSignature Off

Sur le sujet de Header unset Server, j'ai trouvé un rapport de bogue où les développeurs Apache ont dit que ce n'était pas un problème fixe. Apparemment pour eux, c'est un problème philosophique, malgré le fait que la spécification pour HTTP/1.1, RFC 2616 a été écrite en partie par Tim Berners-Lee, disant que la balise Server est facultative.

Je voulais vraiment définir la balise Server sur "Unknown" pour rendre nos scans Qualys heureux. J'ai donc installé mod_security, maintenant appelé libapache2-modsecurity, en suivant ce tutoriel DigitalOcean . Bonne chance, j'espère avoir aidé pour vous tous les futurs lecteurs.

14
slmaq

J'ai testé quelque chose sur Oracle HTTP Server 11.1.1.9 (qui est construit sur Apache 2.2.22) qui a fonctionné pour moi, dans une certaine mesure ..

La définition de "ServerTokens" sur "none" semble supprimer la valeur d'en-tête "Server", bien que l'en-tête lui-même continue d'être envoyé dans la réponse, mais il a maintenant une valeur nulle.

ServerTokens aucun

L'en-tête de réponse ressemblerait à ceci:

HTTP/1.1 200 OK

Date: lun.28 déc. 2015 07:02:45 GMT

Serveur:

Dernière modification: dim, 27 déc 2015 07:29:13 GMT

.

.

1
Mohab Elsayed