Eliminar la información que el servidor da sobre sí mismo
Requisitos de finalización
Eliminar la información que el servidor da sobre sí mismo
Esta actividad práctica corresponde a este tema.
A la hora de hacer que el servidor no de información sobre sí mismo a los clientes, debemos actuar sobre las siguientes directivas de apache2.conf, añadiéndolas si no existiesen en el mismo:
- ServerTokens: Directiva cuyo valor recomendado es “Prod”, al ser la opción que menos información da, y se aplica a todas las webs del servidor. Identifica la información que Apache envía sobre sí mismo a los clientes en las peticiones. Los posibles valores y la información que muestran son:
- ServerTokens Prod[uctOnly]: “Server: Apache“
- ServerTokens Major: “Server: Apache/2“
- ServerTokens Minor: “Server: Apache/2.0”
- ServerTokens Min[imal]: “Server: Apache/2.2.15”
- ServerTokens OS: “Server: Apache/2.2.15 (Unix)“
- ServerTokens Full (o sin especificar): Muestra lo mismo que OS e información de todos los módulos relevantes instalados. Ej.: “Server:Apache/2.2.15 (Unix) PHP/4.2.2 MiMod/1.2“

- ServerSignature: Se recomienda poner en “Off”
- “On” añade una línea con el nombre de servidor, versión, el host virtual que envía la página y el email puesto en la configuración de Apache
- Esto se añadiría a los documentos generados por el servidor (mensajes de error, salidas, …), pero no es conveniente debido a que la mejor política es la de menos información -> mejor
- Puede ser útil si el servidor pasa por una cadena de proxys y se quiere saber el origen de cada documento que llega al cliente

Para probar el funcionamiento de estas opciones, podemos hacer las siguientes operaciones en el orden indicado:
- Instalar Paros Proxy en la máquina cliente XP para poder observar las peticiones.
- Configurar el Paros Proxy para que el navegador lo use, haciendo que el navegador escogido para hacer las pruebas se conecte a través de un proxy alojado en el puerto 8080 de la máquina local (localhost).
- Arrancar Paros y hacer una petición a una página cualquiera de la web de pruebas. Hecho esto conviene observar las cabeceras de respuesta del servidor seleccionando un archivo de los devueltos. Debería aparecer algo como esto:
|
HTTP/1.1 200 OK Date: Mon, 22 Sep 2008 21:13:55 GMT Server: Apache/2.2.8 (Ubuntu) Last-Modified: Wed, 30 Apr 2008 07:54:02 GMT ETag: "662e4-147d-44c1273c11a80" Accept-Ranges: bytes Content-Length: 5245 Content-Type: text/css |
- Vemos así que Apache está devolviendo demasiada información (SSOO, tipo de servidor y versión concreta). Para evitarlo basta con modificar el apache2.conf con la configuración recomendada.
- Reiniciamos posteriormente Apache para que vuelva a leer la configuración de sus ficheros con sudo /etc/init.d/apache2 force-reload
- El resultado de hacer este cambio debería ser el siguiente:
| HTTP/1.1 200 OK
Date: Mon, 22 Sep 2008 21:20:41 GMT Server: Apache Last-Modified: Wed, 30 Apr 2008 07:54:02 GMT ETag: "662e4-147d-44c1273c11a80" Accept-Ranges: bytes Content-Length: 5245 Content-Type: text/css |
Y de esta forma no se podrá obtener tan fácilmente el tipo de SSOO y la versión de Apache que está instalada. No obstante, sí que es posible averiguar esta información con herramientas más sofisticadas como Nessus o nmap, asi que esto no es una protección fiable. Lo verdaderamente fiable es mantener el servidor y SSOO actualizados y una buena política de seguridad en general.
Última modificación: jueves, 19 de agosto de 2010, 16:51