Maison >Tutoriel système >Linux >Masquer la version de Nginx sous Linux et Unix
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 :
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 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/
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!