miércoles, 24 de agosto de 2022

Esconder la cabecera Server en nginx



Cómo esconder la versión de nginx o la cabecera server por completo.



Tras una auditoría de seguridad se me ha pedido esconder la versión de nginx corriendo en un servidor.

nginx, tanto en su versión plus como en su versión open source, permite esconder la versión que corre un servidor mediante la directiva server_tokens. Eso es útil para esconder la versión de nginx que se muestra en las páginas de error y en la cabecera Server de cada respuesta.

Las distintas posibilidades de sintaxis son las siguientes:

- server_tokens on: muestra la versión de nginx.
- server_tokens off: no muestra la versión de nginx.
- server_tokens build: muestra el nombre del build junto a la versión.
- server_tokens "string": muestra un string personalizado (plus).
- server_tokens "": no muestra la cabecera server (plus).

Por defecto nginx usa "server_tokens on", es decir, muestra la versión instalada de nginx.

Si quisieramos esconder la versión, como se me pedía a mi, podríamos usar:

server_tokens off;

Esta directiva se puede usar en distintos contextos:

- http: todos los dominios.
- server: un dominio concreto.
- location: una ruta dentro de un dominio concreto.

Asimismo, las dos últimas posibilidades (string personalizado y esconder el nombre del software) sólo están disponibles en nginx plus (la subscripción comercial) desde la versión 1.9.13.

Si queremos obtener los mismos resultados con la versión open source, siempre podemos compilar el código fuente de nginx eliminando todas las referencias a la versión o a nginx en sí mismo.


Fuentes:

http://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens
0

0 comentarios:

Publicar un comentario