1. Instalación del servicio con Windows 2008 Server

Anuncio
1
Page 1 of 47
1. Instalación del servicio con Windows 2008
Server
Ahora realizaremos la instalación del servidor Web. Nos iremos a la consola de administración del
servidor para añadir esta función:
Pulsamos en "Siguiente" y después de una pantalla de información, tendremos los componentes
de IIS, veamos:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 2 of 47
Veamos que componentes necesitaremos instalar para una configuración estándar...
Características HTTP comunes. Son las funciones básicas de IIS, las necesarias para servir
páginas
Desarrollo de aplicaciones. Si queremos que tenga soporte para ASP.NET. Para páginas sin
programación no es necesario pero para desarrollar páginas y que ejecute el código ASP.NET es
imprescindible así que la marcaremos.
Estado y diagnóstico. Se encarga de registrar lo que sucede en el servidor. Por defecto ya marca
el "registro HTTP" que registrará todos los accesos al servidor. El registro personalizado nos
permitirá almacenar determinados campos de los accesos para tener un control de las páginas
vistas con los campos definidos. La opción registro ODBC es para almacenar esta información en
una base de datos que se comunica a través de ODBC. No es recomendable porque genera
mucho tráfico si el sitio web tiene muchos accesos.
Seguridad. Se encarga de definir el tipo de acceso al servidor y otra información importante para
controlar el acceso, marcaremos todos.
Rendimiento. Se encargar de administrar la caché para la mejora del rendimiento. Es necesario si
vamos a crear sitios web con muchos accesos y con páginas dinámicas ASP.NET
Herramientas de administración. Proporciona la interfaz y elementos para administrar nuestro
IIS7, las marcaremos.
Servicio de publicación de FTP. Lo instalamos porque lo vamos a probar en nuestro servidor.
Marcaremos toda la sección de "Desarrollo de aplicaciones". Una vez seleccionadas estas
opciones nos mostrará, como siempre, un resumen de lo que va a instalar, pulsaremos para
terminar y veremos una barra de progreso con la instalación.
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 3 of 47
1.1. Comentarios:
Técnicamente las páginas web utilizan el protocolo HTTP de TCP/IP que corresponde al puerto
80. Por lo tanto el navegador intenta conectarse a la dirección del servidor mediante el puerto 80.
Nuestro servidor IIS no tiene ninguna desventaja del famoso Apache de Linux. De hecho si
quitamos la gratuidad al servidor Apache no le queda absolutamente nada que no pueda hacer
IIS, incluso al contrario: la orientación a componentes de IIS es mucho mas completa y mejor
implementada que la del Apache. IIS soporta la misma carga de clientes, es fácil de instalar y
configurar y su mantenimiento es trivial cosa que no se puede decir de su competidor. Uno de los
temas en los que Microsoft todavía tienen que avanzar es en la seguridad, el abarcar tantos
conceptos, tecnologías y componentes hace que IIS sean mas susceptible de tener agujeros de
seguridad que su competidor, mas simple y limitado. En cualquier caso en las Intranets, IIS de
Microsoft gana por goleada. A lo largo de este curso iremos viendo porqué y que elementos
podremos integrar en nuestra Intranet.
Aun así y comprendiendo la importancia del mundo Web hay una versión de Windows 2003 y
2008 Server llamada "Web Edition" que permite de una forma muy económica montar un sitio
Web con toda la potencia de su entorno e integrado perfectamente en nuestra red. Le han
limitado algunos servicios pero dispone de todo lo necesario para desempeñar su función
perfectamente. Todo a un previo muy asequible que queda perfectamente amortizado por la
cantidad de horas necesarias para configurar un servidor Linux.
Como complemento a nuestra Intranet debemos utilizar bases de datos para almacenar
información. Quizás el uso de las bases de datos en las Intranets sea la parte mas importante
porque la función de una Intranet que es proporcionar información debe estar de alguna forma
almacenada y ordenada en bases de datos.
En capítulos posteriores hablaremos en profundidad de las bases de datos pero como en esta
introducción estamos explicando lo que necesitamos para construir nuestra Intranet, no podíamos
dejar de comentar esta parte.
IIS ofrece una administración muy sencilla que se realizará mediante el Administrador de servicios
de Internet. IIS permite que el desarrollo de aplicaciones Web sea mucho más robusto y la
creación de sitios Web sea más configurable y completa. Ofrece un entorno escalable basado en
los componentes cliente/servidor que se pueden integrar dentro de las aplicaciones Web.
Internet Information Server es el servidor Web más rápido y recomendable para la plataforma
Windows 2003/2008, ya que se encuentra integrado completamente con el Servicio de Directorios
de Windows (directorio activo), esta combinación del servicio Web con los servicios del sistema
operativo permite desarrollar aplicaciones basadas en la Web fiables y escalables. Que conste
que esto no lo he sacado de la propaganda, Microsoft suele dejar los programas mal terminados
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 4 of 47
(agujeros de seguridad, fallos) pero las ideas son buenas y casi siempre aporta facilidad de uso.
Será el más criticado pero también hay que reconocer que está en el 90% de todos los
ordenadores del mundo.
2. Primeros pasos con IIS
Si la instalación ha sido correcta podremos entrar ya en nuestro sitio web. Para comprobarlo
basta con iniciar un explorador web y escribir en la barra de dirección el nombre de nuestro
servidor web, en nuestro caso le hemos llamado "servidor". Con Windows 2008 Server:
Pantalla que nos da la bienvenida al servidor IIS y nos facilita alguna herramienta de
administración a través de páginas web. Sin embargo lo habitual y recomendable es que
trabajemos desde otro equipo.
En construcción
El sitio al que intentó conectarse no tiene en este momento
una página predeterminada. Es posible que esté en proceso
de actualización.
Inténtelo de nuevo más tarde. Si el problema continúa,
póngase en contacto con el administrador del sitio Web.
Si tenemos un Windows Server 2003 veremos un mensaje como el anterior si estamos entrando
desde fuera del servidor. Si nos fijamos en el mensaje lo que al principio podíamos tomar como
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 5 of 47
un error es simplemente un mensaje que le falta una página de inicio al servidor web. La versión
4.0 de NT Server si que activaba por defecto un sitio web de ejemplo pero ese sitio era un agujero
de seguridad puesto que permitía realizar algunas operaciones "peligrosas" por este motivo en el
Server 2003 Microsoft no activa ningún web sino que devuelve una página diciendo que si está
funcionando pero que ahora hay que alimentarlo.
Por lo tanto, para empezar a configurar los sitios Web debe indicar los directorios que contienen los
documentos que desea publicar. El servidor Web no puede publicar documentos que no están en los
directorios especificados. Por lo tanto, el primer paso para desarrollar un sitio Web debe ser determinar
cómo desea organizar los archivos. Después se utiliza el complemento IIS para identificar los
directorios que forman parte del sitio.
La estructura de directorios que IIS crea es la siguiente:
En la unidad C se crea el directorio "Inetpub" y de ahí los
servicios instalados, en la imagen están además del
servicio web "wwwroot" el servicio de mensajeria "mailroot"
y el de transferencia se ficheros "ftproot".
Luego... inicialmente cuando solicitemos una página irá a
buscarla al directorio c:\inetpub\wwwroot
La administración en Windows 2008 Server ha cambiado radicalmente respecto a la de Windows
2003 Server. Ahora es mas completa y permite muchas mas opciones. Dada su grandísima
diferencia me tendría que extender mucho en esta primera parte así que me voy a centrar solo en
la versión de Windows 2008 Server ya que es la última y la mas similar si queremos instalar el IIS
en Windows Vista o Windows 7.
En Windows Vista o Windows 7 tenemos una versión reducida de Internet Information Server. Si
lo instalas podrás comprobar muchas de las opciones que vamos a ver a continuación. Pero es
una versión limitada y deberíamos acudir a la versión del servidor.
3. La consola Administrativa de IIS en Windows
Server 2008
3.1 Página de inicio de la administración de IIS7
Vamos a ver la página de administración de IIS7. Los que conocíais las versiones anteriores
veréis que han cambiado un poco de sitio pero está todo y bien ordenado. En las herramientas
administrativas abrimos el administrador de IIS7:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 6 of 47
El aspecto es el mismo que en las otras funciones del servidor. En las conexiones mas recientes
tenemos los servidores a los que nos hemos conectado últimamente, a continuación las tareas
mas comunes para conectarse con otros servidores y luego información en línea sobre IIS7.
Cada servidor Web se compone de uno o varios grupos de aplicaciones:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 7 of 47
Estos son los motores de las aplicaciones que pueden ejecutar, en el ejemplo anterior tenemos:
Classic .NET AppPol. Ejecuta las aplicaciones ASP.NET
DefaultAppPool. Ejecuta aplicaciones estáticas y otras páginas de código antiguas.
TSWebAccess. Puede que no la tengas, a mi me aparece porque la añadí antes en la
configuración de los servicios de terminal. Son un grupo de páginas que permiten conectarse a
servidores de terminales mediante páginas web.
Como ves queda muy organizado ya que es muy buena la idea de los grupos de aplicaciones. Por
ejemplo, cuando ejecutamos aplicaciones .NET utilizaremos ese motor y usará un espacio de
direcciones propio para sus operaciones. Otras aplicaciones ejecutarán entonces otros motores
que no interferirán con el que está ejecutando las páginas ASP.NET. Además al ejecutarse como
si fueran aplicaciones diferentes, cada una puede tener sus propios parámetros de seguridad,
memoria y recursos. En definitiva, el dividir en aplicaciones todo lo que puede ejecutar el servidor
hace que sea mas eficiente, escalable y seguro. Date cuenta que podemos instalar un nuevo
componente que ejecute por ejemplo código PHP (Linux) y se instalará como una aplicación mas
del servidor IIS7.
Lejos quedan los tiempos en los que IIS ejecutaba todo tipo de aplicaciones y páginas utilizando
el mismo entorno de trabajo, espacio de memoria y propiedades. Esto lo hacía mas lento y mucho
mas inseguro al compartir en el mismo espacio de memoria todas las aplicaciones.
Definitivamente es una buena idea separar las aplicaciones.
Habrás visto que tenemos también nuestra parte para el servicio de FTP. Si lo seleccionamos
veremos un mensaje a la derecha que nos indica que pulsemos para administrar el servicio FTP,
si le damos obtenemos esta nueva consola administrativa:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 8 of 47
Pues si, nos muestra la consola de la versión anterior IIS 6.0 como ves en el propio título. Esto
significa que es exactamente el mismo servicio con las mismas opciones que tenía Windows
2.003 Server.
Por último y antes de ver todo lo que tiene este servicio fíjate que al pulsar en el servidor:
Vemos los iconos para configurar cada una de las partes del servicio. Esto antes era un grupo de
solapas y ahora se han separado en un grupo de iconos. Si vienes de Windows 2.003 Server, no
te preocupes, son las mismas cosas ampliadas. Básicamente se divide en tres niveles:
Servidor Web. Configura todos los sitios web del servidor y las propiedades de él mismo.
Utilizaremos estas opciones para configurar todos los sitios web que contiene y el
comportamiento general del servidor.
Sitio Web. Configura únicamente el sitio web seleccionado, sin afectar a los otros sitios webs
alojados en el servidor.
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 9 of 47
Aplicación o directorio. Controla la funcionalidad de una aplicación o de un directorio. Lo que
configuremos aquí sobrescribe a lo que se haya puesto en el nivel anterior de la configuración del
web. Por ejemplo, si en una carpeta determinada del sitio web queremos dar permisos distintos o
queremos que se puedan explorar los directorios desde el navegador.
3.2 Características ASP.NET
ASP.NET tiene un valor muy importante en las instalaciones corporativas porque cada vez mas
las aplicaciones tienden a administrar o explotarse desde web. PHP en el mundo Internet y
ASP.NET en las Intranets son los mas utilizados en el mundo ahora mismo. En esta versión de
IIS7 se han potenciado mucho las aplicaciones sobre esta plataforma en varios aspectos, mejorar
su rendimiento y facilitar su administración. Veamos cada uno de los iconos o secciones:
Compilación de .NET.
Cuando un desarrollador crea una aplicación en .NET, ésta permanece en código fuente hasta
que se ejecuta. Es decir, se crear una página con código asp.net pero hasta que no se solicita no
se compila para ejecutarse. Las demás peticiones ya no requerirán la compilación de la página y
utilizarán ya ese código. El usuario siempre verá una aplicación compilada. Si vemos sus
opciones:
Son parámetros para controlar la salida, como el tamaño máximo del archivo resultado.
Activar la depuración, imprescindible para los desarrolladores, el control de los
ensamblados que utiliza la aplicación para los recursos.
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 10 of 47
Globalización de .NET.
Esta opción nos ayudará a configurar los idiomas utilizados en .NET. Así sabe qué debe devolver
según el idioma definido y en que formato.
Si dejamos la predeterminada, será la aplicación ASP.NET quien defina estos parámetros
del idioma. Parece que no, pero para que veas la importancia, afectaría al formato de las
fechas, monedas y números. También en la forma de codificación de las páginas para su
transmisión, utilizando el mas común, UTF.
Niveles de confianza de .NET.
Introduce el concepto de la confianza del código. Si permitimos una confianza total, el servidor
ejecutará todo sin restricciones ni límite de acceso a los recursos. Pero es muy peligroso para su
explotación, sería un nivel únicamente para una máquina de desarrollo sin salida al exterior.
Veamos los niveles:
Full. Utilizado solo para desarrollo. No proporciona ningún mecanismo de seguridad
High. Para uso interno (intranets) con acceso a los recursos. La seguridad es mínima pero al
tratarse de Intranets de la empresa, suponemos que si debe tener acceso a los recursos excepto
a acciones que pueden comprometer al sistema
Medium. Para redes privadas con limitación de recursos. La seguiremos utilizando en Intranets y
limita el acceso a muchos recursos. Aun así alguien "malicioso" si podría ejecutar código para
saltarse la seguridad.
Low. Para acceso público. Proporciona buena protección a la red pero si no está correctamente
configurada la aplicación se podrían acceder a recursos del servidor
Minimal. Para acceso público. Cuando no se tiene confianza en nadie, la mayoría de las
aplicaciones no se ejecutarán pero es la opción mas segura.
Configuración de aplicaciones.
Si queremos crear código personalizado que ejecute el servidor. Las entradas se escriben de la
forma -> nombre:valor. El código lee el valor establecido en el nombre y realiza las tareas
apropiadas basándose en el valor proporcionado.
Cadenas de conexión.
Proporciona información para que las aplicaciones puedan conectarse a bases de datos. Es una
forma mucho mas sencilla que antes porque definiremos aquí las cadenas conexión quedando
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 11 of 47
ocultas para la aplicación y así no descubrir información. Verás que ya hay una creada que
apunta al propio servidor y que no debemos borrar.
Clave del equipo.
La clave de equipo proporciona la encriptación necesaria para proteger las aplicaciones. Con esta
opción garantizamos mas la seguridad de los datos.
Páginas y controles.
Proporciona un aspecto robusto y coherente a las aplicaciones basadas en ASP.NET 2.0 y
superior. Los que sepáis este lenguaje os sonarán las opciones que veréis aquí y que podemos
predefinir en el sitio web: ¡muy práctico!
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 12 of 47
Proveedores.
Se trata de las conexiones a bases de datos para proporcionarlas a IIS7. Como ves todo gira a
integrar las aplicaciones ASP.NET con IIS ya que antes apenas había conexión entre las dos
partes y tenían muchos ficheros de configuración distintos. Los proveedores incluyen varias de las
entradas necesarias para conectar IIS7 con los datos: usuarios .net, roles .net, perfiles .net.
Estado de la sesión.
Un capítulo muy importante en las aplicaciones .NET ya que trata entre otras cosas del tiempo de
vigencia de las variables de las aplicaciones:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 13 of 47
HTTP no mantiene información de ninguna sesión: cuando el usuario solicita una página el
servidor abre y cierra la conexión. Esto no es válido para sitios web con identificación de
usuarios, así que tenemos aquí los mecanismos para mantener una serie de variables "vivas"
mientras exista la conexión con el usuario. De esta forma podemos tener la misma información en
varias páginas de la visita (usuario). En esta sección mantendremos las variables de tipo
"session", si te animas al curso de ASP.NET 3.5 (versión de 2.008) verás y aprenderás a fondo
este interesante mundillo de la programación web.
De las opciones mostradas, las predeterminada "en proceso" es la más rápida ya que utiliza la
memoria del sistema aunque gasta algo de recursos.
Correo electrónico SMTP.
El protocolo de transferencia simple de mensajes, o SMTP, es una parte de la instalación básica
de IIS7. En este caso el uso de SMTP es para tareas administrativas y no para su uso como
pasarela de correo. Es muy habitual que las aplicaciones manden correos con el estado de la
administración de éstas o del la "salud" de las aplicaciones.
IIS7 proporciona una opción para configurar la dirección de correo SMTP para utilizarla en la
aplicación. La configuración identifica a la aplicación, no al recipiente, es decir, la configuración le
dice a IIS7 como configurar la aplicación. La configuración es muy sencilla y podemos establecer
distintas direcciones de correo en distintos niveles: aplicación, webs individuales, ...
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 14 of 47
Proporciona dos métodos para enviar correos: utilizar un servidor SMTP o almacenar los correos
localmente. En los dos casos debemos proporcionar una dirección de correo que será la que
figure como el origen. Luego indicaremos un servidor SMTP con su puerto, habitualmente y como
viene de forma predeterminada, el 25. Si es necesario identificarse lo indicaremos en las
siguientes casillas.
Hay que asegurarse de poner bien los credenciales para identificarse en servidores externos.
Recuerda que para el curso utilizaremos el servidor de páginas que incorpora el Visual Web
Developer, por lo tanto podrías
3.3 Características de las sección IIS
Hemos visto para que sirven los iconos de la parte de ejecución de aplicaciones, veamos ahora
los de las características del propio servidor web IIS7:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 15 of 47
Son las mismas opciones y algunas mas que teníamos antes en la pantalla de propiedades,
aunque haya cambiado de posición es lo mismo, así que si conoces IIS6 no te costará reconocer
estas opciones que antes eran solapas de la página de propiedades:
ASP.
Ya sabemos que es el lenguaje para hacer páginas "inteligentes" con ejecución de código. Antes
hemos tratado de los detalles de ASP.NET, en este caso se trata de la versión anterior de estas
páginas que se llamaban simplemente ASP:
Al ser mas sencillas que las ASP.NET las opciones son muy pocas y se refieren a los parámetros
de depuración, búfer, juegos de caracteres. Ojo no confundas esto con lo anterior, se trata de las
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 16 of 47
páginas ASP antiguas (extensión .asp) y no de los nuevos motores .NET (extensión .aspx).
Algunas de las opciones interesantes son:
Habilitar búfer. Esta opción está deshabilitada por defecto en IIS 4.0. También afecta al
funcionamiento de las ASP que veremos mas adelante.
Habilitar rutas de acceso primarias. Permite que las páginas ASP utilicen rutas de acceso
relativas para el directorio primario del directorio actual (rutas de acceso con la sintaxis
"..")
Lenguaje ASP predeterminado. Tenemos dos motores instalados: Vbscript y Javascript y
podemos utilizar cualquiera de ellos. De forma predeterminada y el recomendado es
VBScript
Si conoces IIS6 verás que las opciones son iguales que las anteriores, te muestro la
pantalla de IIS6 para que veas las similitudes:
Autenticación.
Podemos configurar IIS para autenticar o determinar la identidad de la cuenta de un usuario de
Windows, antes de permitir que éste establezca una conexión de red con su servidor. Sin
embargo, la autenticación de los usuarios sólo tendrá lugar cuando esté desactivado el acceso
anónimo o cuando los permisos NTFS requieran que los usuarios se identifiquen con el nombre y
la contraseña de una cuenta de usuario válida de Windows.
Con las opciones de autenticación que ofrece IIS, podemos elegir un método de autenticación
que se ajuste a los requisitos de seguridad y a las capacidades del explorador Web del usuario.
Puede especificar que los usuarios proporcionen el nombre de usuario y la contraseña de una
cuenta de usuario válida de Microsoft Windows para poder tener acceso a cualquier información
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 17 of 47
del servidor. Este proceso de identificación recibe el nombre de autenticación. La autenticación,
como muchas de las características de IIS, se puede establecer para sitios Web, directorios o
archivos. IIS proporciona los siguientes métodos de autenticación para controlar el acceso al
contenido del servidor. Veamos los métodos mas importantes
Autenticación anónima
La autenticación anónima proporciona a los usuarios acceso a las áreas públicas del sitio
Web o FTP sin preguntar el nombre de usuario o la contraseña. Cuando un usuario intenta
conectarse al sitio Web o FTP público, el servidor Web le asigna la cuenta de usuario de
Windows llamada IUSR_nombre_equipo, donde nombre_equipo es el nombre del servidor
en el que se ejecuta IIS. De manera predeterminada, la cuenta IUSR_nombre_equipo está
incluida en el grupo de usuarios Invitados de Windows. Este grupo tiene restricciones de
seguridad impuestas por los permisos NTFS, que designan el nivel de acceso y el tipo de
contenido que hay a disposición de los usuarios públicos.
Si tiene varios sitios en el servidor o si tiene áreas de su sitio que requieren diferentes
privilegios de acceso, puede crear varias cuentas anónimas, una para cada sitio Web o
FTP, directorio o archivo. Al dar a estas cuentas diferentes permisos de acceso o al
asignar estas cuentas a grupos de usuarios de Windows diferentes, puede otorgar a los
usuarios acceso anónimo a distintas áreas de contenido público Web y FTP.
1. La cuenta IUSR_nombre_equipo se agrega al grupo Invitados del equipo IIS durante la
instalación.
2. Cuando se recibe una solicitud, IIS suplanta la cuenta IUSR_nombre_equipo antes de
ejecutar cualquier código o de tener acceso a cualquier archivo. IIS puede suplantar la
cuenta IUSR_nombre_equipo porque conoce el nombre de usuario y la contraseña de
esta cuenta.
3. Antes de devolver una página al cliente, IIS comprueba los permisos de archivos y
directorios NTFS para determinar si la cuenta IUSR_nombre_equipo tiene acceso al
archivo.
4. Si está permitido el acceso, se completará la autenticación y los recursos estarán
disponibles para el usuario.
5. Si no está permitido el acceso, IIS intentará utilizar otro método de autenticación. Si no
hay ninguno seleccionado, IIS devolverá al explorador un mensaje de error "HTTP 403
Acceso denegado".
La cuenta anónima debe tener el derecho de usuario para el inicio de sesión local. Si la
cuenta no tiene el permiso Inicio de sesión local, IIS no podrá atender ninguna solicitud
anónima. La instalación de IIS concede específicamente el permiso Inicio de sesión local a
la
cuenta
IUSR_nombre_equipo.
De
forma
predeterminada,
las
cuentas
IUSR_nombre_equipo de los controladores de dominio no se asignan a las cuentas de
invitados. Para permitir inicios de sesión anónimos, debemos cambiar las cuentas
IUSR__nombre_equipo a Inicio de sesión local
Autenticación básica
La autenticación básica es un método estándar muy extendido para recopilar información de nombre de
usuario y contraseña. El proceso para autenticar se realiza de la siguiente forma:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 18 of 47
1. El explorador Web Internet Explorer muestra un cuadro de diálogo en el que el usuario
debe escribir su nombre de usuario y contraseña de Windows previamente asignados, que
también se conocen como credenciales.
2. El explorador Web intentará establecer la conexión con un servidor, mediante las
credenciales del usuario. La contraseña de texto simple se codifica en Base64 antes de
enviarla a través de la red.
Importante La codificación en Base64 no es un cifrado. Si una contraseña
codificada en Base64 es interceptada en la red por un husmeador de redes, la
contraseña puede ser descodificada y utilizada por personas no autorizadas.
3. Si las credenciales de un usuario son rechazadas, Internet Explorer muestra una ventana
de diálogo de autenticación para que el usuario vuelva a escribir sus credenciales. En
Internet Explorer se permite al usuario tres intentos de conexión antes de informarle de
que no se puede establecer la conexión.
4. Cuando el servidor Web compruebe que el nombre de usuario y la contraseña
corresponden a una cuenta de usuario válida de Microsoft Windows, se establecerá una
conexión.
La autenticación básica tiene la ventaja de que forma parte de la especificación HTTP y es
compatible con la mayoría de los exploradores. La desventaja de los exploradores Web
que utilizan la autenticación básica es que transmiten las contraseñas sin cifrar. Mediante
la supervisión de las comunicaciones en la red, alguien podría fácilmente interceptar y
descodificar estas contraseñas mediante herramientas de dominio público. Por tanto, la
Autenticación básica no es recomendable a menos que tenga la seguridad de que la
conexión entre el usuario y el servidor Web sea segura, como una línea dedicada o una
conexión Capa de sockets seguros (SSL)
Autenticación de texto implícita
La autenticación de texto implícita ofrece la misma funcionalidad que la autenticación
básica. Sin embargo, la autenticación de texto implícita supone una mejora en la seguridad
debido a la forma en que se envían las credenciales del usuario a través de la red. La
autenticación de texto implícita transmite las credenciales a través de la red como un hash
MD5, también conocido como mensaje implícito, en el que el nombre de usuario y la
contraseña originales no pueden descifrarse del hash. La autenticación de texto implícita
está disponible para los directorios del Sistema distribuido de creación y control de
versiones Web (WebDAV).
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 19 of 47
Antes de habilitar la autenticación de texto implícita en el servidor IIS, asegúrese de que se
cumplen los requisitos mínimos siguientes. Sólo los administradores de dominio pueden
comprobar que se cumplen los requisitos del controlador de dominio (DC). Si tiene dudas,
consulte al administrador del dominio si el controlador del dominio cumple con los
requisitos siguientes:
Todos los clientes que tienen acceso a un recurso protegido con autenticación de texto
implícita van a utilizar Internet Explorer 5.0 o posterior.
El usuario y el servidor IIS deben ser miembros o tener la confianza del mismo dominio.
Los usuarios deben tener una cuenta válida de usuario de Windows almacenada en Active
Directory en el controlador de dominio.
El controlador del dominio debe ser un equipo con Windows 2000 o posterior.
El servidor IIS debe ser un equipo con Windows 2000 o posterior.
Autenticación de Windows
La autenticación de Windows (anteriormente llamada NTLM, también denominada
autenticación de desafío y respuesta de Windows NT) es un método seguro de
autenticación, ya que el nombre de usuario y la contraseña se procesan con el método de
hash antes de enviarlos a través de la red. 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 método de hash.
La autenticación de Windows integrada utiliza los métodos de autenticación Kerberos v5 y
NTLM. Si los servicios Active Directory están instalados en un controlador de dominio con
Windows 2000 o posterior y el explorador del usuario es compatible con el protocolo de
autenticación Kerberos v5, se utilizará la autenticación Kerberos v5; de lo contrario, se
utilizará la autenticación NTLM.
Nota El protocolo de autenticación Kerberos v5 es una característica de la arquitectura de Servicios distribuidos
de Windows 2000. Para que la autenticación Kerberos v5 se realice correctamente, tanto el cliente como el
servidor deben tener una conexión de confianza a un Centro de distribución de claves (KDC) y ser compatibles
con los Servicios de directorio.
Traduciendo este definición digamos que el navegador no se valida cada vez, sino que
envía los credenciales del dominio/usuario y establece una comunicación donde no vuelve
a enviar la contraseña. Es el mejor sistema para una Intranet pero debemos tener un
sistema de dominios instalado en nuestra red.
Autenticación mediante formularios y Suplantación de ASP.NET
Los formularios son una colección de controles basada en la gestión de usuarios de
ASP.NET que proporcionan todas las páginas necesarias para la identificación y
mantenimiento de usuarios. La suplantación también es otra de las alternativas de
ASP.NET y si no vas a desarrollar con .NET no necesitarás ninguno de estos dos métodos.
Qué autenticación elegir
Revisamos los niveles de seguridad
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 20 of 47
Autenticación anónima: permite que cualquier usuario tenga acceso sin que se le pida su
nombre de usuario y contraseña.
Autenticación básica: solicita al usuario su nombre de usuario y contraseña, que se envían
sin cifrar a través de la red.
Autenticación de texto implícita: funciona de manera similar a la autenticación básica,
pero difiere de ella en que las contraseñas se envían como un valor de hash. La
autenticación de texto implícita sólo está disponible para los dominios con un controlador
de dominio de Windows 2000.
La autenticación de Windows utiliza la tecnología de hash para identificar al usuario sin
enviar realmente la contraseña a través de la red.
Autenticación basada en ASP.NET. Si utilizamos los controles y formularios para controlar
el acceso.
Si utilizamos la primera opción el acceso será anónimo y no tendremos ningún tipo de
identificación a lo largo de la sesión del usuario. Es una seguridad propia para un Web de
Internet, ya que nadie debe, en principio, identificarse. La segunda opción la rechazamos
inmediatamente por no tener ningún tipo de seguridad a la hora de transmitir la contraseña.
Y de las demás nos quedamos con la "Seguridad de Windows". Ésta envía los
credenciales del usuario en cada petición. Esto funcionalmente hace que desde ASP.NET
podamos saber siempre que usuario ha solicitado la página. También es buena opción
utilizar las opciones de seguridad de ASP.NET si vamos a desarrollar con este lenguaje,
como ves posibilidades hay muchas...
Reglas de autorización.
Es una mezcla de reglas de cortafuegos con permisos. Si conoces ASP.NET es lo mismo que la
asignación de permisos según los "roles". Es otra de las mejoras de esta versión IIS7, y ya van
unas cuantas!. Determina quien puede acceder al servidor, por ejemplo podemos dejar acceso a
una carpeta o aplicación pero denegar a las demás. Si lo mezclamos con la seguridad basada en
formularios, donde se identifiquen los usuarios, tendremos un control muy avanzado de los
accesos a nuestro servidor.
Iremos añadiendo reglas indicando quienes tienen permiso y de que tipo, lo mismo que en un
cortafuegos:
CGI.
"Common Gateway Interface" es uno de los mas antiguos sistemas para ejecutar aplicaciones
web. Fue prácticamente la primera vez que las páginas pudieron consultar bases de de datos y
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 21 of 47
otro tipo de operaciones no estáticas. Se utilizaba escribiendo ficheros con secuencias de
comandos que luego ejecutaba el servidor. Se mantiene por compatibilidad e incluso se mejoran
algunas opciones como el establecer el tiempo de espera o "timeout"
Compresssion.
La velocidad del servidor web depende del ancho de banda disponible, por eso si se comprime la
información, ésta necesitará menos ancho de banda para transmitirse:
Documento predeterminado.
Establece el archivo que va a devolver por defecto:
Es decir, cuando el usuario escriba la dirección del sitio web (por ejemplo
www.miempresa.es) el servidor web devolverá el primero que encuentre de los que le
indicamos en esta página. Lo habitual es default.aspx si aloja aplicaciones realizadas
en .NET. Siempre que se acceda sin indicar un nombre de página se buscará por ese
orden estas páginas en la carpeta o web solicitado. Es muy importante que exista para no
dejar puntos sin control y pueda ser sujeto de un ataque.
Exámen de directorios.
Esta opción permite navegar por las carpetas y ficheros de un sitio web, de forma similar a la
navegación por carpetas del explorador de archivos. Lógicamente por seguridad esta opción está
deshabilitada y así debe permanecer porque mostramos a los usuarios todos nuestros ficheros de
la web, incluidos los de configuración, facilitando un posible ataque.
Sin embargo es una útil opción si lo que queremos es precisamente que el usuario explore una
serie de ficheros donde podremos controlar que datos queremos mostrar al usuario:
Hora
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 22 of 47
Tamaño
Extensión del archivo
Fecha
Fecha larga (sin está disponible)
Los usuarios verán nombres de ficheros con sus iconos que identifican el tipo de contenido del
fichero. Para tener mas seguridad se desaconseja utilizar esta opción.
Páginas de error.
Cuando el servidor o una aplicación encuentra un error, éste genera un código. Con esta opción
podremos personalizar estos errores. Lo veremos con mas detalle un poco mas adelante.
Asignación de controlador.
Cuando nosotros solicitamos una página web al servidor, éste analiza el tipo de página y
dependiendo de su extensión la procesará de una forma u otra. Es decir si es de tipo .asp la
ejecutará con un determinado programa y si es .aspx con otro. En esta sección podemos añadir
los controladores que queremos que nuestro servidor pueda manejar:
Como ves, por seguridad están deshabilitados los dos primeros, sistemas muy antiguos e
inseguros. Debajo tenemos todas los tipos de archivos que va a reconocer y con que aplicación
debe ejecutarlos según la extensión que tenga. Nada impide por supuesto que creemos uno
nuestro con determinadas extensiones y así cuando se solicite una página de esa extensión IIS lo
mandará a ejecutar con ese programa. Por ejemplo:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 23 of 47
Cuando se solicite una página con extensión .aspx en lugar de devolverla, la ejecutará el
programa que estamos indicando, que en este caso es el motor de ASP.NET 2.0
Redirección HTTP.
Hay varias razones por las que podemos querer redirigir nuestro sitio web. Por ejemplo, porque
estamos reorganizando nuestro sitio, lo estamos moviendo e sitio o de dominio, mostrar un
mensaje de "parado por mantenimiento"... Con IIS7, se trata de un procedimiento muy sencillo,
podemos redireccionar una carpeta o el servidor web entero.
Encabezados de respuesta HTTP.
Le comunica cierta información a las solicitudes de los clientes:
Podemos crear los encabezados automáticos que queramos desde esta opción. Como ves hay
uno definido que, independiente del contenido de la página, incluirá en la solicitud del usuario.
Esta información no aparece en el navegador, el usuario no verá nada especial en la página,
pueden ser datos de identificación del autor o de configuración de las páginas, como veremos
ahora. Podemos añadir encabezados mas complejos si seleccionamos la opción de "establecer
encabezados comunes":
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 24 of 47
Tenemos estas dos opciones, la primera de ellas es muy importante que se mantenga. Le indica
al servidor que deje la conexión establecida con el cliente mientras esté enviando elementos.
Todas las páginas incluyen muchos elementos, así que es mejor que se quede la conexión
abierta para su transferencia, de lo contrario la velocidad se verá muy afectada.
La segunda parte, la de la expiración del contenido, se refiere a que podemos forzar al servidor a
que actualice la información del servidor cada cierto tiempo. Seguro que has visto alguna
retransmisión de algún partido por la web de algún periódico y has visto que la página se recarga
sola cada poco tiempo, aquí es donde podemos establecer esos tiempos.
Restricciones de direcciones IPv4 y de dominios.
Podemos restringir o conceder el acceso a los dominios o intervalos de direcciones que
indiquemos:
Por ejemplo, sabemos que ha habido problemas desde una IP de nuestra red, podemos
suprimir el acceso de esa dirección mediante esta opción. O es una de nuestras subredes
de nuestra empresa pero que no queremos que accedan a esta zona o a esta sección
Web.
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 25 of 47
Es mejor utilizar las restricciones a nivel de direcciones ya que si son a nivel de dominios,
el servidor siempre tendrá que hacer consultas de nombres de dominio y eso cuesta algo
mas de tiempo.
Restricciones ISAPI y CGI.
Son tecnologías mas antiguas que no están activadas por defecto y deberíamos activarlas
simultáneamente desde aquí para poderse utlizar. Es decir, al ser antiguas e inseguras debemos
decirle explícitamente que las reconozca. Esta restricción hace que nuestro servidor sea mucho
mas seguro.
Filtros ISAPI.
Las aplicaciones ISAPI (ISAPI es la API de IS, es decir la interfaz de programación del servidor
web), o lo que es lo mismo, las aplicaciones que se pueden ejecutar en el servidor web se indican
de dos formas: extensiones ISAPI y filtros ISAPI. Una extensión ISAPI controla las solicitudes de
páginas ASP, CGI, ... En cambio un filtro ISAPI realiza un servicio distinto que la extensión. Por
ejemplo, podemos decirle en un filtro ISAPI que determinadas páginas de inicio de sesión (login)
sea rechazadas dependiendo de los criterios que indiquemos. Es decir "filtra" las páginas que
luego se ejecutarán.
Simplemente añadiremos en ese cuadro de diálogo el nombre del filtro y el ejecutable. Con
esto, .NET puede utilizar el filtro ISAPI para ver las solicitudes ASP.NET
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 26 of 47
Registro de la actividad
El registro de la actividad es una de las partes importantes porque nos va a mostrar todo las
peticiones que se realizan a nuestro servidor. Dada su importancia la trataremos un poco mas
adelante.
Tipos MIME.
Las "extensión de mail de Internet Multipropósito" (MIME) define como debe manejar el cliente
determinados tipos de archivos. Esta tecnología viene originalmente del correo electrónico donde
le ayudaba a tratar con los ficheros adjuntos, definiendo los tipos que podría reconocer. Habrás
observado que cuando le damos a un hipervínculo que es un vídeo se abre el Windows Media,
eso es porque reconoce los formatos MIME, lanzando la aplicación asociada con esa extensión.
De igual forma que Windows reconoce las extensiones, estas definiciones le indican al navegador
como tratarlas.
Modulos.
IIS necesita saber dónde encontrar el código que necesita para ejecutar tareas. Puesto que IIS7
está basado en .NET, encontrará todo lo que necesita en el propio núcleo de .NET. Esta sección
contiene una lista de módulos de código nativo que se instalan con IIS.
Almacenamiento en caché de resultados.
Un servidor puede mejorar su rendimiento actualizando el contenido solo si necesita actualizarlo.
Es decir, si una persona solicita un informe y luego otra persona lo solicita 5 minutos después lo
normal sería que fuese el mismo informe. En ese caso se mandaría una copia del primer informe
al usuario. Con esta opción nos permite crear unas reglas de uso de caché para controlar como
IIS7 recicla el contenido
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 27 of 47
Certificados de servidor.
Los certificados digitales son la forma de asegurar al cliente que está en el sitio que ha solicitado.
Añadido con SSL asegura totalmente la comunicación. Para utilizar esta característica debemos
crear una entrada en esta sección.
En las anteriores versiones de IIS solo se permitía la instalación de un certificado, la evolución
hace que en este IIS7 tengamos varias opciones interesantes:
Técnica
Utilización
Descripción
Importar
Cualquier
sitio Web
Es la antigua opción. Podemos conseguir un
certificado de una empresa autorizada
externa, como VeriSign, e importarlo en
nuestro servidor. Solo tenemos que indicarle
dónde está y la contraseña para abrirlo
Crear
solicitud
de certificado
Intranets y
sitios
privados
de
confianza
Es un proceso de dos pasos, primero
creamos una solicitud y se la enviamos a
VeriSign, por ejemplo. Esta empresa nos
responde y utilizaremos la opción de
completar la solicitud de certificado para
instalarlo. Es parecido a lo anterior pero no
tenemos que hacer una solicitud por separado
y luego importarlo, sino que todo se hace
desde aquí.
Crear
certificado
de dominio
Intranets y
sitios
privados
de
confianza
Antes utilizábamos en este tipo de peticiones
un servidor que emitía certificados de nuestro
dominio. Perdíamos mucho tiempo
accediendo al web para acceder a ese
servidor, recuperar el certificado y finalmente
instalarlo manualmente. Ahora, con esta
opción podemos crear directamente un
certificado para su uso en nuestra intranet o
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 28 of 47
en un sitio web privado. Con esto ahorramos
dinero en la solicitud de un certificado y
proporcionamos una forma segura de
conexión.
Crear
certificados
autofirmados
Para
pruebas y
desarrollos
Muchas veces los desarrolladores necesitan
certificados para pruebas. Esta opción
proporciona un certificado que funciona para
pruebas y redes pequeñas pero no para su
uso a gran escala porque cualquiera puede
generar un certificado y acceder a este IIS.
Ya ves que sencillo es, no hay razón por la que no podamos poner en marcha un sitio web
seguro. Una vez que lo tenemos instalado podemos trabajar con SSL para asegurar totalmente
nuestro sitio Web y garantizar su privacidad.
SSL
Son las siglas del protocolo de páginas web seguras. Verás que es muy fácil asegurar nuestra
web y nos garantizará la confidencialidad de los datos. Incluso para una sencilla página de inicio
de sesión deberíamos aplicarle este protocolo para que la información se envíe encriptada y no
pueda interceptarse. Actualmente es imprescindible en cualquier sitio web que requiera
confidencialidad: desde portales de comercio electrónico, banca o correo electrónico.
El primer paso para crear un sitio web seguro es crear un certificado de servidor. Una vez creado
podemos crear un sitio web seguro que utilice este certificado:
Para acceder a esta pantalla sólo le he indicado "Agregar nuevo sitio web". Como puedes ver al
seleccionar el protocolo seguro "https" se activa la sección inferior para indicar el certficado.
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 29 of 47
Procesos de trabajo.
Finalmente esta opción nos muestra los procesos que se están ejecutando y la lista de solicitudes
que tienen. Por ejemplo, si vamos a esta pantalla y en un navegador solicitamos una página web
veremos que:
Nos muestra que se está ejecutando la aplicación predeterminada que es el propio servidor web.
Te recuerdo las aplicaciones que por defecto tenemos instaladas (puede ser algo distinta a las
que tienes en tu equipo):
Como ves, se cumplen varias cosas. Por un lado "DefailAppPool", que es nuestro servidor web se
encuentra en la lista de los grupos de aplicaciones de nuestro servidor, por eso al solicitar una
página web nos indica que está en ejecución. Y también vemos como efectivamente las
aplicaciones se van a ejecutar de forma independiente para no afectar a las otras. Además
pulsando en ese proceso podremos ver mas detalles. Por fin! esto no estaba disponible hasta
esta versión y es una gran mejora porque por fin podemos ver lo que se está ejecutando dentro
del servidor web
4. Características de administración
A nivel de servidor nos encontramos con un pequeño grupo de herramientas de administración:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 30 of 47
Recuerda que los iconos son distintos si estamos seleccionando el servidor o un sitio web creado
dentro de IIS. Lo que apliquemos a nivel de servidor serán para todos los sitios web y lo que
apliquemos en cada uno de ellos servirá para configurarlos individualmente. Si pulsas en el web
predeterminado verás que solo hay un icono de administración que es "Permisos del
administrador de IIS" ya que todos los demás (y ese mismo) se encuentran a nivel de servidor.
Veamos estas opciones:
Delegación de características
IIS nos permite configurar el nivel de acceso de todas sus características:
Podemos elegir en delegar cada característica y cómo queremos que se haga.
Permisos del Administrador de IIS
Muestra una lista de los usuarios que tienen permiso para realizar administración de tareas a nivel
de sitio. Si añadimos un usuario a la lista le proporcionaremos niveles de administración.
Usuarios del Administrador de IIS
En ocasiones podemos querer dar privilegios de administración a alguien que no es de nuestra
organización y por tanto no tiene usuario en nuestro directorio activo. Para evitar la creación de
un usuario, con esta opción podemos crear un usuario y asignarle una contraseña para pasar a
ser un administrador del sitio.
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 31 of 47
Servicio de Administración
Con esta opción configuraremos cómo queremos que se identifiquen los usuarios que
administrarán de forma remota este servidor:
Como ves en la pantalla por un lado definimos que usuarios lo administrarán: de Windows o los
creados en el punto anterior. Debajo podemos indicar en que IP de nuestro servidor se atenderán
estas peticiones y el puerto sobre el que funcionará el servicio de administración. Recuerda que el
puerto 80 está ocupado por nuestra web así que debe ser obviamente otro puerto. Debajo le
indicaremos el certificado para la conexión seguro e incluso podemos filtrar las direcciones IP
remotas. Esto es muy útil porque si sabemos la dirección del equipo o proveedor externo que nos
administrará el sitio web podemos restringir las conexiones de forma rápida.
Configuración compartida
Para terminar, una pequeña utilidad para tener centralizada la información de configuración de
nuestro IIS, así la podrá compartir con otro o hacer mas sencilla la tarea de la copia de seguridad
imprescindible. Por tanto si vamos a tener una "granja" de servidores no necesitaremos
almacenar la configuración de cada uno de ellos individualmente. Podemos establecer la
configuración de los otros utilizando la información proporcionada por esta opción.
5. Mensajes de error personalizados y registro de
visitas
5.1 Mensajes de error personalizados
Cuando se produce un error en nuestra Intranet: no encuentra una página, error del servidor,
excedido tiempo de espera... IIS muestra una página con el error. Estas páginas las encontramos
en un directorio de nuestro disco duro y podemos cambiarlas. Siempre es mejor mostrar un
mensaje personalizado con el logo y aspecto de nuestra Intranet que uno genérico. Veamos un
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 32 of 47
ejemplo del mismo mensaje de error visto por IIS de forma predeterminada y después he haber
hecho alguna pequeña modificación en su aspecto:
Estos son algunos de los errores que se pueden personalizar y que son los mas comunes:
Código de error
Mensaje
400
Solicitud incorrecta
403.1
Acceso de ejecución prohibido
403.2
Acceso de lectura prohibido
403.3
Acceso de escritura prohibido
403.8
Acceso al sitio denegado
403.14
Lista de directorios denegada
404
No se encuentra
404.1
Sitio no encontrado
500
Error interno del servidor
500-100.asp
Error ASP
Los mensajes de error se muestran en una lista del complemento IIS que IIS trata como una sola
propiedad. Por ejemplo, cuando se configura un conjunto de mensajes de error personalizados
para el sitio Web, todos los directorios de este servidor heredan la lista completa de mensajes
personalizados. Es decir, no se combinan las dos listas de mensajes de error personalizados
(para el servidor y para el directorio).
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 33 of 47
El error 404.1 sólo se produce en equipos con direcciones IP múltiples. Si se recibe una solicitud
de cliente en una combinación de dirección y puerto IP determinada y la dirección IP no está
configurada para la recepción en ese puerto específico, IIS devolverá el mensaje de error HTTP
404.1. Por ejemplo, si un equipo dispone de dos direcciones IP y solamente una de ellas está
configurada para escuchar en el puerto 80, cualquier solicitud con puerto 80 que se reciba en la
otra dirección IP hará que IIS devuelva el mensaje de error 404.1.
Podemos asignar mensajes de error personalizados a un archivo o a una dirección URL para esto
utilizaremos la hoja de propiedades Errores personalizados del complemento IIS:
Para personalizar un mensaje de error mediante su asignación a un archivo:
1. Creamos un archivo que contenga su mensaje de error personalizado y colocamos el archivo en
un directorio.
2. Seleccionamos el error HTTP que desea cambiar.
3. Hacemos clic en el botón Modificar propiedades.
4. Seleccionamos Archivo en el cuadro Tipo de mensaje.
5. Escribimos la ruta de acceso y el nombre del archivo que apunta al mensaje de error
personalizado o utilizamos el botón Examinar para localizar el archivo en el disco duro del equipo.
6. Hacemos clic en Aceptar.
Nota si es una URL seleccionaremos "Dirección URL" en el cuadro Tipo de mensaje.
Podemos modificar los ficheros con FrontPage u otro editor pero ojo, si incluimos un gráfico debe
ser con la forma http://servidor/images/logo.gif. De lo contrario incluirá un enlace a una ruta local
c:\imagenes\logo.gif que no funcionará bien. Por ejemplo, modificando el fichero "404b.htm" que
es el que se muestra cuando no encuentra la página quedaría así:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 34 of 47
Dado que ASP.NET tiene mucho que decir en IIS7 y que éste gestiona muy bien el control de
errores, podemos complementar estos errores estáticos con otro interceptados y tratados con
código ASP.NET desde nuestra aplicación web.
5.2 El registro de IIS
El registro de un sitio Web o FTP se realiza mediante unos módulos que funcionan
independientemente de las demás actividades del servidor. Podemos elegir el formato de los
registros para cada sitio Web o FTP individual. Si está habilitado el registro en un sitio, podemos
habilitarlo o deshabilitarlo individualmente para cada uno de sus directorios.
Cada formato de registro utiliza una zona horaria diferente como base para las horas mostradas
en los registros. El formato extendido W3C utiliza el Horario universal coordinado (UTC), lo que
antes llamábamos hora del meridiano de Greenwich, Los otros formatos utilizan la hora local. Las
horas mostradas en los archivos de registro reflejan la hora que el servidor utiliza para procesar
las peticiones y las respuestas. Estas horas no reflejan el tiempo transcurrido en la red hasta
llegar al cliente ni el tiempo de proceso del cliente.
Formatos de archivo de registro
Podemos elegir el formato que el servidor Web utiliza para registrar la actividad de los usuarios.
Disponemos de los siguientes formatos:
1. Formato de archivo de registro W3C
2. Formato de registro de Microsoft IIS
3. Formato del archivo de registro común NCSA
4. Personalizado
El formato de archivo de registro W3C, el formato de archivo de registro Microsoft IIS y el formato
de archivo de registro NCSA son todos formatos de texto ASCII. El formato W3C y el formato
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 35 of 47
NCSA registran datos con formato de año de cuatro dígitos. El formato de Microsoft IIS utiliza un
formato de dos dígitos para el año 1999 y anteriores y un formato de cuatro dígitos para los años
posteriores. El formato de registro que se proporciona con Microsoft IIS asegura la compatibilidad
con versiones anteriores de IIS. Únicamente se puede utilizar el formato de archivo de registro
W3C para crear formatos de registro personalizados con los campos precisos que se necesiten.
A título informativo comentaremos los tres tipos de registro que existen en IIS:
1. Formato de archivo de registro W3C
El formato W3C es un formato ASCII que puede personalizarse con diversos campos
diferentes. Puede incluir campos que considere importantes y limitar al mismo tiempo el
tamaño del registro si omite los campos que no desea. Los campos están separados por
espacios. La hora se registra como UTC (Horario universal coordinado).
En el ejemplo siguiente se muestran líneas de un archivo que incluye los campos
siguientes: Hora, Dirección IP del cliente, Método, Recurso (URL) visitado, Estado del
protocolo y Versión del protocolo.
#Software: Servicios de Internet Information Server 5.1 de Microsoft
#Versión: 1.0
#Fecha: 1998-05-02 17:42:15
#Campos: time c-ip cs-method cs-uri-stem sc-status cs-version
17:42:15 172.16.255.255 GET /default.htm 200 HTTP/1.0
La entrada anterior indica que el 2 de mayo de 1998, a las 5:42 p.m., UTC, un usuario con
HTTP versión 1.0 y dirección IP 172.16.255.255 emitió un comando GET de HTTP para el
archivo \Default.htm. La petición se resolvió sin errores. El campo #Fecha: indica cuándo
se hizo la primera entrada de registro, que es cuando se creó el registro. #Versión: indica
que se utilizó el formato de registro W3C.
Podemos seleccionar cualquiera de los campos, pero puede que algunos no tengan
información disponible para algunas peticiones. Para aquellos campos seleccionados que
no tengan información aparecerá un guión (—) en el campo como marcador de posición.
Al seleccionar este formato hemos dicho que podemos personalizar sus campos. Si
pulsamos en el botón "Propiedades" nos aparecerá una pantalla cuya segunda ficha será
como esta:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 36 of 47
Esta pantalla permite indicar que campos queremos que figuren en el registro.
2. Formato de registro de Microsoft IIS
El formato de Microsoft IIS es un formato ASCII fijo (no puede personalizarse) pero registra
más datos que el formato común NCSA. El formato de Microsoft IIS incluye elementos
básicos como la dirección IP del usuario, el nombre de usuario, la fecha y la hora de
petición, el código de estado de servicio y el número de bytes recibidos. Además, incluye
elementos detallados como el tiempo transcurrido, el número de bytes enviados, la acción
(por ejemplo, una descarga realizada con un comando GET) y el archivo de destino. Los
elementos se separan con comas, por lo que leer el formato resulta más sencillo que con
los demás formatos ASCII, que utilizan espacios como separadores. La hora de registro es
la local.
Al abrir un archivo con formato Microsoft IIS en un editor de textos, las entradas serán
similares a las de los ejemplos siguientes:
192.168.114.201, —, 03/20/98, 7:55:20, W3SVC2, VENTAS1, 192.168.114.201, 4502, 163, 3223, 200, 0, GET, /DeptLogo
172.16.255.255, anónimo, 03/20/98, 23:58:11, MSFTPSVC, VENTAS1, 192.168.114.201, 60, 275, 0, 0, 0, PASS, /intro.
En las tablas siguientes se interpretan las entradas anteriores. La fila superior de cada
tabla proviene de la segunda instancia del sitio Web (que aparece en "Servicio" como
W3SVC2) y la fila inferior de la primera instancia del sitio FTP (que se indica en "Servicio"
como MSFTPSVC1). El ejemplo se presenta en tres tablas por la limitación de ancho de
página.
Dirección IP del
usuario
Nombre del
usuario
Fecha
Hora
Servicio
instancia
Uso y
resultado
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 37 of 47
192.168.114.201
172.16.255.255
—
anonymous
03/20/98
7:55:20
03/20/98
23:58:11
Dirección IP del
servidor
Tiempo
empleado
Bytes
enviados
Bytes
recibidos
192.168.114.201
4502
163
3223
275
0
172.16.255.255
60
SALES1
W3SVC2
SALES1
MSFTPSVC1
Código de
estado de
servicio
Código de
estado de
Windows
0
200
0
0
Tipo de solicitud
Destino de la operación
Parámetros
GET
/DeptLogo.gif
—
[376] PASS
/intro.htm
—
En el ejemplo, la primera entrada indica que un usuario anónimo, con la dirección IP
192.168.114.201, envió un comando GET de HTTP para el archivo de
imagen /DeptLogo.gif a las 7:55 a.m. del 20 de marzo de 1998, desde un servidor llamado
VENTAS1 que tiene la dirección IP 172.21.13.45. La petición HTTP de 163 bytes ha tenido
un tiempo de proceso de 4502 milisegundos (4,5 segundos) y devolvió, sin errores, 3223
bytes de datos al usuario anónimo.
En el archivo de registro, todos los campos terminan en coma (,). Un guión (—) actúa como
marcador de posición si no hay un valor válido para un campo determinado.
3. Formato del archivo de registro común NCSA
El formato común NCSA es un formato ASCII fijo (no puede personalizarse), disponible para sitios
Web, pero no para sitios FTP. Registra información básica acerca de las peticiones de los
usuarios, como nombre de host remoto, nombre de usuario, fecha, hora, tipo de petición, código
de estado HTTP y número de bytes enviados por el servidor. Los elementos están separados con
espacios en blanco y la hora de registro es la local.
Al abrir un archivo con formato común NCSA en un editor de textos, las entradas serán similares
a las del ejemplo siguiente:
172.21.13.45 — REDMOND\fred [08/Apr/1997:17:39:04 -0800] "GET /scripts/iisadmin/ism.dll?http/serv HTTP/1
Nota En la entrada anterior, el segundo campo (que mostraría el nombre de inicio de sesión
remota del usuario) está vacío y está representado por el guión que sigue a la dirección IP
172.21.13.45.
En las tablas siguientes se interpreta la entrada de ejemplo anterior. Se utilizan dos tablas por la
limitación de ancho de página.
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 38 of 47
Nombre de host
remoto
Nombre de inicio
de sesión remota
Nombre de
usuario
Fecha
172.21.13.45
—
Rioja\jose
08 de abril de
1998
Hora y diferencia
con GMT
17:39:10 -0800
Petición/Versión
Código de estado de servicio
Bytes enviados
GET /scripts/iisadmin/ism.dll?http/serv HTTP/1.0
200
3401
La entrada indica que un usuario llamado Jose del dominio Rioja, con la dirección IP
172.21.13.45, envió un comando GET de HTTP (es decir, descargó un archivo) a las 5:39 p.m.
del 8 de abril de 1998. La petición devolvió, sin errores, 3401 bytes de datos al usuario jose.
4. Personalizado. Necesita una serie de elementos mas complejos que no soporta directamente
IIS7. Pulsa aquí si quieres mas información de este formato.
Tamaño de archivo de registro y creación de nuevos archivos de
registro
Cuando está habilitado el registro de IIS, (lo está de manera predeterminada) se generan nuevas
entradas de registro siempre que un usuario tiene acceso al servidor. Esto produce un incremento
progresivo del tamaño del archivo de registro o del número de archivos de registro. Podemos
necesitar equilibrar la recopilación de datos detallados con la necesidad de limitar los archivos a
un número y tamaño fáciles de administrar. IIS ofrece dos opciones para administrar la
generación de datos de registro y la creación de nuevos archivos de registro.
Una forma de administrar los datos de registro es personalizar el registro extendido W3C de modo
que sólo se recopilen los datos que se necesitan. Otra opción para administrar archivos de
registro es limitar el tamaño del registro mediante el cambio de la frecuencia de creación del
archivo de registro.
Los archivos de registro son simplemente archivos ASCII (de texto). Si ha creado muchos
archivos pequeños y prefiere uno grande, puede combinarlos como haría con cualquier archivo
ASCII.
Si el servidor se queda sin espacio en disco cuando IIS intenta agregar una entrada de registro a
un archivo, el registro de IIS se cierra. Al mismo tiempo, en el registro de aplicación del Visor de
sucesos de Windows, se registra un suceso. Cuando vuelve a haber espacio disponible en disco,
se reanuda el registro de IIS. Esto hace que se registre un suceso adicional en el registro de
aplicación del Visor de sucesos de Windows.
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 39 of 47
Nombres de archivo de registro
En los nombres de los archivos de registro se utilizan las primeras letras para representar el
formato y los números restantes para indicar el marco horario o la secuencia del registro.
Consulta la tabla siguiente para obtener más información. Las letras en cursiva representan
dígitos: nn para dígitos secuenciales, aa para el año, mm para el mes, ss para la semana del
mes, dd para el día y hh para la hora en formato de 24 horas (es decir, 17 es 5:00 p.m.).
Formato
Criterio para nuevo registro
Patrón de nombre de archivo
Formato de registro de Microsoft IIS
Por el tamaño del archivo
inetsvnn.log
Cada hora
inaammddhh.log
Diario
inaammdd.log
Semanal
inaammss.log
Mensual
inaamm.log
Por el tamaño del archivo
ncsann.log
Cada hora
ncaammddhh.log
Diario
ncaammdd.log
Semanal
ncaammss.log
Mensual
ncaamm.log
Por el tamaño del archivo
extendnn.log
Cada hora
exaammddhh.log
Diario
exaammdd.log
Semanal
exaammss.log
Mensual
exaamm.log
Formato del archivo de registro
común NCSA
Formato de archivo de registro
extendido W3C
Nota Existen muchos programas de otros fabricantes que recogen estos datos y los interpretan, creando potentes
informes acerca del volumen de páginas descargadas, tamaños, usuarios, ...
6. Los directorios virtuales
Al configurar los sitios Web debemos indicar los directorios que contienen los documentos que
queremos publicar. El servidor Web no puede publicar documentos que no están en los
directorios especificados. Por lo tanto, el primer paso para desarrollar un sitio Web debe ser
determinar cómo deseamos organizar los archivos.
Si deseamos empezar ahora mismo sin tener que crear una estructura especial de directorios y
todos los directorios se encuentran en el mismo disco duro del equipo que ejecuta los Servicios
de Internet Information Server, podemos publicar los documentos inmediatamente copiando los
archivos Web en el directorio principal predeterminado, C:\InetPub\Wwwroot.
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 40 of 47
Cada sitio Web o FTP debe tener un directorio particular: el directorio particular es la ubicación
central de las páginas publicadas. Contiene una página principal o archivo de índice que da la
bienvenida a los clientes y contiene los vínculos a otras páginas del sitio. El directorio particular se
asigna al nombre de dominio del sitio o al nombre del servidor. Por ejemplo, si el nombre del
dominio de Internet del sitio es www.microsoft.com y el directorio particular es
C:\Website\Microsoft, los exploradores utilizan la dirección URL http://www.microsoft.com para
tener acceso a los archivos del directorio particular. En una intranet, si el nombre del servidor es
ServidorActual, los exploradores utilizan la dirección URL http://ServidorActual para tener acceso
a los archivos del directorio particular.
El directorio particular predeterminado se crea al instalar los Servicios de Internet Information
Server y crear un sitio Web nuevo.
6.1 ¿Qué es un directorio virtual?
Para publicar desde cualquier directorio que no esté contenido en el directorio particular,
debemos crear un directorio virtual. Un directorio virtual es un directorio que no está en el
directorio particular pero que aparece en los exploradores de los clientes como si estuviera.
Es decir: sabemos que podemos poner páginas Web en el directorio "c:\inetpub\wwwroot" y que
estas se van a ver inmediatamente escribiendo en el navegador "http://servidor". Un directorio
virtual es crear un directorio en nuestra página Web pero que apunta físicamente a otra ruta física
del disco duro diferente. Por ejemplo podemos crear un directorio virtual que llamaremos "docs" y
que apunta a la ruta física "d:\intranet\documentos" para ver esto en el servidor bastaría con
escribir: "http:/servidor/docs"
Un directorio virtual tiene un alias, un nombre que los exploradores Web utilizan para tener
acceso al directorio. Puesto que el alias suele ser más corto que el nombre de la ruta del
directorio, a los usuarios les resulta más cómodo escribirlo. Un alias es más seguro; los usuarios
no conocen el lugar del servidor donde están ubicados físicamente los archivos y no pueden
utilizar esa información para modificar los archivos. Con los alias es más fácil mover los
directorios en el sitio: En lugar de cambiar la dirección URL del directorio, puede cambiar la
asignación entre el alias y la ubicación física del directorio.
Otro ejemplo, supongamos que configuramos un sitio Web para el grupo de mercadotecnia en la
intranet de la compañía. La tabla siguiente muestra las asignaciones entre las ubicaciones físicas
de los archivos y las direcciones URL a través de las cuales se obtiene acceso a los archivos.
Ubicación física
Alias
Ruta de la dirección URL
C:\Inetpub\wwwroot
directorio particular (ninguno)
http://Ventas
\\Servidor2
\DatosVentas\ClientesProd
Clientes
http://Ventas/Clientes
C:\Inetpub\wwwroot\Presupuestos
Ninguno
http://Ventas/Presupuestos
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 41 of 47
C:\Inetpub\wwwroot\EstadoPedidos Ninguno
http://Ventas/EstadoPedidos
D:\Mrcdtcn\PR
http://Ventas/PR
PR
Los directorios virtuales y los físicos (directorios sin alias) aparecen en el complemento Servicios
de Internet Information Server. Un directorio virtual viene indicado por un icono de carpeta con
una flecha como las de los accesos directos en la esquina inferior izquierda. Mira esta imagen
que siguiente muestra el sitio Web del ejemplo anterior, /Clientes y /PR son directorios virtuales:
En un sitio Web simple, puede que no necesitemos añadir directorios virtuales. Basta con colocar
todos los archivos en el directorio particular (directorio principal) del sitio. Si tienes un sitio
complejo o quieres especificar diferentes direcciones URL para distintas partes del sitio, puedes
agregar tantos directorios virtuales como necesites. En cualquier caso es un tema interesante.
A menudo nos encontraremos con que instalamos una utilidad para nuestra Intranet y la
documentación la instala directamente en un directorio virtual, de esta forma está mas fácil y
accesible que un fichero .htm tradicional.
6.2 Crear directorios virtuales
Si nuestro sitio Web contiene archivos que se encuentran en un directorio diferente del directorio
particular o en otros equipos, debemos crear directorios virtuales para incluir esos archivos en el
sitio Web. Para utilizar un directorio de otro equipo, debemos especificar su nombre según la
nomenclatura universal (UNC) e indicar un nombre de usuario y una contraseña para los
permisos de acceso.
Para crear un directorio virtual
1. En la consola administrativa, seleccionamos el sitio Web o FTP al que deseamos agregar un
directorio.
2. Hacemos clic con el botón derecho y seleccionamos "Agregar directorio virtual"
3. Utilizamos el Asistente para crear un directorio virtual para completar esta tarea.
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 42 of 47
A continuación nos muestra esta sencilla pantalla de configuración:
Donde nos pregunta preguntando por el alias que tendrá el sitio Web, es decir el nombre que
escribiremos en el navegador: http://servidor/alias. Y lo asociaremos con una ruta física del disco
duro, seleccionamos un directorio o ruta. Si queremos poner unos credenciales para identificarse
en esta carpeta los indicaremos en "Conectar como".
Nota Si utilizas NTFS, también puede crear un directorio virtual si haces clic con el botón derecho del ratón en un
directorio en el Explorador de Windows, hace clic en Compartir y, después, selecciona la hoja de propiedades Uso
compartido de Web.
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 43 of 47
7. IIS + FrontPage o SharePoint Designer
Sólo como curiosidad veremos como conectar nuestro editor de páginas web, por ejemplo
FrontPage, con el servidor IIS7. Para conectarlos tendremos que instalar un componente que
antes estaba por defecto y que se llama "Extensiones de servidor". Podemos acceder a este
programa pulsando aquí.
Lo ejecutamos...
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 44 of 47
Como ves es mas un pantalla informativa, solo nos dejaría la de indexar contenidos para las
búsquedas con FrontPage. Sigamos hasta que termine la instalación.
Lo que ha hecho es añadirnos una nueva aplicación en nuestro IIS7:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 45 of 47
Recuerda que FrontPage dejó de venderse y que ahora se llama "SharePoint Designer", pero
básicamente sigue siendo el mismo programa. Ahora podemos utilizar ya FrontPage con este
servidor que nos permitirá realizar las funciones mas importantes...
7.1 Abrir sitios web
Para abrir un web simplemente seleccionaremos la opción de abrir web. Si escribimos
http://servidor abriremos el web raíz del servidor IIS. Para abrir otros webs haremos la misma
operación pero escribiendo la ruta correcta: http://servidor/miweb
7.2 Crear sitios web
1. En Microsoft FrontPage, en el menú Archivo, seleccionamos Nuevo y, a continuación Web.
2. En el panel de tareas Nueva página o Web, en Nuevo a partir de una plantilla, haga clic en
Plantillas de sitio Web.
3. Hacemos clic en Web de una página y, a continuación, en el cuadro Especificar la ubicación del
nuevo sitio Web, escriba la dirección URL del sitio Web. La dirección URL la escribiremos con el
formato http://servidor/miweb
Nota Si te aparece este mensaje al intentar abrir el sitio web:
Debes habilitar la autenticación de Windows en el sitio web, vete al sitio web y en las configuraciones de IIS, selecciona:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 46 of 47
Y habilitas la seguridad de Windows.
Si la versión de FrontPage que tienes es la 2003 nos aparecerá a la derecha una lista de
opciones para realizar, seleccionaremos "crear Web de una página" y nos aparecerá una pantalla:
Hacemos clic en Aceptar y FrontPage creará el sitio Web en el servidor:
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
1
Page 47 of 47
Para comprobar que los parámetros de “ejecución de comandos” están activos pulsamos con el
botón derecho en la raíz del Web:
En este caso también está activa la opción de “Permitir el examen de directorios” opción no
recomendable pero que en desarrollo es útil mientras se construyen las páginas con los
hipervínculos
file://C:\Documents and Settings\joserm\Mis documentos\cursos\2012\asp.net\Web_o... 20/10/2011
Descargar