Ich betreibe also schon seit einiger Zeit Nginx-Server und habe eine ganze Reihe von Änderungen vorgenommen, um es für einen meiner Kunden richtig zu machen. Sie haben kürzlich Pen-Tester eingestellt und möchten, dass ich die Sicherheit verbessere. Daher muss ich den Build-Namen von Nginx verbergen, um ihre Anforderungen zu erfüllen. Allerdings scheint es, dass ich Nginx dafür neu kompilieren muss. Ich frage mich nur, ob es eine Möglichkeit gibt, alle meine Änderungen an der Konfiguration usw. beizubehalten, wenn ich mit der Build-Name-Option neu kompiliere.
Antwort1
Ihre Konfigurationen ändern sich nicht, wenn nginx neu erstellt wird. Wenn make install
vorhandene Konfigurationen erkannt werden, werden diese nicht überschrieben. Um ganz sicher zu gehen, kopieren Sie einfach nginx.conf
nach nginx.conf.bak
oder Ähnliches. Es klingt jedoch so, als bräuchten Sie Konfigurationsmanagement und eine Art Build-Prozess, der Ihnen bei einem Sicherheitsaudit zusätzliche Punkte einbringt. Ich würde zumindest in Betracht ziehen, ein lokales git
Repository für Ihre Konfigurationen einzurichten und möglicherweise travis
Releases jenkins
zu verwalten, da Sie über neue Sicherheitsupdates auf dem Laufenden bleiben müssen.
Für alle Suchen, die hierher führen, wird die Nginx-Version zur Kompilierungszeit durch die Variable festgelegt . Ändern Sie sie jedoch nicht global, da andere Prozesse sie verwenden. Die Variable muss an den folgenden Stellen NGINX_VER
manuell geändert werden :ngx_http_header_filter_module.c
static u_char ngx_http_server_string[] = "Server: yourservername" CRLF;
static u_char ngx_http_server_full_string[] = "Server: yourservername/1.0" CRLF;
static u_char ngx_http_server_build_string[] = "Server: " NGINX_VER_BUILD CRLF;
Antwort2
Die Antwort, die ich brauchte, erhielt ich aus diesem Kommentar:https://stackoverflow.com/questions/24594971/how-to-changehide-the-nginx-server-signature/38967105#38967105
Wenn Sie in Ubuntu arbeiten, dann
Installieren Sie zuerst nginx-extras
sudo apt-get install nginx-extras
Gehen Sie zu /etc/nginx/nginx.conf und fügen Sie unter http hinzu:
http {
more_set_headers "Server: Your_New_Server_Name";
server_tokens off;
}
Starten Sie nginx neu
sudo service nginx restart