Maison >Tutoriel système >Linux >Masquer la version de Nginx sous Linux et Unix

Masquer la version de Nginx sous Linux et Unix

WBOY
WBOYavant
2024-02-09 19:50:29720parcourir

Utilisez CLI pour afficher la version actuelle de Nginx

Nginx affichera la version sur les pages d'erreur et dans le champ d'en-tête de réponse "Serveur". Nous pouvons le vérifier en utilisant la commande suivante : Exemple de résultat :

$ curl -I https://your-domain
$ curl -I https://www.cyberciti.biz
HTTP/2 200 server: nginx/1.17.10 (Ubuntu)date: Tue, 23 Jun 2020 09:36:49 GMTcontent-type: text/html; charset=UTF-8strict-transport-security: max-age=15768000x-whome: l-ncbz01-mg-wg

Voici le résultat de ma page d'erreur HTTP/502 affichant les informations :

Masquer la version de Nginx sous Linux et Unix

Utilisez la directive server_tokens pour masquer la version de Nginx

Vous devez désactiver server_tokens pour masquer la version du serveur Nginx sur les systèmes Linux et Unix. Modifiez votre fichier nginx.conf à l'aide d'un éditeur de texte tel que vim/nano :

Nous ne pouvons définir des server_tokens que dans un contexte http, serveur ou emplacement. J'ajouterai à ma section http : Voici à quoi ça ressemble :

$ sudo vim /etc/nginx/nginx.confserver_tokens off;
http {        ## Basic Settings ##        charset utf-8;        sendfile on;        tcp_nopush on;        tcp_nodelay on;        log_not_found off;        keepalive_timeout 65;        types_hash_max_size 2048;        client_max_body_size 16M;        include /etc/nginx/mime.types;        default_type application/octet-stream;        ## Hide Nginx version ##        server_tokens   off;        ## Security headers for Nginx ##         add_header Strict-Transport-Security "max-age=15768000" always;        add_header X-Content-Type-Options "nosniff" always;        add_header X-Frame-Options "SAMEORIGIN" always;        add_header X-Xss-Protection "1; mode=block" always;        add_header Referrer-Policy  strict-origin-when-cross-origin;        add_header Feature-policy "accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment 'none'; usb 'none'";        add_header Content-Security-Policy   "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;        ## SSL Settings ##        ssl_protocols TLSv1.3;        access_log /var/log/nginx/access.log;        error_log /var/log/nginx/error.log;        ## Virtual Host Configs ##        include /etc/nginx/conf.d/*.conf;        include /etc/nginx/sites-enabled/*;}

Redémarrez ou rechargez le serveur Nginx normalement :

sudo nginx -tsudo nginx -s reload

Vérifiez si la version de Nginx est masquée

Utilisez la commande curl comme ci-dessous : Regardez, mon serveur Nginx n'affiche aucune version :

$ curl -I https://your-domain-name-here
$ curl -I https://www.cyberciti.biz

HTTP/2 200 server: nginxdate: Tue, 23 Jun 2020 09:43:17 GMTcontent-type: text/html; charset=UTF-8strict-transport-security: max-age=15768000

Firefox a également confirmé que j'ai également réussi à masquer la version de Nginx :

Masquer la version de Nginx sous Linux et Unix

Masquer les autres valeurs possibles pour la version Nginx

La syntaxe est la suivante : Les paramètres par défaut sous Linux, *BSD et Unix sont les suivants :

server_tokens on | off | build | string;
server_tokens on;

Supprimer les versions des en-têtes du serveur et des pages d'erreur

Nous pouvons activer ou désactiver l'émission de la version nginx en modifiant la valeur suivante :
on : affiche le numéro de version.
off : désactive l'affichage du numéro de version.
build : assurez-vous que nous émettons un nom de build ainsi que la version de nginx. Vous devez disposer de la version 1.11.10 de Nginx.
string : Disponible pour les abonnements commerciaux uniquement, à partir de la version 1.9.13, il est possible d'utiliser une chaîne avec une variable pour afficher les valeurs du champ d'en-tête de réponse de signature et "serveur" sur la page d'erreur des paramètres. Une chaîne vide désactive l'émission du champ "serveur".

Définissez un numéro de version personnalisé dans Nginx

Par exemple, les utilisateurs d'un abonnement commercial (Nginx Plus) peuvent le définir sur une fausse version de serveur et un nom personnalisé : Rechargez le serveur Nginx à l'aide de la commande service ou de la commande systemctl : De même, testez-le à l'aide de la commande curl comme suit :

;$ service nginx reload$ curl -I http://127.0.0.1/
Masquer la version de Nginx sous Linux et Unix

La version cachée est en sécurité dans l'obscurité

Oui, c'est la sécurité grâce à des fonctionnalités secrètes. C'est une des méthodes de défense en profondeur. Toutefois, cela ne devrait pas être la principale forme de défense. Vous devez écrire du code sécurisé. Installez un pare-feu, notamment un WAF (Web Application Firewall). Il n'y a aucune raison d'exposer la version de Nginx, PHP ou Python car cela pourrait constituer une information utile pour un attaquant. Gardez à l'esprit que les systèmes d'exploitation Linux/Unix, les applications Web/Nginx doivent rester sécurisés, que la version de Nginx soit publique ou non. Cependant, nous n’offrons aucun avantage aux attaquants en publiant les numéros de version.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer