Ich möchte nicht, dass jemand erkennt, dass ich NGINX oder sogar Ubuntu aus dem Internet verwende. Es gibt Tools (z. B. BuiltWith), mit denen die Server überprüft werden, um festzustellen, welche Tools sie verwenden. Einige Knackwerkzeuge können auch beim Lösen helfen. Was ist das Beste / Nächste, das ich erreichen kann, um all diese Informationen von außen zu verbergen?
80
Wenn Sie nginx mit apt-get in Debian oder Ubuntu installiert haben, müssen Sie möglicherweise das Paket nginx-extras installieren, um den "Server" -Header zu setzen oder zu löschen
Sobald dies erledigt ist, können Sie die folgenden Zeilen in nginx.conf hinzufügen (normalerweise /etc/nginx/nginx.conf):
So löschen Sie den Header "Server" insgesamt:
So legen Sie eine benutzerdefinierte Zeichenfolge als "Server" fest
quelle
more_clear_headers Server;
Arbeiten auch an Debian Jessie 8.5 nginx-Version: nginx / 1.6.2http
,server
,location
, undlocation if
Kontexte. Quelle: ngx_headers_more documentationsudo apt-get install nginx-extras
und setzen Sie dann die Headerunknown directive "more_set_headers"
. Gelöst durch explizites Aktivieren des Moduls in/etc/nginx/nginx.conf
. Einfachload_module modules/ngx_http_headers_more_filter_module.so;
am Anfang der Konfigurationsdatei hinzufügen .@ Martin F. Ja, das tut es. Sie müssen es aus dem Quellcode kompilieren und die erforderlichen Änderungen vornehmen, bevor Sie den Quellcode kompilieren können.
Ich nehme an, Sie haben die letzte stabile Version heruntergeladen, die Sie dekomprimiert haben, und Sie wissen, wo sich die Dateien befinden. Wenn dies der Fall ist, gehen Sie wie folgt vor:
Suchen Sie dann nach Zeile 48, wenn ich mich richtig erinnere.
Ersetzen Sie nginx durch MyWhateverServerNameIWant
Dann
suche nach der Linie
Ändern Sie "nginx /" in "MyWhateverServerNameIWant /", damit es liest
Schließlich, wenn Sie auch die Versionsnummer ändern möchten
suche die Zeile #define NGINX_VERSION "1.0.4"
und ändern Sie "1.0.4" für die gewünschte Version. Zum Beispiel wird es lesen
Ich hoffe es hilft. Dennoch. Das Sichern eines Servers geht weit darüber hinaus, nicht zu zeigen, was läuft. PHP ist von Natur aus unsicher, genauso wie Linux. Natürlich kann Linux ziemlich sicher sein, wenn alle erforderlichen Maßnahmen ergriffen werden, um eine angemessene Sicherheit zu erreichen. In Bezug auf PHP würde ich die Verwendung von Suoshin empfehlen , um die Sicherheit Ihres Codes zu verbessern .
quelle
Nachdem ich viel Zeit damit verbracht hatte, eine benutzerdefinierte Version von Nginx auf Ubuntu zu erstellen, wurde mir klar, dass Sie dafür das Lua-Modul verwenden können.
Wenn Sie unter Ubuntu 14.04 das
nginx-extras
Paket installieren , können Sie den Server-Header entfernen, indem Sie Folgendes verwenden:header_filter_by_lua 'ngx.header["server"] = nil';
Wenn Sie dies in den http-Block werfen, fehlt jeder Anfrage ein
Server
Header.Wenn dies nicht funktioniert
nginx -V
, überprüfen Sie, ob das Lua-Modul in Ihrer Kopie von Nginx kompiliert ist. Wenn nicht, gibt es wahrscheinlich ein alternatives Paket, mit dem Sie es bekommen können.quelle
nginx-extra
hatmore_set_headers "Server: whatever";
funktioniert, also +1: DAnstelle der Anweisung header_filter_by_lua wird empfohlen, die neue Anweisung header_filter_by_lua_block zu verwenden, die die Lua-Quelle direkt zwischen geschweiften Klammern (
{}
) einfügt . Damit ist es nicht erforderlich, Sonderzeichen zu entkommen.header_filter_by_lua_block { ngx.header["server"] = nil }
https://github.com/openresty/lua-nginx-module#header_filter_by_lua_block
quelle
In erster Linie: Warum ein zusätzliches Modul als Header More Nginx verwenden? Nur um den Serverheader auszublenden. Bei einigen Zeilen kann ein einfacher Patch dieselbe Lösung für Sie erreichen.
Da die Verwendung eines zusätzlichen Moduls zu Instabilität (wie gut wurde es mit Ihrer Umgebung getestet? Mit Ihren anderen Modulen usw.) oder Unsicherheit führen kann (wird dieses Modul regelmäßig mit Fehler- und / oder Sicherheitskorrekturen aktualisiert?)
Zweitens. Dieser Thread beschreibt als Antwort 279389, wie Sie den Nginx-Code anpassen können, um den Server-Header zu ändern. Problem ist, dass sie HTTP / 2 vergessen haben. Kurz gesagt, wird sich nichts ändern. Der Serverheader ist weiterhin sichtbar.
Weniger ist mehr ist besser. Ok, ich gebe zu, ich habe auch lange nach einer guten Lösung gesucht. Aber endlich gefunden:
Patch zum Entfernen des Nginx-Server-Headers
Ich bin endlich von diesem nervigen Nginx-Server-Header befreit.
quelle
Führen Sie diese Bash-Funktion im Nginx-Quellcode-Ordner aus. In der nginx- $ -Version, nicht in src /.
Basierend auf dieser Antwort .
quelle
Beziehen Sie sich auf diesen Kern . Wird dir sicherlich helfen.
quelle