Internet Information Server devuelve la dirección IP en el encabezado HTTP (Content-Location)


Recomendamos encarecidamente que todos los usuarios se actualicen a la versión 6.0 de Servicios de Microsoft Internet Information Server (IIS) de Microsoft Windows Server 2003. IIS 6.0 aumenta considerablemente la seguridad de la infraestructura Web. Para obtener más información acerca de temas relacionados con la seguridad de IIS, visite el siguiente sitio Web de Microsoft:

Síntomas


Cuando utiliza páginas HTML estáticas (por ejemplo, Default.htm), se agrega un encabezado Content-Location a la respuesta. De forma predeterminada, en Internet Information Server (IIS), Content-Location hace referencia a la dirección IP del servidor en lugar de hacer referencia al nombre de dominio completo (FQDN) o al nombre de host.

Este encabezado puede exponer direcciones IP internas que normalmente están ocultas o enmascaradas detrás de un servidor proxy o un servidor de seguridad de Traducción de direcciones de red (NAT).

Ejemplo:
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Content-Location: http://10.1.1.1/Default.htm
Date: Thu, 18 Feb 1999 14:03:52 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT
ETag: "067d136a639be1:15b6"
Content-Length: 4325
En este ejemplo, Content-Location especifica la dirección interna privada del equipo con IIS dentro del encabezado. Este encabezado no sufre ningún cambio cuando pasa a través de un servidor de seguridad o de un servidor proxy. Por tanto, la seguridad de la red interna puede verse comprometida por la exposición de las direcciones de red que se están utilizando.

Solución


Hay dos soluciones dependiendo de la versión de IIS que esté utilizando. Por eso, siga los pasos correctos según la versión.

Correcto para IIS 4.0, 5.0 ó 5.1

Ejemplo:
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0 o Microsoft-IIS/5.0
Content-Location: http://www.domain.com/Default.htm
Date: Thu, 18 Feb 1999 15:08:44 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Mon, 30 Nov 1998 15:40:15 GMT
ETag: "f07f84b9771cbe1:3068"
Content-Length: 4739
Advertencia
El uso incorrecto del archivo Adsutil.vbs ocasiona problemas graves y requiere que se vuelva a instalar Internet Information Server 4.0. Microsoft no puede garantizar la solución de los problemas resultantes del uso incorrecto del archivo Adsutil.vbs. Utilice este archivo bajo su responsabilidad.

Establecer el valor en un servidor de IIS 4.0

  1. Abra una ventana de comandos (cmd).
  2. Cambie el directorio a: winnt\system32\inetsrv\adminsamples.

    Nota
    Esto puede variar dependiendo de la instalación de Internet Information Server.
  3. Escriba la siguiente sintaxis:
    adsutil set w3svc/UseHostName True
    De manera predeterminada, este valor se establece en False. Por tanto, sólo devuelve la dirección IP del equipo con IIS. Si se establece este valor en True, se devuelve el nombre de dominio completo (FQDN) para el equipo con IIS.
  4. Se recomienda reiniciar el servicio Inetinfo después de realizar esta modificación. Para detener el proceso Inetinfo, escriba lo siguiente en la línea de comandos:
    net stop iisadmin /y
    Nota
    Anote qué servicios se detienen para que pueda reiniciarlos.
  5. Escriba lo siguiente:
    Net start w3svc
    Nota
    Esto es lo mínimo para que el servidor Web pueda volver a funcionar. Cualquier otro servicio dependerá de lo que esté instalado para IIS o SiteServer, de lo que se tomó nota en el paso 4.

Establecer el valor en un servidor de IIS 5.0

  1. Abra una ventana de comandos (cmd).
  2. Cambie el directorio a: inetpub\adminscripts.

    Nota
    Esto puede variar dependiendo de la instalación de Internet Information Server.
  3. Escriba la sintaxis siguiente:
    adsutil set w3svc/UseHostName True
    De manera predeterminada, este valor se establece en False. Por tanto, sólo devuelve la dirección IP del equipo con IIS. Si se establece este valor en True, se devuelve el nombre de dominio completo (FQDN) para el equipo con IIS.
  4. Se recomienda reiniciar el servicio Inetinfo o reiniciar el equipo después de realizar esta modificación. Para detener el proceso Inetinfo, escriba lo siguiente en la línea de comandos:
    net stop iisadmin /y
    Nota
    Anote qué servicios se detienen para que pueda reiniciarlos.
  5. Escriba lo siguiente:
    Net start w3svc
    Nota
    Esto es lo mínimo para que el servidor Web pueda volver a funcionar. Cualquier otro servicio dependerá de lo que esté instalado para IIS o SiteServer, de lo que se tomó nota en el paso 4.

IIS 6.0 en Windows Server 2003

Para obtener información adicional acerca de una corrección para IIS 6.0 en Windows Server 2003, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
834141 REVISIÓN: La dirección IP se revela en el campo Content-Location en el encabezado TCP en IIS 6.0

Solución


Otra forma de evitar este problema es utilizar páginas Active Server (ASP) en lugar de páginas HTML estáticas (.htm o .html) y crear un encabezado personalizado que devuelva un Content-Location concreto. El motor de ASP no devuelve ningún encabezado Content-Location cuando se genera la respuesta. Por tanto, la posibilidad de agregar uno personalizado sigue ahí.


Para IIS 4, 5, 5.1 y 6.0 puede configurar el sitio Web de manera que utilice un encabezado de host para responder a cualquier solicitud de contenido.
Para obtener información adicional acerca de cómo configurar IIS para utilizar un encabezado de host, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
190008 Cómo utilizar nombres de encabezado de host para alojar varios sitios desde una dirección IP