Gestión de WebDAV
Gestión de WebDAV
Esta actividad práctica corresponde a este tema.
Preparación del cliente
Lo primero que debemos tener en cuenta de cara a activar el servicio WebDAV es que la máquina cliente que vaya a usarlo debe tener activo un servicio denominado “Cliente Web” (Web Client). Para comprobar si está activo o bien activarlo, lo primero que debemos hacer es ir a Inicio – Herramientas Administrativas – Administración de equipos:

Acceso a administración de equipos
A continuación haremos doble clic en “Servicios y Aplicaciones” y posteriormente haremos doble clic también en “Servicios”:

Tras esto debemos localizar el servicio “Cliente Web” (Web Client) y hacer clic derecho, pulsando en “Propiedades”:

Configuración de un servicio de Windows
Una vez en esta pantalla debemos asegurarnos de que el tipo de inicio del servicio se sitúa en “Automático”. Una vez hecha esta selección debemos pulsar en aplicar e iniciar el servicio sino lo estuviese ya.

Selección del tipo de arranque de un servicio Windows
Servicio de Windows listo para arrancarse
Servicio de Windows “Cliente Web” arrancado
Instalar y Habilitar WebDAV en elservidor
Antes de usar WebDAV debemos instalarlo, puesto que éste no se instala automáticamente con IIS como ya hemos dicho. Para instalar WebDAV tendremos que acceder al “Panel de Control” y a “Añadir o Quitar Programas”, seleccionando la opción de “Componentes de Windows”. WebDAV puede encontrarse accediendo a los detalles de las opciones: “Servidor de Aplicaciones – IIS – Servicio WWW, tal y como se ve en las siguientes imágenes. Llegados a esta última opción, simplemente debemos instalar finalmente la opción “Publicación WebDAV”.

Acceso a los programas instalados en Windows
Acceso al software de soporte WebDAV : Servidor de Aplicaciones

Acceso al software de soporte WebDAV : IIS

Una vez instalado WebDAV, para asegurarnos de que realmente se ha instalado correctamente, necesitamos ver si está presente dentro de las extensiones de servicio listadas por IIS y habilitarlo si no lo estuviera. Para ello accederemos al apartado de “Extensiones del servicio Web” del IISManager y la activaremos tal y como se ha visto en la sección correspondiente:

Debemos tener en cuenta que una vez habilitado WebDAV este permanecerá activo para todas las webs del servidor. IIS 6 no permite su activación para una web particular solamente.
Creación de un entorno adecuado para el uso de WebDAV
Para permitir el uso de WebDAV en el servidor web primero debemos crear un nuevo directorio virtual donde guardar el contenido que envíe el cliente. En nuestro ejemplo creamos un directorio virtual al que llamaremos “publicable” mapeado sobre C:\WebDAVTest (directorio que crearemos previamente). El procedimiento se ha visto anteriormente y no se repetirá aquí:

Nuevo directorio virtual “publicable”
La siguiente tarea es configurar los permisos web para el directorio virtual que acabamos de crear, de manera que se pueda publicar contenido. Esto puede hacerse haciendo clic derecho en el directorio virtual recién creado y accediendo a “Propiedades”, dentro de la pestaña “Directorio Virtual”:

Configurando permisos del directorio virtual “publicable”
Tal y como se ve en la figura anterior, por defecto solo están activos los permisos de lectura del directorio virtual, lo cual permitirá a los usuarios, como es lógico, leer los contenidos del directorio pero no editarlos ni subir nuevos archivos. Debemos pues estudiar qué permisos son los adecuados en función de lo que queramos hacer con los contenidos, y también que usuarios son los indicados para acceder a esta característica. WebDAV está integrado con Windows 2003 e IIS, por lo que puede sacar partido de las características de seguridad ofrecidas por esta plataforma. Esto incluye mecanismos de autenticación (pedir las credenciales al cliente, para que se identifique como un usuario U) y listas de control de acceso (ACL) de NTFS (que determinarían si el usuario validado U tiene permisos suficientes para acceder a un archivo concreto). Con WebDAV se podrían usar todos los métodos de autenticación que IIS posee. No obstante, el mejor método para autenticar usuarios sería IWA junto con el protocolo Kerberos, como hemos visto anteriormente. Al igual que en dicha sección, para especificar el método de autenticación debemos ir a la pestaña “Seguridad de Directorios” y pulsar en “Modificar” dentro del grupo “Autenticación y Control de Acceso”:

