Changer les en-têtes NGINX

Le changement ou l’ajout d’en-têtes sur un serveur peut être utile pour se cacher, pour s’amuser, ou pas… Plus sérieusement, l’ajout de headers est utilisé pour sécuriser son serveur web, mais pas de cette façon, ici, c’est pour (un peu) s’amuser

Note : si vous utilisez CloudFlare, il ne va pas du tout aprécier que vous changiez les en-têtes de votre serveur et vos certificats SSL ne fonctionneront plus (Erreur 525 : SSL Handshake Failed)

Les en-têtes sous NGINX

En faisant un curl sur l’ip de votre serveur (ou vers une adresse web), vous verrez un certains nombre de headers :

# curl -I http://@IP
HTTP/1.1 301 Moved Permanently
Server: nginx/1.14.2
Date: Wed, 03 Nov 2021 12:46:19 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: https://@IP

Ces headers peuvent être modifiés et il est possible d’en rajouter

Changer les en-têtes sous NGINX

Paquet nécessaire

Il faut que le paquets nginx-extras soit installé, pour le vérifier :

# dpkg -l nginx* | grep ^ii
ii nginx 1.14.2-2+deb10u4 all small, powerful, scalable web/proxy server
ii nginx-common 1.14.2-2+deb10u4 all small, powerful, scalable web/proxy server - common files
ii nginx-extras 1.14.2-2+deb10u4 amd64 nginx web/proxy server (extended version)

Si ce n’est pas le cas installez-le

Modifier les en-têtes

Il faut ouvrir le fichier de configuration /etc/nginx/nginx.conf et dans la partie http ajouter/modifier vos headers :

http {
[...]

more_set_headers 'HTTP/1.1 418 I\'m a teapot';
more_set_headers 'Server: nginx/1.14.2 ou peut-être Apache je sais plus';
more_set_headers 'Date: Wed, 04 Nov 2099 12:46:19 GMT';
more_set_headers 'Content-Type: text/html';
more_set_headers 'Content-Length: 185';
more_set_headers 'Connection: keep-alive';
more_set_headers 'Location: faites un ping pour avoir le même résultat';
more_set_headers 'Futur: La date du dessus indique que nous sommes dans le futur';
more_set_headers 'Secret : 1c1 s3 7r0uv3 un m3554g3 7r35 53cr37';

[...]
}

Il faut ensuite relancer NGNIX

La commande curl nous montre les modifications effectuées

# curl -I http://@IP
HTTP/1.1 301 Moved Permanently
Content-Type: text/html
Connection: keep-alive
Location: faites un ping pour avoir le même résultat
HTTP/1.1: 418 I'm a teapot
Server: nginx/1.14.2 ou peut-être Apache je sais plus
Date: Wed, 04 Nov 2099 12:46:19 GMT
Content-Length: 185
Connection: keep-alive
Futur: La date du dessus indique que nous sommes dans le futur
Secret: 1c1 s3 7r0uv3 un m3554g3 7r35 53cr37

Note : Deux headers sont en double, parcequ’il n’ont pas été nommés correctement
@todo : les headers en double

Liste de tous les en-têtes

@todo

> Partager <