Nginx - jak skrýt signature hlavičky

Problém

Posílat do světa informace o tom, jaké konkrétní verze používá náš webserver není nejlepší nápad. Existují databáze zranitelností, kde lze dohledat, jak využít zranitelnost v konkrétní verzi určitého software. Internetem se prohání roboti, kteří tyto databáze zpracovávají, skenují webové stránky a snaží se najít zranitelnosti, aby je zneužili ke kompromitaci serveru.

Pokud webserver v HTTP hlavičkách posílá např:

Server: nginx/1.18.0
X-Powered-By: PHP/7.3.19-1~deb10u1

Dalo by se to v případě starší a zranitelné verze přirovnat k obrázku:

Klíč najdete pod rohožkou


Co s tím? Přestat tyto informace sdělovat!

Jak na to?

Nejjednoduší je upravit konfigurační soubor /etc/nginx/nginx.conf.

#...
http {
    #...
    server {
        #...

        # vypneme informace ve verzi nginx v hlavičce Server 
        server_tokens off;

        # odstraníme hlavičku X-Powered-By, kde se vypisuje verze PHP
        proxy_hide_header X-Powered-By;
        fastcgi_hide_header X-Powered-By;
    }
}

Po uložení souboru nezapomene nginx restartovat. Po restartu bychom měli vidět v hlavičkách pouze:

Server: nginx

Naprostým základem nadále zůstává používat aktuální a záplatovaný software.

Pokud chcete pouze skrýt to, že používáte zastaralou verzi PHP, tak na toto zapomeňte a raději aktualizujte!