SERVICIO HTTP DE INTERNET INFORMATION SERVER (IIS) Los servicios de Internet Information Server (a partir de ahora IIS) son una plataforma con unas prestaciones completas, capaz de dar servicio HTTP (sitios web), FTP (transferencia de archivos), NNTP (noticias) y SMTP (correo electrónico) a empresas, particulares, instituciones,… y debido a su integración en los sistemas operativos Windows 2000 y XP es relativamente fácil de configurar y de manejar. De todos los servicios que proporciona, nos vamos a centrar en sus capacidades como servidor World Wide Web (HTTP). Características La versión 5.1 de los Servicios de Internet Information Server presenta muchas características que ayudan a los administradores Web a crear aplicaciones Web escalables y flexibles. Seguridad • Autenticación de texto implícita avanzada: la autenticación de texto implícita avanzada es compacta, permite una autenticación segura y eficaz de los usuarios a través de servidores proxy y servidores de seguridad, no requiere software cliente adicional y evita pasar el nombre de usuario y la contraseña en texto sin cifrar a través de Internet. Además, la autenticación de texto implícita, anónima, básica HTTP e integrada de Windows (anteriormente llamada autenticación de desafío/respuesta de Windows NT y autenticación NTLM) aún están disponibles. • Comunicaciones seguras: Secure Sockets Layer (SSL) 3.0 y Seguridad de capa de transporte (TLS) proporcionan una forma segura para intercambiar información entre clientes y servidores. Además, SSL 3.0 y TLS proporcionan al servidor la forma de comprobar quién es el cliente antes de que el usuario inicie una sesión en el servidor. En IIS 5.1, los certificados de cliente están expuestos a ISAPI y a las páginas Active Server, de forma que los programadores puedan efectuar el seguimiento de los usuarios a través de los sitios. IIS 5.1 también puede asignar el certificado del cliente a una cuenta de usuario de Windows, de forma que los administradores puedan controlar el acceso a los recursos del sistema basado en el certificado del cliente. • Cifrado canalizado por servidor (SGC): es una extensión de SSL que permite a instituciones financieras con versiones de exportación de IIS utilizar un cifrado de alto nivel de 128 bits. • Asistentes para seguridad: los asistentes para seguridad simplifican las tareas de administración del servidor. • Restricciones de dominio de Internet e IP: se puede conceder o denegar accesos Web a equipos individuales, grupos de equipos o dominios enteros. • Almacenamiento de certificados: proporciona un único punto de entrada que le permite almacenar, realizar copias de seguridad y configurar certificados de servidor. • Fortezza: el estándar de seguridad del gobierno de EE.UU., habitualmente llamado Fortezza, es compatible con IIS 5.1. Este estándar satisface la arquitectura de seguridad Defense Message System con un mecanismo criptográfico que proporciona confidencialidad de mensajes, integridad, autenticación y control de acceso a mensajes, componentes y sistemas. Estas características se pueden implementar con el software del explorador y el servidor, y con hardware de tarjeta PCMCIA. Administración • Reiniciar IIS: posibilidad de reiniciar los servicios Internet sin reiniciar el equipo. • Realizar copias de seguridad y restaurar la metabase: los cambios en la capacidad y los procedimientos para realizar copias de seguridad y restaurar la metabase mejoran la seguridad y permiten restaurar la metabase en otros equipos. La aplicación se ejecuta en el complemento IIS. • Almacenamiento en caché de plantillas ASP: los cambios en Ajustes de caché de plantillas ASP proporcionan un mayor control del almacenamiento en caché de archivos ASP. • Mensajes de error personalizados mejorados: ahora los administradores pueden enviar mensajes informativos a clientes cuando se producen errores de HTTP en los sitios Web. También incluye capacidades de procesamiento de errores ASP detallados a través del uso de mensaje de error personalizado 500-100.asp. Puede usar los errores personalizados que proporciona IIS 5.1 o crear los suyos propios. • Opciones de configuración: puede establecer los permisos para las operaciones Web de Lectura, Escritura, Ejecución, Secuencia de comandos y FrontPage en el nivel de sitios, directorios o archivos. • Administración remota: IIS 5.1 tiene herramientas de administración basadas en Web que permiten la administración remota del servidor desde casi cualquier explorador en cualquier plataforma. • Administración centralizada: las herramientas de administración para IIS utilizan Microsoft® Management Console (MMC). MMC aloja los programas, llamados complementos, que los administradores utilizan para administrar los servidores. Capacidades de programación • Páginas Active Server (ASP): proporciona una alternativa fácil de utilizar a CGI e ISAPI que permite a los programadores de contenido incrustar cualquier lenguaje de secuencias de comandos o componente del servidor en las páginas HTML. ASP proporciona acceso a todas las peticiones HTTP y secuencias de respuesta, así como conectividad con bases de datos basada en estándares y la capacidad para personalizar el contenido para diferentes exploradores. • Nuevas características de ASP: las páginas Active Server tienen algunas características nuevas y mejoradas para aumentar el rendimiento y simplificar las secuencias de comandos del servidor. • Protección de aplicaciones: IIS 5.1 ofrece mayor protección e incrementa la confiabilidad de las aplicaciones Web. De manera predeterminada, IIS ejecutará todas las aplicaciones en un proceso común o agrupado que está separado de los procesos básicos de IIS. Además, también puede aislar aplicaciones cuyas misiones sean críticas y que deban ejecutarse fuera tanto de los procesos de núcleo de IIS como de los agrupados. Estándares de Internet • Basado en estándares: los Servicios de Internet Information Server de Microsoft 5.0 y 5.1 cumplen con el estándar de HTTP 1.1 e incluyen características como PUT y DELETE, capacidad de personalizar mensajes de error de HTTP y compatibilidad con encabezados HTTP personalizados. • Varios sitios, una sola dirección IP: gracias a la compatibilidad con encabezados de host, puede alojar varios sitios Web en un solo equipo en el que se ejecute Microsoft Windows 2000 Server con una única dirección IP. Esto es útil para los proveedores de servicios Internet y las intranets corporativas que alojan varios sitios. • Sistema distribuido de creación y control de versiones Web (WebDAV): permite a los usuarios remotos crear, mover o eliminar archivos, propiedades de archivos, directorios y propiedades de directorios en el servidor a través de una conexión HTTP. • Noticias y correo: puede utilizar los servicios SMTP y NNTP para configurar el correo y los servicios de noticias en intranet que funcionan junto con IIS. • Restricciones PICS: puede aplicar las restricciones PICS (Platform for Internet Content Selection, Plataforma para la selección del contenido de Internet) a los sitios que tienen contenido para adultos. • Reiniciar FTP: ahora las descargas de archivos de Protocolo de transferencia de archivos se pueden reanudar sin tener que descargar todo el archivo de nuevo cuando se produce una interrupción durante la transferencia de datos. • Compresión HTTP: proporciona transmisiones más rápidas de páginas entre el servidor Web y los clientes que admiten la compresión. Comprime y almacena en caché los archivos estáticos y realiza una compresión a petición de los archivos generados dinámicamente. Instalación Para instalar el servicio HTTP de IIS hay que ir al Panel de Control dentro del menú Inicio y hacer clic en Agregar o quitar componentes de Windows. En la lista de componentes se debe seleccionar Servicios de Internet Information Server (IIS), tal como se muestra a continuación. Por defecto, al seleccionar esta opción se instalarán todos los componentes de los IIS, incluyendo soporte para HTTP, FTP, NNTP y SMTP. Como nosotros sólo deseamos instalar HTTP, haremos clic en Detalles… tras seleccionar Servicios de Internet Information Server (IIS), con lo que veremos la siguiente ventana: Podemos ver en detalle las opciones: • Archivos comunes: archivos necesarios para los componentes de IIS. • Complemento de servicios de Internet Information Server: sirve para administrar el IIS. • Documentación: documentación necesaria para profundizar en el funcionamiento del IIS. • Extensiones de servidor de Frontpage2000: estas extensiones permiten que nuestro servidor pueda incluir formularios, contadores, etc. • Servicio de protocolo de transferencia de archivos (FTP): solo necesario si queremos un servidor FTP. • Servicio SMTP: Simple Mail Transfer Protocol (SMTP), nos permite montar un servicio de mail dentro de nuestra intranet. Por razones de seguridad les recomiendo que esta opción esté desactivada. • Servicio World Wide Web: necesario para poder montar nuestro servidor de paginas web. Seleccionaremos las mismas casillas que en la figura anterior: Archivos comunes, Complemento de servicios de Internet Information Server, Documentación y Servicio World Wide Web. Tras pulsar Aceptar y Siguiente, comenzará la instalación. Administración de sitios web La administración de sitios web se lleva a cabo mediante el Administrador de Servicios de Internet MMC (Microsoft Management Console). Para acceder a este Administrador seleccionaremos Inicio, Panel de control, Herramientas administrativas, Servicios de Internet Information Server. Tiene un aspecto similar al de la siguiente figura: Vemos que la ventana tiene dos paneles (izquierdo y derecho), en la izquierda seleccionamos una opción del árbol y en la derecha veremos los detalles de la selección. En la imagen podemos ver en la parte de la derecha el nombre del equipo en el que hemos instalado el servidor WEB, en nuestro caso se llama "FREAKY", luego vemos si es un equipo local y la versión del Internet Information Server que estamos usando. Por defecto el nombre de nuestro sitio WEB es "Sitio Web Predeterminado" podremos cambiar el nombre en cualquier momento (lo he cambiado por Mi página web), simplemente pinchamos dos veces en "Sitio Web predeterminado" y podremos modificarlo. Los archivos para nuestra página web se van a colocar en el directorio C:\Inetpub\wwwroot\. Ahora veremos algunas de las opciones más generales para poder montar un servidor de páginas WEB. Hacemos clic con el botón derecho sobre "Sitio Web Predeterminado" y seleccionamos "Propiedades". La siguiente ventana se nos muestra, veremos cuáles son las opciones más relevantes de cara al buen funcionamiento de nuestro servidor HTTP: Sitio Web Veamos las opciones generales que podemos modificar: • Descripción: podremos poner una breve descripción de nuestro sitio web. • Dirección IP: aquí colocaremos la dirección IP del ordenador que hará de servidor WEB, esta IP corresponderá a la IP local, es decir, la IP de la red local y no será la que usamos para entrar a internet, por ejemplo: http://192.168.1.33. Si tenemos registrado un nombre de dominio podríamos hacer clic en Avanzadas y podríamos introducirlo en el campo Nombre de encabezado Host. • Puerto TCP: el puerto que queremos que sea el que responda a las peticiones de los visitantes, por norma el puerto a usar para paginas web es el 80. Si dispone de router, se debe comprobar que dicho puerto se encuentra abierto. • Tiempo de espera de la conexión: establece el intervalo de tiempo en segundos que va a esperar el servidor antes de desconectar a un usuario inactivo. De esta forma se asegura que todas las conexiones se cierran si el protocolo HTTP no puede cerrar una conexión. • Habilitar el mantenimiento de conexiones HTTP abiertas: permite a un cliente mantener abierta la conexión con el servidor, en lugar de volver a abrir la conexión del cliente en cada nueva petición. El mantenimiento de conexiones abiertas está habilitado de forma predeterminada; si se deshabilita, es posible que se degrade el rendimiento del servidor. (HTTP 1.1) • Habilitar registro: esta opción se utiliza para habilitar las características de registro del sitio Web, que permiten registrar información detallada acerca de la actividad de los usuarios y crear registros en el formato elegido. Después de habilitar el registro, seleccione un formato en la lista Formato de registro activo: o Formato de archivo del registro IIS de Microsoft: formato ASCII fijo. o Registro ODBC: formato fijo registrado en una base de datos (sólo disponible en Windows 2000 Server). o Formato de archivo del registro extendido W3C: formato ASCII personalizable, seleccionado de manera predeterminada. Para usar información de procesos se debe seleccionar este formato. Haciendo clic en propiedades se muestra la ventana siguiente en la que elegiremos el formato que deseamos para nuestro archivo de registro, útil para sacar estadísticas (ver las propiedades extendidas). Directorio particular La siguiente pestaña relevante de la hoja de propiedades del sitio web, es Directorio particular, que podemos ver en la siguiente figura: Este grupo de ajustes permite controlar dónde buscará los IIS el contenido web y qué permisos de seguridad usará al manejarlo. Lo primero que hemos de elegir es dónde estará localizado en directorio de nuestro sitio web: • Un directorio particular de este equipo: aquí especificamos el directorio que contendrá nuestra página web en el ordenador. • Un recurso compartido de otro equipo: podremos seleccionar un recurso compartido que se encuentre dentro de nuestra red y que será el que contendrá nuestra página web. • Un redirección a una dirección URL: con este método podremos redireccionar a otro sitio las peticiones que se haga a nuestra web. Después elegiremos la ruta de acceso, en nuestro caso dejaremos la configuración por defecto, con lo que tendremos que indicar en Ruta de acceso local (disponible solo con la opción de "Un directorio particular de este equipo”), el directorio que viene. Luego podremos dar los permisos que queramos para mantener la seguridad en nuestro sitio: • Acceso al código fuente de secuencias de comandos: esta opción es usa para permitir que los usuarios tengan acceso al código fuente si disponen de los permisos de escritura o de lectura. El código fuente incluye las secuencias de comandos en aplicaciones ASP. • Lectura: mediante esta opción se permite que los usuarios lean o descarguen archivos o directorios y sus propiedades asociadas. • Escritura: esta opción se selecciona para permitir que los usuarios carguen archivos y sus propiedades asociadas en un directorio con este permiso del servidor o para cambiar el contenido de un archivo con este permiso. La escritura sólo se puede realizar con un explorador que admita la característica PUT del estándar de protocolo HTTP 1.1. • Examinar directorios: esta opción se usa para permitir que el usuario vea una lista con formato de hipertexto de los archivos y subdirectorios de este directorio virtual. Los directorios virtuales no aparecen en las listas de directorios. Los usuarios deben conocer su alias. • Registrar visitas: Seleccione esta opción para registrar las visitas de este directorio en un archivo de registro. Las visitas sólo se registran si está habilitado el registro para este sitio Web. • Indizar este recurso: Seleccione esta opción para que Servicios de Microsoft Index Server incluya este directorio en un índice de texto del sitio Web. Documentos Continuando con la configuración de nuestro sitio Web, la siguiente pestaña de configuración en la hoja de propiedades es la pestaña documentos, que se muestra a continuación. Cuando los usuarios intentan conectarse con el servidor web sin especificar un documento en concreto, los IIS buscarán en la lista de documentos por defecto (en caso de estar activada) para devolverlo al usuario. Si queremos que todas las páginas de nuestro sitio se envíen con un pie de página común (como por ejemplo, un copyright) se puede configurar mediante esta ventana. Deberíamos crear un archivo HTML que contenga por ejemplo <h2>Pie de página © ESI </h2> y colocarlo en Habilitar pie de página del documento. Seguridad de directorios La siguiente sección de las fichas de propiedades es Seguridad de directorios, que nos permite controlar quién accede a nuestro sitio web en función de la autentificación, direcciones de clientes IP o configuración ACL en archivos, y da la posibilidad de proteger las comunicaciones cuando los clientes se conectan al sitio. Tiene este aspecto: El primer método de proteger un sitio web es definiendo un método de autenticación para validar a los usuarios. Como los navegadores por defecto, intentarán acceder a los sitios de forma anónima, una opción disponible es eliminar el acceso anónimo al web. Hacer clic en el botón Modificar dentro de control de autenticación y acceso anónimo, se muestra entonces la siguiente ventana: Para permitir que cualquier usuario pueda acceder al sitio, se debe mantener activada la casilla Acceso anónimo, de lo contrario, el sitio estará protegido, y será precisa una identificación del usuario antes de que se permita una conexión incluso a la página de inicio. Si seleccionamos el acceso anónimo, debemos especificar un usuario de la máquina pulsando sobre Examinar. En caso de eliminar el acceso anónimo hemos de especificar alguna opción de autenticación, puesto que si no habremos deshabilitado por completo cualquier forma de acceso al sitio. Las opciones que se encuentran debajo de Acceso autenticado controlan el nivel de identificación que los usuarios deben sortear para llegar a conectarse al sitio protegido. Existen tres tipos de autenticación, cabe reseñar que debe haber una cuenta de usuario en el equipo para que la autenticación funcione: • Autenticación básica: es el más básico y mediante este método la contraseña se envía sin cifrar, por lo que cualquier software espía de contraseñas podría capturarla. • Autenticación de texto implícita dirigida a servidores de dominio de Windows: en vez de transmitir la contraseña en modo texto, aplica una función de hash y lo transmite, manteniendo así la confidencialidad de las contraseñas. En este caso existen varias restricciones como que el cliente debe ser Internet Explorer 5 o superior y la contraseña debe estar en el directorio sin codificar. Es el más seguro. • Autenticación de Windows integrada: es un método seguro de autenticación, ya que no se envía a través de la red el nombre de usuario ni la contraseña. Al habilitar la autenticación de Windows integrada, el explorador del usuario demuestra que conoce la contraseña mediante un intercambio criptográfico con el servidor Web, en el que interviene el hashing. El cliente debe ser también Internet Explorer, a partir de la versión 2. Una vez comentados lo métodos de autenticación, hemos de ver que también podemos “filtrar” el acceso al web dependiendo de la dirección IP, de un rango de direcciones IP o de un nombre de dominio. Copias de seguridad de la configuración Una de las grandes ventajas de IIS (para algunos administradores) es su configuración gráfica, debido a su interfaz intuitiva y de fácil uso. Pero no sería práctico, sino pudiéramos salvar la información de configuración para poder restaurarla después. Aunque lo mejor es un fichero de configuración tipo texto, donde poder ir modificando variables y así tener una copia del mismo (ver Apache), no hay que alarmarse debido a que IIS no ofrezca esta característica ya que si que soporta salvar la configuración en un formato propio de Windows para posteriormente restaurarla de forma sencilla. Los pasos a realizar para hacer una copia de seguridad de la configuración actual serían los siguientes: • En el complemento, Administración de servicios de Internet, se selecciona el icono del equipo para resaltarlo en el panel izquierdo. • En el menú Acción, elija la opción Realizar o restaurar copia de seguridad de la configuración. • Hacer clic en el botón Realizar copia de seguridad, que mostrará un cuadro de diálogo Realizar copia de seguridad que le permitirá definir el archivo de copia de seguridad. De forma predeterminada, el archivo de copia de seguridad se almacena en el directorio c:\winnt\system32\inetsrv\Metaback Encabezados HTTP El penúltimo grupo de configuraciones que se puede controlar se refiere a los encabezados que los servicios IIS incluirán en las páginas HTML que se transmiten. Estos parámetros se ajustan en la ventana siguiente: Los encabezados HTTP permiten encontrar varios elementos que el servidor web transmitirá a los navegadores web, junto con las páginas HTML del web. Los componentes principales que a los buenos administradores de sitios web les interesa controlar son la caducidad de contenidos, la restricción de contenidos y los tipos de archivos MIME. Pueden incluso añadirse encabezados personalizados. • Habilitar caducidad de contenido: se utiliza con el fin de incluir información de caducidad para material dependiente del tiempo, como las ofertas especiales o los anuncios de eventos. El explorador comparará la fecha actual con la fecha de caducidad para determinar si va presentar una página almacenada en memoria caché o si va a solicitar una página actualizada del servidor. • Encabezados HTTP personalizados: se puede utilizar los encabezados HTTP personalizados para enviar un encabezado HTTP personalizado desde el servidor Web al explorador del equipo cliente. Se pueden usar los encabezados personalizados para enviar instrucciones que no están admitidas todavía en la especificación HTTP actual, como los encabezados HTTP más recientes que IIS puede no admitir inherentemente en el momento de lanzamiento del producto. • Clasificación de contenido: las restricciones de contenido se usan para incrustar etiquetas descriptivas en los encabezados HTTP de las páginas Web. Algunos exploradores Web, como Microsoft Internet Explorer 3.0 o posterior, pueden detectar estas restricciones de contenido con el fin de ayudar a los usuarios a identificar el contenido Web potencialmente ofensivo. • Asignación MIME: Las asignaciones MIME establecen los distintos tipos de archivo que el servicio Web devuelve a los exploradores. Errores personalizados Cuando se configura un servidor web y sus sitios web, habrá ocasiones en las que quiera controlar cómo y qué se muestra a los usuarios que reciben un error. Por ejemplo, podemos tener una página HTML personalizada que muestre cuando un usuario ha llegado a un error 404 (página no encontrada). Para esto, hacemos clic en la pestaña de errores personalizados y se muestra esta ventana: Podemos escoger el error HTTP y hacer clic en él, con lo que se mostrará una ventana indicativa de cuando sucederá ese error. Por ejemplo, vemos el error 400 (solicitud incorrecta): Directorios virtuales A medida que crecen los sitios Web, existe una necesidad de organizar los niveles de contenido en el subdirectorio fuera de la raíz principal del sitio. Al igual que en un disco duro de un ordenador, puede haber momentos en que existan muchos archivos que haya que administrar en un único directorio, por lo que es necesario el uso de subdirectorios. Existen dos formas de hacer esto en un sitio web. La primera es crear un subdirectorio en el directorio raíz del sitio web. Por ejemplo, si se tiene la raíz en C:\Inetpub\wwwroot al que se accede mediante www.nombredelaempresa.com y decidimos crear un subdirectorio llamado C:\Inetpub\wwwroot\imagenes, accederemos a dicho directorio mediante www.nombredelaempresa.com/imagenes. El segundo método es mediante la definición de raíces virtuales. Una raíz virtual es un medio para definir un subdirectorio fuera de la raíz de nuestro sitio web (e incluso un nivel inferior de dicho web). Veamos la siguiente figura, que aclarará un poco el concepto de directorio virtual: Lado del servidor Lado del cliente \Inetpub\wwwroot http://www.nombredelaempresa.com \monitor http://www.nombredelaempresa.com/monitor C D Windows con IIS Tenemos un servidor web con dos discos duros (C y D) con la raíz del sitio en C.\Inetpub\wwwroot, con lo que accederemos con un cliente desde la dirección http://www.nombredelaempresa.com. Si definimos un directorio virtual en el disco D en la ubicación D:\monitor, podremos acceder (creando el alias oportuno) mediante la dirección http://www.nombredelaempresa.com/monitor. Creación de un directorio virtual Para crear un directorio virtual volvemos al MMC, resaltamos el sitio web donde vamos crear el directorio virtual y hacemos clic en Acción, Nuevo, Directorio virtual, con lo que aparecerá un asistente que nos guiará en el proceso. El primer paso es el que se muestra a continuación. Tras crear el correspondiente directorio en nuestro equipo, por ejemplo C:\virtual, escribiremos en el campo de texto, por ejemplo, virtual. Al hacer clic en siguiente, se nos mostrará la ventana en la que debemos escribir la ruta donde se encuentra dicho alias. Podemos bien crear un alias en nuestro equipo o en una ruta de internet, para lo que colocaríamos aquí una dirección válida. El siguiente diálogo nos solicita las credenciales de usuario, es decir, los permisos de acceso al directorio virtual. Una vez que hayamos introducido toda la información necesaria, debemos tener un nuevo directorio virtual listado en el sitio web que responderá en consecuencia iniciando el navegador y escribiendo http://localhost/virtual. (Ojo con los permisos). El tratamiento de un directorio virtual es exactamente el mismo que como se haría para un sitio web, editando la hoja de propiedades del directorio. Concretamente, podemos editar: Directorio virtual, Documentos, Seguridad de directorios, Encabezados HTTP y Errores personalizados.