2014-07-06 2 views
15

Ich kann die Nginx-Version ausblenden, indem ich die Option server_tokens auf off setze. Aber nicht in der Lage, die Nginx Server-Signatur zu ändern.Wie kann man die Nginx Server Signatur ändern (verstecken)?

Schritte I, tat

1.) den Server ändern Nginx Name in der Quelldatei (src/http/ngx_http_header_filter_module.c) auf "My-Server". Danach kompiliert das Nginx. Aber es funktioniert nicht, wenn ich die URL lade. Seltsam ist, dass ich meine aktualisierte Signatur sehen kann, wenn ich den curl-Befehl verwende. Aber das gleiche wird nicht im Browser aktualisiert.

2.) So versuchte ich 3rd-Party-Modul (Header-mehr-Nginx-Modul). Das funktioniert auch nicht. Aktualisierter Name über Curl. Aber nicht im Browser. Installieren

+0

Ist das, wie Sie den Entwicklern von nginx "Danke" sagen? – VBart

+1

kann Ihr Browser nur die Überschriften zwischengespeichert haben? versuche einen anderen Browser oder Strg-F5/Ctrl-R in deinem aktuellen – folibis

+0

@folibis, Ja, habe ich in verschiedenen Browsern überprüft. aber immer noch das gleiche :( – KMG

Antwort

10
  1. HttpHeadersMoreModule - http://wiki.nginx.org/HttpHeadersMoreModule
  2. ändern sie die more_set_headers Direktive.
  3. Laden Sie Nginx neu, um wirksam zu werden.

    Nginx Versionsinformationen ausblenden.

    server_tokens aus;

    Ändern Sie den Servernamen.

    more_set_headers "Server: MyServerName";

+0

Habe das schon ausprobiert und das gleiche an meinem 2. Punkt erklärt. Jede andere Möglichkeit, es zu ändern. – KMG

+0

Welche Version verwenden Sie? Es erfordert mindestens v0.7.44. –

+0

@KMG Ich hatte das gleiche Problem mit "more_set_headers". Die Tatsache, dass es in "Curl" funktioniert hat, zeigte, dass es funktioniert hat. Es stellte sich heraus, dass der Browser die Anfragen zwischenspeichert. Sobald ich das geklärt hatte, war das Problem behoben. –

5

Gehen Sie zu nginx conf und schalten Sie server_tokens aus.

/etc/nginx/nginx.conf 

server_tokens off; 
+7

[Dies entfernt nur die Versionsnummer, nicht den 'Server'-Header oder den Namen" nginx "(http://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens)! Außerdem sollten Sie erwähnen, wo die Konfigurationsoption hinzugefügt werden soll (z. B. zu "http", "server" oder "location"). –

17

Wenn Sie in ubuntu arbeiten dann

  1. Zuerst installieren nginx-extras

    sudo apt-get install nginx-extras 
    
  2. Zum /etc/nginx/nginx.conf und unter http add:

    http { 
        more_set_headers "Server: Your_New_Server_Name"; 
        server_tokens off; 
    } 
    
  3. Restart nginx

    sudo service nginx restart 
    
0

Wenn ModSecurity v2.0 - v2.9, dann in der Conf-Datei, die Sie

SecServerSignature SomeName 

ModSecurity v3 SecServerSignature veraltet, aber ich wurde verwenden können Ich weiß nicht, ob sie es durch etwas anderes ersetzt haben.