Hierzu prüfen wir als erstes mit curl (apt-get install curl) die Server Version.
Der Befehl hierfür lautet:
curl -I -L
Die Ausgabe sieht dann ungefähr so aus:
lin-freith:/# curl -L -I florian.reith.in
HTTP/1.1 200 OK
Server: nginx/0.6.32
Date: Tue, 14 Dec 2010 13:51:54 GMT
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
Accept-Ranges: bytes
Last-Modified: Tue, 15 Jul 2008 16:46:59 GMT
Neben einigen Werten erhalten wir den Namen des Webservers + Version (Server: nginx/0.6.32)
Wer nur die Version verstecken will muss hierzu lediglich die Konfiguration bearbeiten. Hierzu rufen wir die Datei /etc/nginx/nginx.conf mit einem beliebigen Editor auf und fügen irgendwo im Abschnitt „server_tokens off;“ ein.
Dies kann dann wie folgt aussehen:
Beispiel vorher:
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 60;
tcp_nodelay on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Beispiel nachher:
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 60;
tcp_nodelay on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
server_tokens off;
}
Nginx neu starten:
/etc/init.d/nginx restart
Eine erneute Abfrage bringt uns nun dieses Ergebnis:
lin-freith:/# curl -L -I florian.reith.in
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 14 Dec 2010 14:02:54 GMT
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
Accept-Ranges: bytes
Last-Modified: Tue, 15 Jul 2008 16:46:59 GMT
Wie wir sehen wird der Name des Webservers nun ohne Version bekannt gegeben.
Wem das noch nicht reicht, der muss nginx neu installieren bzw. selbst compilen.
Hierfür sichern wir zuerst die alten Konfigurationsdateien:
cp -r /etc/nginx /nginx_bak
Nginx oberflächlich entfernen:
apt-get remove nginx
Neue (stable) Version downloaden:
wget http://nginx.org/download/nginx-0.8.53.tar.gz
Entpacken:
tar xvfz nginx-0.8.53.tar.gz
Wir wechseln nun mit cd in dieses Verzeichnis:
cd nginx-0.8.53/src/http/
Dort editieren wir nun die Datei „ngx_http_header_filter_module.c“.
In Zeile 47 u. 48 finden wir diesen Abschnitt:
static char ngx_http_server_string[] = „Server: nginx“ CRLF;
static char ngx_http_server_full_string[] = „Server: “ NGINX_VER CRLF;
Ich möchte, dass mein Webserver „Reith & Partner Webserver“ heisst, daher ändere ich die Zeilen wie folgt:
static char ngx_http_server_string[] = „Server: Reith & Partner Webserver“ CRLF;
static char ngx_http_server_full_string[] = „Server: Reith & Partner Webserver“ CRLF;
Abspeichern, und compielen.
Wer hier Hilfe braucht kann hier nachschlagen:
http://wiki.nginx.org/InstallOptions
Wir überprüfen unsere Änderung nun:
lin-freith:/# curl -L -I florian.reith.in
HTTP/1.1 200 OK
Server: Reith & Partner Webserver
Date: Tue, 14 Dec 2010 14:27:07 GMT
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
Accept-Ranges: bytes
Last-Modified: Tue, 15 Jul 2008 16:46:59 GMT