IIS 7.0: Administracion Remota a nivel de Servidor, de Sitio, de Aplicacion, de Archivo?

Normalmente los servicios de hosting, proveen una herramienta Web para la administración de un Sitio Web, esta herramienta cuenta con las funciones básicas, stop/restart application, default documents, entre otras features. Pero no es como abrir la consola de administración de IIS. Es ahí donde contar con una herramienta de estas, de poder administrar remotamente un sitio Web a nivel de Web Site (no el servidor), se convierte una herramienta poderosa para los clientes que alquilan un servicio de hosting, y comercial/atractiva para los que ofrecen un servicio de hosting.

Otro escenario, es dentro de nuestra organización, tenemos un WebSite, con dos Web Applications una de ventas y otra de recursos humanos, cada una con su propia administrador, no es lo más recomendado dar permisos mas de los necesarios a cada usuario, es decir, sólo debería poder administrar lo que necesite, y no de otros Web Applications. Además ya no tiene la excusa de ante un problema de tirar el muertito a los demás admins, responsabilizar a los usuarios que tienen los permisos de administración. Habilitando la administración a nivel de Aplicación cada admin es responsable de su Web Application.

Voy a tomar como base copy/paste el siguiente artículo:  Configuring Remote Administration and Feature Delegation in IIS 7.0. Además de acotar algunos detalles que puede no quedar no muy claros.

Empecemos… con la administración de un servidor

1. ServerIIS – Instalar el Servicio. Lo primero que debemos hacer ir al Server Manager, dentro del Role Web Server (IIS), verificar que tengamos instalado el rol Management Service. Este servicio, es el que provee la infraestructura necesaria para habilitar la administración remota en IIS 7.0:

http://sergiot2.com/blogimages/2008/05May/18_ServerManager.jpg

2. ServerIIS – Configurar la Administración Remota. Ahora nos vamos al IIS Manager, seleccionamos el Servidor y dentro del grupo Security, abrimos la feature Management Service. Notar que seleccionamos el servidor, y no un Sitio Web, ya que esta feature esta disponible a nivel de Servidor:

http://sergiot2.com/blogimages/2008/05May/18_ManagementService.jpg

En esta feature, marcamos el check en “Enable remote connections“, y en “Identity Credentials“, podemos escoger “Windows credentials only” o “Windows credentials or IIS Manager credentials“, y el seleccionar una otra va depender de los requerimientos que se tenga, las credenciales de Windows, son los usuarios de la PC, y las credenciales de IIS, es para habilitar a los usuarios de IIS (estos usuario son administrados dentro del IIS). Por ejemplo si yo no quiero crear un usuario Windows por cada Web Application, puedo crear un usuario en IIS Manager, y este usuario será usado para la conexión, si no, será usado el usuario Windows. Ahora otro tema a tener en cuenta, es los permisos que tengamos que dar en los ACLs de los directorios de la aplicación, pero esto lo veremos más adelante.

También podemos escoger el puerto del servicio, y otras features adicionales. Después de escoger nuestra configuración, hacemos clic en el “Apply”, para guardar los cambios, y después Start, para iniciar el servicio.

http://sergiot2.com/blogimages/2008/05May/18_enabledRemote.jpg

Un detalle a tener en cuenta es que si reiniciamos el servidor por alguna razón, este servicio no estará iniciado. Si vamos a los Servicios del servidor, podemos cambiar esta feature. Además notar que también podemos cambiar el usuario del servicio de acuerdo las políticas de seguridad que se tenga, por defecto lo instala con la cuenta “Local Service“. Recordar este usuario, que será usado más adelante:

http://sergiot2.com/blogimages/2008/05May/18_Web_Management_Services.jpg

Otro detalle a tener en cuenta es verificar que la excepción al servicio “Web Management Service (HTTP)“, este habilitada dentro Windows Firewall, que por defecto apunta al puerto 8172, si cambiamos el puerto, tendríamos que agregar la excepción para ese puerto. [OF: Alguien sabe donde se guarda o configura, ¿cuál es el puerto por defecto de un servicio para estas excepciones?]:

http://sergiot2.com/blogimages/2008/05May/18_WFirewall.jpg

