Professional Documents
Culture Documents
06/07
Índice
Índice........................................................................................... ¡Error! Marcador no definido.
Introducción ............................................................................................................................. 3
Arquitectura de IIS 6.0 .............................................................................................................. 4
Instalación y Configuración ....................................................................................................... 5
Creación de un Sitio Web ......................................................... ¡Error! Marcador no definido.
Creación de una aplicación Web en directorio virtual ............... ¡Error! Marcador no definido.
Configurando el servidor para hacer seguro .............................................................................. 6
Mejores prácticas .................................................................................................................. 6
Aislamiento y reciclado de aplicaciones..................................................................................... 8
Worker Process Isolation Mode............................................................................................. 8
IIS 5.0 Isolation Mode............................................................................................................ 8
Aislamiento de Aplicaciones Web.......................................................................................... 9
Grupos de Aplicaciones Web ............................................................................................. 9
Recomendaciones ........................................................................................................... 10
Monitorizar IIS y ASP.NET .................................................................................................... 10
Introducción
En el siguiente documento vamos a introducirnos a la administración de Internet Information
Server 6.0. En un primer lugar, comentaremos la arquitectura y los elementos principales de
esta. Luego comenzaremos con la instalación y configuración del Servidor. Crearemos alguna
aplicación web de ejemplo y luego veremos cómo podemos aislar las aplicaciones unas de
otras y optimizar el rendimiento y la seguridad del servidor.
Arquitectura de IIS 6.0
La arquitectura de Internet Information Server 6.0 es completamente nueva respecto a
versiones anteriores. Se introduce un aislamiento de los procesos que sirven los sitios web y
una total independencia entre el servicio WWW y el resto de servicios de que dispone el
servidor.
Antes de entrar en detalle en la arquitectura del servidor, vamos a ver los cuatro protagonistas
principales dentro de la nueva arquitectura.
La arquitectura de IIS 6.0 es como se muestra en la figura. Por un lado vemos que lo único que
se ejecuta en modo kernel es el http.sys y como la comunicación entre esta y los diferentes
Worker Process es directa. También vemos como los Worker Process se organizan en Grupos
de Aplicaciones (Application Pools), que permiten aislar los Sitios Web unos de otros. Cada
Worker Process hace uso de los filtros ISAPI, que son los encargados de interpretar los
recursos que se han solicitado. Ejemplos de filtros ISAPI pueden ser ASP, ASP.NET o PHP.
Instalación y Configuración
IIS 6.0 viene incluido en Windows 2003 Server como un servicio instalable. No viene instalado
por defecto como en versiones anteriores. Para instalarlo tenemos dos métodos manuales y
uno automático. Los métodos manuales son, hacer uso del Asistente Administre su Servidor,
donde únicamente tendremos que seleccionar la opción de agregar un nuevo servicio a
nuestro servidor y seguir los pasos del asistente indicando que queremos instalar el servidor
web. Una de las pocas opciones que nos mostrará al instalarlo es si queremos soporte para
ASP.NET 1.0 y 2.0. Otra forma es haciendo uso del tradicional Agregar o Quitar Programas que
se encuentra en el Panel de Control.
La configuración inicial por defecto de IIS 6.0 está muy restringida, al contrario que versiones
anteriores, que ante administradores poco experimentados suponía un potencial problema de
seguridad. En esta configuración inicial, IIS 6.0 solo sirve HTML estático y solo da el servicio
WWW.
La creación de un Sitio Web o un directorio virtual es tan sencillo como hacer click con el botón
derecho en el árbol izquierdo de la consola de administración de IIS y seleccionar la opción de
crear correspondiente. Una vez creada, solo nos quedará darle a ver sus propiedades con el
botón derecho para configurarlo.
Configurando el servidor para hacer seguro
Para configurar de forma segura nuestro servidor, en principio debemos navegar por la
interfaz gráfica del Administrador de IIS para configurarlo. Aún así, existen algunas utilidades
que nos pueden ayudar a detectar configuraciones potencialmente peligrosas o de bloqueo
intentos de ataques.
Mejores prácticas
A continuación vamos a ver algunas recomendaciones a la hora de configurar nuestro servidor
IIS. Muchas de estas configuraciones son aplicables no solo a IIS, sino a cualquier servidor.
No instalar IIS en un servidor donde no va a ser usado ya que con ello estamos
exponiendo nuestro servidor al tener una superficie atacable mayor.
No instalar servicios de IIS que no vamos a usar o deshabilitarlos si vamos a dejar de
usarlos por un tiempo.
No descargar o ejecutar programas desde fuentes no confiables. Es más, no navegar
por Internet o usar el servidor como un equipo más.
Mantenerse al día en actualizaciones de seguridad o definiciones de virus.
o Darse de alta en lista de correo o RSS de seguridad como los boletines de
seguridad de Microsoft.
Usar NTFS y restringir el acceso de las cuentas de red al sistema de ficheros. Muy
recomendable restringir los permisos de escritura de la cuenta que por defecto se usa
para los usuarios anónimos IUSR_ComputerName, donde ComputerName es el
nombre del servidor.
Almacenar ficheros ejecutables en directorios separados de nuestro servidor, así
evitamos ejecuciones de otras cuando una tiene un fallo de seguridad.
Crear un grupo para todas las cuentas de usuarios anónimas.
No permitir la ejecución de nada a los grupos de usuarios anónimos.
Restringir las direcciones IP desde las que se pueden conectarse al servidor si vamos a
administrar IIS de forma remota.
Asignar siempre los permisos más restrictivos a cualquier cuenta o aplicación.
No habilitar los siguientes permisos en la configuración del Sitio Web o Directorio
Virtual:
o Acceso al código fuente de secuencias de comandos
o Escritura
o Ejecución de Secuencias de comandos y ejecutables
Usar una partición diferente (en el mismo disco u otro) a la del sistema para almacenar
las diferentes Webs.
No instalar Kit de Recursos en el servidor de producción.
Deshabilitar la depuración de las aplicaciones ASP y ASP.NET en el servidor de
producción.
Aislamiento y reciclado de aplicaciones
Cuando tenemos un servidor web que es compartido por más de una aplicación web, puede
ocurrir que un mal funcionamiento de una afecte al servidor y por tanto al resto de
aplicaciones web. Este mal funcionamiento puede ser un bucle infinito que produce una
respuesta enorme con un uso de CPU y memoria muy alto o un fallo de seguridad. Visto esto,
sería muy interesante que por un lado, podamos agrupar las distintas aplicaciones para que un
fallo de seguridad no afecte a otras aplicaciones que se encuentran en otro grupo o poder
cerrar aplicaciones web que tienen un mal funcionamiento.
En este sentido, IIS 6.0 introduce un nuevo modo de aislamiento, como pudimos ver en la
arquitectura, llamado Worker process isolation mode. Además tenemos el IIS 5.0 isolation
mode o también conocido como el modo de compatibilidad, que aunque permite aislar
aplicaciones web, no lo permite a la escala de grupos como el nuevo modo introducido en IIS
6.0.
Cuando hacemos una instalación limpia del servidor, se instala en modo Worker process
isolation por defecto. Sin embargo cuando lo que hacemos es una actualización desde IIS 5.1 o
anterior, el modo por defecto es el de compatibilidad.
Tanto los Sitios Web como los directorios virtuales se pueden asignar a un grupo de
aplicaciones determinado. Si no se especifica ninguno en la creación de estos, se asigna al
grupo por defecto.
Monitorizar ASP.NET
Una vez tenemos nuestro servidor funcionando, es importante que podamos medir diferentes
parámetros del mismo, para comprobar su correcto funcionamiento, así como establecer
alarmas si determinados parámetros tienen valores determinados. Para ello tenemos el
llamada Performance Counter o Medidores de rendimiento, tanto a nivel de sistema como a
nivel de aplicación. Con ello podemos saber al instante si algo va mal. Para acceder a esta
característica podemos irnos al Monitor del Sistema, que podemos encontrar en Herramientas
Administrativas, que a su vez se encuentra en el panel de control.
En la interfaz que se nos presenta podemos establecer valores que medir, de entre los que se
encuentran los referentes a nuestro servidor. Además podemos establecer alarmas, indicando
umbrales para los parámetros medidos.