Verwenden Sie CLI, um die aktuelle Nginx-Version anzuzeigen
Nginx zeigt die Version auf Fehlerseiten und im Antwortheaderfeld „Server“ an. Wir können dies mit dem folgenden Befehl überprüfen: Beispielausgabe:
$ 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
Dies ist die Ausgabe meiner HTTP/502-Fehlerseite mit den folgenden Informationen:
Verwenden Sie die server_tokens-Direktive, um die Nginx-Version auszublenden
Sie müssen server_tokens auf „off“ setzen, um die Nginx-Serverversion auf Linux- und Unix-ähnlichen Systemen auszublenden. Bearbeiten Sie Ihre nginx.conf-Datei mit einem Texteditor wie vim/nano:
Wir können server_tokens nur im http-, Server- oder Standortkontext festlegen. Ich füge zu meinem http-Bereich hinzu: So sieht es aus:
$ 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/*;}
Starten Sie den Nginx-Server normal neu oder laden Sie ihn neu:
sudo nginx -tsudo nginx -s reload
Überprüfen Sie, ob die Nginx-Version ausgeblendet ist
Verwenden Sie den Curl-Befehl wie folgt: Sehen Sie, mein Nginx-Server zeigt keine Version an:
$ 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 hat außerdem bestätigt, dass ich auch die Nginx-Version erfolgreich ausgeblendet habe:
Andere mögliche Werte für die Nginx-Version ausblenden
Die Syntax lautet wie folgt: Die Standardeinstellungen unter Linux, *BSD und Unix lauten wie folgt:
server_tokens on | off | build | string; server_tokens on;
Versionen aus Server-Headern und Fehlerseiten entfernen
Wir können die Ausgabe der Nginx-Version aktivieren oder deaktivieren, indem wir den folgenden Wert ändern:
on: Zeigt die Versionsnummer an.
aus: Anzeige der Versionsnummer ausschalten.
Build: Stellen Sie sicher, dass wir einen Build-Namen sowie die Nginx-Version ausgeben. Sie müssen über die Nginx-Version 1.11.10 verfügen.
Zeichenfolge: Nur für kommerzielle Abonnements verfügbar. Ab Version 1.9.13 ist es möglich, eine Zeichenfolge mit einer Variablen zu verwenden, um die Signatur- und „Server“-Antwort-Header-Feldwerte auf der Einstellungsfehlerseite anzuzeigen. Eine leere Zeichenfolge deaktiviert die Ausgabe des Felds „Server“.
Legen Sie eine benutzerdefinierte Versionsnummer in Nginx fest
Zum Beispiel können Benutzer eines kommerziellen Abonnements (Nginx Plus) eine gefälschte Serverversion und einen benutzerdefinierten Namen festlegen: Laden Sie den Nginx-Server mit dem Befehl „service“ oder dem Befehl „systemctl“ neu. Testen Sie ihn ebenfalls mit dem Befehl „curl“ wie folgt:
;$ service nginx reload$ curl -I http://127.0.0.1/
Die versteckte Version ist sicher im Dunkeln
Ja, es ist Sicherheit durch verdeckte Funktionalität. Es handelt sich um eine der Methoden der Tiefenverteidigung. Es sollte jedoch nicht die primäre Form der Verteidigung sein. Sie müssen sicheren Code schreiben. Installieren Sie eine Firewall, insbesondere eine WAF (Web Application Firewall). Es gibt keinen Grund, die Nginx-, PHP- oder Python-Version offenzulegen, da sie für einen Angreifer nützliche Informationen sein könnten. Bedenken Sie, dass Linux/Unix-Betriebssysteme, Web-Apps/Nginx sicher bleiben sollten, unabhängig davon, ob die Nginx-Version öffentlich ist oder nicht. Allerdings bieten wir Angreifern durch die Veröffentlichung von Versionsnummern keinen Vorteil.
Das obige ist der detaillierte Inhalt vonNginx-Version unter Linux und Unix ausblenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!