3. UserPC – Conexión a un Servidor. Si tenemos un user y password de Windows, con los permisos respectivos, ya podemos usarlos para conectarnos a través del IIS 7.0 Manager Client (para WXP, Vista, y W2k3), que es una descarga adicional para el cliente. Una vez que descargamos el programa, abrimos el IIS 7.0 Manager, y seleccionamos “Connect to a server…“:

http://sergiot2.com/blogimages/2008/05May/18_IISManager_Client.jpg

En Server name, ingresamos la IP o dirección del servidor:

http://sergiot2.com/blogimages/2008/05May/18_ServerName.jpg

Nuestro User name, y Password:

http://sergiot2.com/blogimages/2008/05May/18_UserIIS.jpg

Y finalmente asignamos un nombre a nuestra conexión, y hacemos clic en “Finish”:

http://sergiot2.com/blogimages/2008/05May/18_ConnectionName.jpg

Y ahora puedo administrar mi servidor IIS 7.0, desde donde quiera que esté con las capacidad que brinda la Consola de administración IIS 7.0 Manager:

http://sergiot2.com/blogimages/2008/05May/18_adminIIS.jpg

 

Pero si yo no quiero habilitar la administración de todo mi servidor, si no solamente un Web Site?

Nota: Si yo tengo una cuenta para administrar todo el servidor IIS 7.0, puedo habilitar la administración remota a nivel de Web Site, y Web Applicación desde mi PC, en caso de no, tengo que hacerlo desde el Servidor de IIS 7.0.

1. ServerIIS – Habilitar la administración remota a nivel de Web Site

Dentro de nuestro Servidor de IIS 7, abrimos la feature IIS Manager Users. Voy a usar usuarios de IIS, y no de Windows, para habilitar la administración remota de un Web Site:

http://sergiot2.com/blogimages/2008/05May/18_IISUsers.jpg

En Actions, seleccionamos Add User, e ingresamos los datos de nuestro usuario:

http://sergiot2.com/blogimages/2008/05May/18_AddUser.jpg

Ahora seleccionamos el Web Site, en el que queremos habilitar la administración remota, y abrimos la feature IIS Manager Permissions:

http://sergiot2.com/blogimages/2008/05May/18_BlogEngine.jpg

En Actions seleccionamos Allow User, seleccionamos el usuario creado previamente, adminBlogEngine, y hacemos clic en OK:

http://sergiot2.com/blogimages/2008/05May/18_AllowUser.jpg

2. UserPC – Conexión a un Web Site

Iniciamos el IIS 7.0 Manager Client, y en Connection tasks, hacemos clic en Connect to a site.

Como puede notar ahora además del nombre del servidor debemos agregar, el nombre del Web Site, que vamos administrar remotamente:

http://sergiot2.com/blogimages/2008/05May/18_ConnectSite.jpg

Los siguientes pasos, son iguales al Connect to a server, debemos ingresar el usuario, que en este caso será el usuario de IIS adminBlogEngine, y finalmente debemos asignar un nombre la conexión.

Seleccionamos nuestro Web Site, y abrimos la feature Directory Browsing:

http://sergiot2.com/blogimages/2008/05May/18_DirectoryBrowsing.jpg

Si en Actions, seleccionamos Enable, para habilitar Directory Browsing, es decir permitir que el usuario puede ver la lista de archivos disponibles en la carpeta solicitada, en nuestro Web Site, obtenemos el siguiente error:

http://sergiot2.com/blogimages/2008/05May/18_EnabledDicBrow.jpg

Filename: MACHINE/WEBROOT/APPHOST/WebSite
Error: Cannot write configuration file due to insufficient permissions

Y el problema es que del lado del servidor, el usuario con el que se esta ejecutando el servicio Web Management Service, que en nuestro caso es la cuenta LOCAL SERVICE, no tiene permisos para escribir en la carpeta del Web Site.

Para darle los permisos necesarios, en nuestro ServerIIS, ubicamos la carpeta del Web Site, hacemos clic derecho en propiedades, y en la pestaña Securtity, hacemos clic en el botón Edit, para editar los permisos, agregamos a la cuenta LOCAL SERVICE, y habilitamos el permisos para modificar:

http://sergiot2.com/blogimages/2008/05May/18_Local_Service.jpg

Atención, este permiso es para cliente de IIS Manager, si es que tenemos habilitado la administración remota, no tiene nada que ver con el permiso del Web Site si vamos a dejar que el usuario suba archivos, recuerden que para eso debemos dar permisos a la cuenta de usuario que tiene asignado el Application Pool.