Configuración del método de autenticación para un directorio virtual
Para una adecuada administración de los permisos en un directorio WebDAV y la protección de sus archivos, debemos usar una combinación de permisos Web y permisos NTFS. En lo relativo a permisos Web, no se va a describir de nuevo la utilidad de cada permiso individual (ya se hizo en la sección correspondiente), pero describiremos algunas combinaciones útiles que serían aplicables en casos reales en función de la clase de material que se vaya a publicar:
- Habilitar Lectura, Escritura y examen de directorios: Activar esta combinación de permisos permite a los clientes ver una lista de recursos, modificarlos (siempre que no tengan denegado individualmente el permiso de escritura), publicar sus propios recursos nuevos y manipular archivos.
- Habilitar Escritura, deshabilitando al mismo tiempo lectura y examen de directorios: Si se desea que los clientes publiquen información en el directorio, pero que nadie más pueda ver lo que ha sido publicado, se puede usar esta combinación de permisos.
- Habilitar Lectura y Escritura y deshabilitar examen por directorios: Con esto conseguiremos que los clientes puedan acceder y modificar los archivos sólo si conocen su nombre exacto, ya que no pueden ver el contenido de los directorios. Esto trata de lograr algún tipo de “seguridad” por ocultación, pero tradicionalmente este tipo de “seguridad” nunca es efectiva debido a que un atacante podría averiguar tarde o temprano el nombre de los archivos que no queremos dejar accesibles. Por ello, siempre es mejor controlar el acceso con permisos explícitos antes de usar mecanismos como éste.
- Habilitar la indexación: Esto debemos hacerlo si queremos que los clientes busquen recursos en los directorios.
En cuanto a la gestión de permisos NTFS, a un directorio WebDAV podemos aplicarles dichos permisos de la misma forma que a una carpeta de un disco local. Para ello es absolutamente imprescindible que dicho directorio esté en una partición NTFS y asignar permisos a los archivos en función de lo que deseemos hacer con ellos. A la hora de combinar permisos Web y NTFS, se sigue manteniendo la forma de funcionamiento ya vista, prevaleciendo los más restrictivos:
- Lectura: Permite a los usuarios leer el contenido de los archivos del directorio.
- Lectura y Ejecución: Permite a los usuarios leer archivos y ejecutar scripts CGI.
- Listado: Permite a los usuarios ver el contenido de las carpetas.
- Escribir: Permite a los usuarios acceder y cambiar el código fuente de un script, así como publicar archivos.
- Modificar: Permite a los usuarios renombrar o borrar un directorio o archivo.
Otro aspecto a considerar es que asignar solamente permisos de escritura no le da a los clientes la capacidad de modificar páginas con contenido activo como ASP (en definitiva, mapeadas en el servidor como scripts). Para permitir esto, se deben asignar permisos de escritura y el permiso web de acceso a código fuente (deben estar asignados ambos) a dichos archivos tras la creación del directorio virtual. Carecer de este último permiso impide de hecho que los clientes ejecuten el contenido activo residente en los archivos. Veremos un ejemplo de esto posteriormente.
Debemos ser conscientes a su vez de que habilitar el permiso NTFS de escritura indiscriminadamente en el directorio virtual puede dar lugar a un problema de seguridad en el servidor web, debido a que abre la posibilidad de que cualquiera con permisos suficientes suba contenido potencialmente malicioso al servidor. Es pues muy importante que los permisos NTFS del servidor web restrinjan el acceso al contenido del directorio virtual. Este procedimiento ya se ha visto anteriormente. A modo de ejemplo haremos que sólo los miembros del grupo global de seguridad “Publicadores Web” (creado nuevo al efecto, metiendo dentro del mismo como único usuario al administrador del servidor) tengan los permisos de Lectura, Lectura y Ejecución y Listar contenidos de la carpeta.

