Come rimuovere Server: header dalla risposta HTTP con Apache?


20

Vorrei rimuovere la linea:

Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g

dalle risposte HTTP del mio server, ma non sono riuscito a trovare altro che modificare include/ap_release.he compilare Apache da solo. Mi chiedevo se c'è un modo che non conosco?

Risposte:


16

È possibile rimuovere o mascherare l'identificazione del server da Http-Header utilizzando il firewall dell'applicazione Web open source ModSecurity .

Mascheramento dell'identità del server

Una tecnica che spesso aiuta a rallentare e confondere gli aggressori è la modifica dell'identità del server web. I server Web in genere inviano la propria identità con ogni risposta HTTP nell'intestazione del server. Apache è particolarmente utile qui, non solo inviando il suo nome e la versione completa per impostazione predefinita, ma consente anche ai moduli server di aggiungere le loro versioni.

Per cambiare l'identità del server web Apache dovresti andare nel codice sorgente, trovare dove il nome "Apache" è hardcoded, cambiarlo e ricompilare il server. Lo stesso effetto può essere ottenuto usando il

Direttiva SecServerSignature:

SecServerSignature "Microsoft-IIS/5.0"

Va notato che, sebbene funzioni abbastanza bene, gli aggressori (e gli strumenti) esperti possono utilizzare altre tecniche per "impronte digitali" sul server web. Ad esempio, i file predefiniti, i messaggi di errore, l'ordinamento delle intestazioni in uscita, il modo in cui il server risponde a determinate richieste e simili - possono tutti dare la vera identità. Esaminerò ulteriormente il supporto per il mascheramento dell'identità nelle versioni future di mod_security.

Se cambi la firma di Apache ma sei infastidito dallo strano messaggio nel registro degli errori (alcuni moduli sono ancora visibili - questo influisce solo sul registro degli errori, dall'esterno funziona ancora come previsto):

[Fri Jun 11 04:02:28 2004] [notice] Microsoft-IIS/5.0 mod_ssl/2.8.12 OpenSSL/0.9.6b \ configured -- resuming normal operations

Quindi dovresti riorganizzare l'ordine di caricamento dei moduli per consentire a mod_security di essere eseguito per ultimo, esattamente come spiegato per il chrooting.

Nota

Affinché questa direttiva funzioni, è necessario lasciare / impostare ServerTokens su Full.

Quando la direttiva SecServerSignature viene utilizzata per modificare la firma del server pubblico, ModSecurity inizierà a scrivere la firma reale nel registro degli errori, per consentire all'utente di identificare il server Web e i moduli utilizzati.

Fonte: Manuale di riferimento ModSecurity


È in esecuzione in questo momento ma penso che non sia intelligente usare un altro nome server esistente perché è possibile attivare azioni di attacco.
Codebeat

27

Se si imposta ServerTokenssu " Prod", è possibile ridurre l'intestazione su " Server: Apache". Consulta la documentazione per l'elenco completo delle opzioni:

Documentazione per Apache 2.2

Documentazione per Apache 2.4

Nota: le impostazioni sono le stesse in entrambe le versioni, tuttavia la documentazione 2.4 aggiunge questa nota:

L'impostazione di ServerTokens su un valore minimo è sconsigliata perché rende più difficile il debug di problemi interoperativi. Si noti inoltre che disabilitando il Server: l'intestazione non fa nulla per rendere il server più sicuro. L'idea di "sicurezza attraverso l'oscurità" è un mito e porta a un falso senso di sicurezza.

Se vuoi rimuovere completamente la parola "Apache", dovrai modificare la fonte.


+1 tnx per la risposta, ho dimenticato di menzionare in questione ne ero a conoscenza ma voglio che dica Microsoft IIS o qualcosa del genere. Avrei dovuto chiarirlo.
Neo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.