Y si regresamos a nuestro PC cliente, volvemos a reintentar habilitar el Directory Browsing, y ahora ya no vamos a tener ningún problema:

http://sergiot2.com/blogimages/2008/05May/18_EnableDir.jpg

Pero si quiero ser más granular, y habilitar sólo la administración de un Web Application?

1. ServerIIS – Habilitar la administración remota a nivel de Web Application

Al igual que en el anterior modo, voy agregar un usuario IIS, en mi servidor de IIS con el nombre adminWebClassic.

Selecciono mi Web Application, WebClassic abro la feature IIS Manager Permissions, y agrego al usuario creado previamente adminWebClassic:

http://sergiot2.com/blogimages/2008/05May/18_WebApp.jpg

Recordar que debemos dar los permisos necesarios a la cuenta LOCAL SERVICE, para que pueda modificar el Web Application desde el IIS 7.0 Manager Client.

2. UserPC – Conexión a un Web Application

Iniciamos el IIS 7.0 Manager Client, y en Connection tasks, hacemos clic en Connect to an application.

Ahora además de ingresar Server name, y Site name, debemos ingresar Application name:

http://sergiot2.com/blogimages/2008/05May/18_Connect_Application.jpg

Los siguientes pasos, son iguales al Connect to a server o Connect to a Site, debemos ingresar el usuario, que en este caso será el usuario de IIS adminWebClassic, y finalmente debemos asignar un nombre la conexión.

Y ya puedo administrar mi Web Application:

http://sergiot2.com/blogimages/2008/05May/18_AdminWebApp.jpg

Y si quiero la administración remota a nivel de archivo?

Pues no hay, pero lo que si podemos hacer es decidir que funciones vamos a delegar y cuales no.

Tenemos tres opciones: permitir que pueda ver/modificar una feature, permitir que sólo pueda ver una feature y su configuración, o simplemente no delegar la feature y el usuario no se entera que existe. Vamos a ver un ejemplo:

1. ServerIIS – Delegando features

Dentro de mi Servidor de IIS 7.0, abrimos la feature, dentro de la categoría Security, Feature Delegation:

http://sergiot2.com/blogimages/2008/05May/18_FeatureDelegation.jpg

Primero, en Actions, seleccionamos Custom Site Delegation, seleccionamos el site Default Web Site, seleccionamos la feature que se desea delegar, en nuestro caso Directory Browsing, y en Actions, hacemos clic en Not Delegated:

http://sergiot2.com/blogimages/2008/05May/18_CustomDelegation.jpg

Y si en la PC cliente, nos vamos las features de la categoría HTTP Features, vamos a poder ver que ya no tenemos Directory Browsing. En este caso si ya tenía abierta la sesión de WebClassic, van a tener que reconectarse para actualizar la delegación de features, para ver los cambios aplicados:

http://sergiot2.com/blogimages/2008/05May/18_without_dirbrow.jpg

Conclusiones:

Espero, no decir alguna barbaridad por la hora, que todo en la entrada/post haya quedado claro, y acá sólo vemos un poco del poder de IIS 7.0. Ahora podemos hacer más granular la administración de IIS 7.0, pudiendo llegar a nivel de Servidor, de un Sitio Web, o de una Aplicación Web. Además de poder decidir que features va tener disponible el cliente remoto. Hay algunas opciones en la que no entre en detalles, para no dar más lata con el artículo, pero de acuerdo a sus necesidades ustedes pueden detallar en la mucha información que hay Internet.

P.D.: Ya no doy más lata, y voy a dormir, que en unas horas hay mucho curro/laburo/trabajo, para iniciar la semana.

Saludos,

3 comentarios en “IIS 7.0: Administracion Remota a nivel de Servidor, de Sitio, de Aplicacion, de Archivo?”

  1. Me parece muy bueno el articulo pero creo que es conveniente acompañar algunos de los terminos en inglés con su correspondiente traducción al español,(como por ejemplo features,que se menciona como si fuera una palabra normal en español) para evitar anglicismos. Gracias

  2. muy buen articulo! podrias agregar ademas la administracion remota de un site a nivel de usuarios de dominio de windows? porque solo lo especificaste con usuarios creados del IIS, muchas gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *