Ocultar la versión de Apache en Raspbian

Ocultar datos de nuestro servidor web como su versión y el sistema operativo sobre el que corre es una de esas medidas preventivas que no podemos dejar de tomar  si de verdad queremos proteger nuestro servidor web.

Hay muchas webs que explican como hacerlo, pero ante la falta de alguna que lo haga de manera específica para Raspbian (las rutas de acceso y los nombres de ficheros varían de una distribución a otra) he decidido documentar como hacerlo y de esa forma ayudar a los usuarios de la Raspberry Pi.

A continuación os explicaré como evitar que cualquier visitante pueda saber el tipo de servidor y versión que utilizamos en nuestro servidor web, así como el sistema operativo utilizado, si utilizamos Apache.

Esto es lo que ve por defecto cualquier usuario que intenta visitar una sección de nuestra página web que no existe:

Ocultar la versión de Apache en Raspbian

Ocultar la versión de Apache en Raspbian

Como se puede ver, en apenas segundos, de una manera muy rápida, y sin mayor complicación cualquier visitante de nuestra web puede saber que tipo de servidor web utilizamos, versión utilizada y el sistema operativo sobre el que corre, algo realmente útil para alguien que quiera atacar nuestro servidor sirviéndose de alguna vulnerabilidad.

Y esto lo que por ejemplo puede ver un hacker que intenta acceder a nuestro servidor a través de Telnet.

Le bastará con teclear

telnet 192.168.2.20 80

y a continuación informar

HEAD / HTTP/1.0   (seguido de 2 veces enter)

para tener acceso a algo parecido a esto

HTTP/1.0 500 Internal Server Error
Date: Sat, 13 May 2017 11:29:36 GMT
Server: Apache/2.4.10 (Raspbian)
Connection: close
Content-Type: text/html; charset=utf-8
Connection closed by foreign host.

Evitarlo es sencillo, para ello nos bastará realizar unos cambios en el fichero de configuración de Apache en Raspbian.

Abriremos el fichero con:

sudo nano /etc/apache2/conf-available/security.conf

y cambiaremos su configuración de manera que los siguientes valores queden de esta forma:

ServerTokens Prod
ServerSignature Off

Si existen más lineas indicando ServerTokens, borradlas o poned # antes para que no sean tenidas en cuenta.

Os muestro como quedaría el fichero una vez realizados los cambios

Para salir guardando los cambios pulsaremos CTRL + X, pulsando a continuación Y ó S en función del idioma de nuestro sistema y lo que nos pida.

Para que los cambios surtan efecto, reiniciaremos el equipo

sudo reboot

ó reiniciaremos el servicio con

sudo service apache2 restart

Y comprobaremos que los cambios han surtido efecto:

Repitiendo el intento de acceso a través de Telnet,

telnet 192.168.2.20 80

informando a continuación

HEAD / HTTP/1.0   (seguido de 2 veces enter)

nos debe de salir algo parecido a esto:

HTTP/1.0 500 Internal Server Error
Date: Sat, 13 May 2017 12:06:11 GMT
Server: Apache
Connection: close
Content-Type: text/html; charset=utf-8
Connection closed by foreign host.

Como se puede ver, se puede ver que servidor tenemos pero no su versión ni el sistema operativo sobre el que corre, lo que como he comentado antes complicará la detección de vulnerabilidades por parte de cualquier atacante.

Algo parecido se puede hacer con la versión de Php, aunque en en caso de Raspbian y Php5 ya viene hecho por defecto.

Si por cualquier motivo volvieran a activarlo la forma de desactivamos es:

sudo nano /etc/php5/apache2/php.ini

Cambiando el siguiente parametro a Off:

expose_php = Off 

Guardando a continuación los cambios con CTRL + X, pulsando a continuación Y ó S en función del idioma de nuestro sistema y lo que nos pida.

Si queréis ir más allá en la protección de vuestro servidor web os explico instalar la aplicación Fail2ban, explico como hacerlo en otra entrada de este blog.

Espero haberos sido de ayuda, como siempre si tenéis alguna duda o sugerencia que pueda ayudar a mejorar estas instrucciones, no dudéis en contactarme.

Salu2

 

Santi

Esta entrada fue publicada en Raspberry Pi, Seguridad y Redes. Guarda el enlace permanente.

Deja un comentario