Cómo ocultar la versión de Nginx en los mensajes que devuelve un servidor web (en los encabezados). Este procedimiento es recomendable por seguridad, para que un posible atacante no conozca la versión del servidor web Nginx que estamos usando. Si la conoce, puede buscar las posibles vulnerabilidades que tenga y explotarlas.
- Páginas de error o aviso en servidor web Nginx mostrando la versión.
- Ocultar versión de servidor web Nginx en páginas de error y aviso.
Páginas de error o aviso y encabezados en servidor web Nginx mostrando la versión
Cuando accedemos a un recurso web que está bloqueado o cuando se produce un error en el acceso al servidor web, Nginx nos devolverá una página web similar a esta:

Como podemos observar, muestra tanto el nombre del servidor web «nginx» como la versión «1.22.1». Esta información puede ser utilizada por un atacante para buscar las vulnerabilidades de esa versión y explotarlas.
La información de la versión de Nginx aparecerá tanto en el HTML de la página web devuelta por el servidor como en el encabezado del sitio web, que se puede obtener con el comando curl:
|
1 |
curl -I proyectoa.com |
Nos devolverá algo así como:
|
1 2 3 4 5 6 7 8 9 |
HTTP/1.1 301 Moved Permanently Server: nginx/1.22.1 Date: Wed, 28 Feb 2024 11:03:20 GMT Content-Type: text/html Content-Length: 169 Connection: keep-alive Location: https://proyectoa.com X-Frame-Options: SAMEORIGIN Access-Control-Allow-Origin: * |
Podemos comprobar que en la cabecera «Server» devuelve tanto el nombre del servidor como la versión.
A continuación, explicamos cómo evitar que aparezca la versión del servidor web en las páginas de error o aviso.
Ocultar versión de servidor web Nginx en páginas de error y aviso y en encabezados
Para que el servidor web Nginx, en sus respuestas, no muestre la versión, editaremos el fichero de configuración de Nginx, que habitualmente está en: /etc/nginx/nginx.conf, con:
|
1 |
sudo nano /etc/nginx/nginx.conf |
En la sección http { añadiremos esta línea:
|
1 |
server_tokens off; |
Guardaremos los cambios pulsando Control + W y cerraremos la edición del fichero pulsando Control + X. Para aplicar los cambios deberemos reiniciar el servicio de Nginx, podemos hacerlo con el comando Linux:
|
1 |
sudo systemctl restart nginx |
Volveremos a comprobar alguna página que sepamos que da error o aviso para ver que, ahora, nos mostrará el mensaje sin la versión de Nginx:

Si hacemos ahora un curl:
|
1 |
curl -I proyectoa.com |
Nos devolverá la misma información que anteriormente, pero sin la versión de Nginx:
|
1 2 3 4 5 6 7 8 9 |
HTTP/1.1 301 Moved Permanently Server: nginx Date: Wed, 28 Feb 2024 11:03:20 GMT Content-Type: text/html Content-Length: 169 Connection: keep-alive Location: https://proyectoa.com X-Frame-Options: SAMEORIGIN Access-Control-Allow-Origin: * |