Permisos del grupo “Publicadores Web”
También debemos tener en cuenta que si asignamos permisos suficientes para que un grupo de usuarios sea capaz de usar WebDAV sobre una determinada carpeta, entonces todos los miembros de este grupo serán capaces de ello. Esto puede causar que algunos usuarios no previstos tengan estos derechos (si asignamos permisos a un grupo cualquiera G y este tiene como miembro el grupo “Usuarios del Dominio”, entonces todos los usuarios del dominio podrán usar WebDAV para publicar contenidos), lo cual puede suponer un problema. Por este motivo en el ejemplo hemos creado un grupo nuevo para este fin.
| NOTA: Si el servidor web que tiene activo WebDAV sirve webs para usuarios de toda Internet, entonces deberíamos añadir la “Cuenta de invitado para Internet” a la lista de permisos del directorio WebDAV y denegarle a este grupo permisos de escritura. De esta forma, usuarios anónimos de Internet podrán leer el contenido del directorio WebDAV, pero no modificarlo. Esto es algo muy necesario de cara a mantener un nivel de seguridad aceptable. |
Publicar contenido mediante WebDAV
Para probar el funcionamiento de WebDAV, partiremos del directorio virtual anterior (publicable) en la localización física anterior (c:\WebDAVTest) y con el grupo creado expresamente para este fin (“Publicadores Web”). Tras localizar estos elementos, en el cliente debemos disponer de la serie de archivos que van a formar parte de la web, tal y como se ve en la imagen siguiente, donde a modo de ejemplo hemos puesto una página de HTML estática y un script:

Contenido a publicar en el servidor
Para publicar estos archivos en el servidor web usaremos como cliente el Internet Explorer. Para ello, introduciremos en dicho programa la URL del directorio virtual que hemos creado anteriormente (http://<nombre o IP del servidor>/publicable). Para que el proceso se haga correctamente y se use WebDAV de manera adecuada, debemos marcar el checkbox ”Abrir como una carpeta Web” que aparece justo debajo de donde introducimos la dirección y mostramos en la siguiente imagen:

Abriendo una localización remota como una carpeta WebDAV (I)

Abriendo una localización remota como una carpeta WebDAV (II)

Carpeta WebDAV abierta
Hecho esto, bastaría sólo con seleccionar los archivos que queramos pasar a la nueva localización (nuestros archivos anteriores en “aPublicar"), lo cual puede hacerse con un simple copiar y pegar o bien con un Drag and Drop.

Publicando los contenidos que residen en el cliente en la carpeta WebDAV
No obstante, comprobamos que esta operación no funciona. Esto es debido a que nuestra asignación de permisos web y NTFS inicial no contemplaba la escritura de archivos, por lo que publicar archivos no es viable en estas condiciones. No obstante si concedemos permisos web de escritura y NTFS al grupo “Publicadores Web” anterior, sí que obtendremos el resultado esperado:

Publicación de contenidos correcta
Cuando esta operación termine, habremos publicado nuevo contenido de la web sin parar el servidor, lo cual es uno de nuestros objetivos. Para comprobar que realmente funciona, podemos ir a la misma URL anterior desde Internet Explorer. Al hacerlo, obtendremos esto (en este caso sí hemos activado sobre el directorio virtual el permiso de examen de directorios y no hay documento por defecto):

Directorio WebDAV vistocon el navegador
Si activamos index.htm como documento por defecto, veremos la web recién subida:

Y si hacemos modificaciones desde el cliente, veremos los resultados inmediatamente sin parar el servidor:

Modificando contenidos directamente desde el cliente gracias a WebDAV
Hemos visto pues como los ficheros con contenido estático pueden modificarse fácilmente. No obstante, esto no ocurre con los scripts. Esto es lo que obtenemos al intentar modificar script.pl:

Para modificar scripts, además del permiso de escritura, necesitamos el permiso web de “acceso al código fuente”. Una vez concedido, podemos hacer los cambios que queramos:

Modificando un script desde el cliente
Una última aclaración necesaria es que si usamos publicación vía WebDAV a menudo, entonces tal vez podamos ahorrar algo de tiempo creando un acceso directo a la URL del directorio WebDAV. También debemos recordar que WebDAV está diseñado de manera que cualquier aplicación pueda trabajar con los contenidos publicados directamente en el servidor.
Para ampliar los conceptos vistos, se recomienda visitar: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS





