nginx mit Build-Namen neu kompilieren und aktuelle Konfigurationen beibehalten

nginx mit Build-Namen neu kompilieren und aktuelle Konfigurationen beibehalten

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 installvorhandene Konfigurationen erkannt werden, werden diese nicht überschrieben. Um ganz sicher zu gehen, kopieren Sie einfach nginx.confnach nginx.conf.bakoder Ä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 gitRepository für Ihre Konfigurationen einzurichten und möglicherweise travisReleases jenkinszu 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_VERmanuell 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

verwandte Informationen