Disabilitare le HTTP Response Headers in IIS 10

Quando si pubblica un server web in Internet è buona norma disabilitare la possibilità da parte degli utenti esterni di reperire semplicemente informazioni sull’architettura, tecnologie utilizzate e versioni del software. Nel caso specifico di IIS potrebbe essere utile disabilitare le HTTP Response Headers come indicato nel post Remove Unwanted HTTP Response Headers. Disabilitazione pubblicazione Server Header tramite registry Eseguendo ad esempio un telnet su porta 80  verso un IIS installato su un Windows Server 2016 si otterrà un output simile al seguente:

HTTP/1.1 400 Bad Request Content-Type: text/html; charset=us-ascii Server: Microsoft-HTTPAPI/2.0 Date: Fri, 14 Apr 2017 07:53:52 GMT Connection: close Content-Length: 326

Per disabilitare ad esempio il server header “Microsoft-HTTPAPI/2.0” è possibile creare la chiave di registro DisableServerHeader di tipo REG_DWORD  in HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters e impostarla al valore 1 e riavviare IIS tramite il comando:

NET STOP http NET START http IISRESET /RESTART

Disabilitazione pubblicazione informazioni server web tramite Request Filtering Andando poi ad eseguire un test online mediante uno dei tanti siti che permette di rilevare le informazioni di un server web come ad esempio Free Website Malware and Security Scanner (di sucuri.net) o Web server HTTP request and response header information (di kloth.net) si può notare che è ancora possibile ricavare l’informazione su tipo e la versione del server web “Microsoft-IIS/10.0 ” in quanto tale informazioni sono esposte dal driver http.sys:

HTTP/1.1 200 OK Content-Length: 505 Content-Type: text/html Last-Modified: Thu, 13 Apr 2017 16:17:54 GMT Accept-Ranges: bytes ETag: “e080ae8171b4d21:0” Server: Microsoft-IIS/10.0 Date: Fri, 14 Apr 2017 08:46:21 GMT Connection: close

Per disabilitare la pubblicazione della versione di IIS in IIS 10 è possibile utilizzare i Request Filtering che vengono resi disponibili mediate l’opzione Request Filtering del ruolo Web Server che è installata per default:

Per rimuovere il server header aprire l’IIS Manager e selezionare il server quindi nel gruppo Management l’opzione Configuration Editor, selezionare la sezione system.webServer/security/requestFiltering e impostare a True l’opzione removeServerHeader (a riguardo si veda anche What’s new in IIS 10 – Microsoft Internet Information Services 10 New Features):

Dopo aver modificato la proprietà e applicato la modifica riavviare IIS tramite il comando:

IISRESET /RESTART

Disabilitazione pubblicazione Server Header tramite URL Rewrite Per disabilitare la pubblicazione della versione di IIS occorre però ancora rimuovere il Server Header che pubblica il valore della server variable RESPONSE_SERVER, è possibile eseguire tale configurazione tramite l’estensione URL Rewrite disponibile per IIS 7, IIS 7.5, IIS 8, IIS 8.5, IIS 10. Dopo aver installato URL Rewrite occorre eseguire la seguente procedura per disabilitare tramite una outbound rule la server variable RESPONSE_SERVER:

Passo 1: Aprire l’IIS Manager e selezionare il server quindi nel gruppo Management l’opzione Configuration Editor

Passo 2: Aprire URL Rewrite e aggiungere la variabile server RESPONSE_SERVER

Passo 3: Aggiungere una Outbound rule a livello server per disabilitare la visualizzazione della variabile server RESPONSE_SERVER

Dopo aver modificato la proprietà e applicato la modifica riavviare IIS tramite il comando:

IISRESET /RESTART

Per ulteriori informazioni si vedano:

Per eseguire test sul server web è possibile utilizzare i seguenti tool online: