Como ocultar la información de nuestro servidor web [Actualizado]

Escrito por systeminside en y tuvo 7 comentarios
Servidores VPS Server

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.

Wappalyzer

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.

Wappalyzer

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.

systeminside

systeminside
Blogger, Melómano, Administrador de Sistemas, Diseñador Web.

¿Ideas? ¿Comentarios?

  1. Carlos Arroyo 10 meses atrás

    Buena info, gracias por compartir. En algunas ocaciones Wappalyzer muestra la distribución de linux en mi caso ubuntu, Como se puede ocultar ?

    Responder
  2. Eugenio M. Vigo 10 meses atrás

    Interesante entrada. Una pregunta: ¿qué extensión de Firefox es la que te muestra el stack de tu web? Parece bastante útil justamente para saber qué información se está proporcionando.
    Un abrazo!

    Responder
    1. rawBasic 10 meses atrás
      @Eugenio M. Vigo:

      Lo dice en el mismo post e.e.. Wappalyzer es el plugin.

      Responder
    2. @Eugenio M. Vigo:

      Wappalyzer. Gracias por pasarte 😉

      Responder
  3. erm3nda 8 meses atrás

    Yo si tengo una ideass.

    Mejor que ocultar un dato es mentir sobre él, así el usuario “observador” pierde el tiempo con una pista falsa.
    Eso es más viejo que el cagar…

    Lo mismo aplica para los headers de squid, para la version de un servidor, o para el fichero txt de turno que identifica tu wordpres, u otros.

    Sabiendo como es identificada cada plataforma se sabe del mismo modo como decir al sistema que diga otra.

    Por ejemplo, yo en algunos servidores les pongo de hostname “error”, así a veces eres “saltado” basado en regexp o malas comprobaciones :-), a veces pongo “google-ban-service” y al usuario se le van las ganas de seguir siquiera mirando por si las moscas.

    A los servicios ocultos o que funcionan con uuids/sesiones/claves por default pinto un error falso tipo “mysql error x” (un error real que no pinte nada real) y así piensan que algo está mal o que el servicio no está “on” y por las mismas se piran 🙂

    Nota:
    Tienes una web muy bonita.
    Wappalyzer es un must-have para firefox y para cualquiera que toque algo de diseño.

    Responder
    1. @erm3nda:

      Jajajaja, muy creativo jajajaja. Gracias por pasarte y dejar las ideas 😀

      Nota: no entro en debate o brainstorm porque no tengo mucho tiempo 😉

      Responder

¿...?