Hoy un amigo me contactó para decirme que sería buena idea ocultar la información que ofrece mi servidor web acerca de las aplicaciones que tengo instaladas. Para que se entienda, normalmente si no se configura lo contrario, hay formas de saber que versión de NGinx, PHP, WordPress, etc… tenemos instalado. Esto se presta para que personas sin escrúpulos intenten, en el mejor de los casos, hacerte una broma y hackear nuestro sitio.
Una forma muy simple de obtener esta información es usar una extensión como Wappalyzer, disponible para Google Chrome y Mozilla Firefox como podemos ver en la siguiente captura.
Y en efecto, esta extensión me mostraba la versión de mi servidor web (NGinx), de WordPress y HHVM, que es básicamente el stack que vengo usando desde algún tiempo y que mostré como ponerlo en marcha fácilmente.
Ocultando la información de NGinx
En el caso de NGinx lo que debemos hacer es editar el fichero /etc/nginx/nginx.conf y descomentar o añadir en caso de que no esté la línea:
server_tokens off;
y justo debajo de esta añadir esto:
fastcgi_hide_header Server; fastcgi_hide_header Pragma; fastcgi_hide_header Expires; fastcgi_hide_header Cache-Control; fastcgi_hide_header Set-Cookie; fastcgi_hide_header X-Powered-By;
Posteriormente guardamos y reiniciamos NGinx (en el caso de Ubuntu):
service nginx restart
Con esto se me ocultó la versión de NGinx y la información de HHVM.
Ocultando la información de WordPress
Aunque existen plugins para ocultar la versión de WordPress y evidentemente es una vía bastante rápida, en mi caso lo que hice fue añadir al fichero functions.php de mi tema, el siguiente código:
remove_action('wp_head', 'rsd_link'); remove_action('wp_head', 'wlwmanifest_link'); function remove_generator() { return ''; } add_filter('the_generator', 'remove_generator');
Con esto es suficiente, por lo menos para mi, pues como pueden ver en la siguiente imagen, no sale la versión que estoy usando de cada componente de mi stack.
Y si usamos Apache?
Como es lógico esto me funciona a mi por las aplicaciones que tengo instaladas, pero puede darse el caso de que no tengamos NGinx, sino Apache el procedimiento es un tanto diferente, pues tendremos que modificar los valores de las directivas ServerTokens y ServerSignature, en el caso de la primera en Prod, y la segunda en Off, en el fichero /etc/apache2/conf.d/security.
Y eso es todo por ahora.. Saludos
Actualización: Tuve que eliminar/comentar en el fichero nginx.conf el parámetro:
fastcgi_hide_header Set-Cookie;
Debido a que, cuando intentaba acceder al panel de control, me decía que las Cookies estaban bloqueadas y no me permitía acceder.
Deja una respuesta