sábado, 12 de noviembre de 2011

Apache, creación de un servidor WebDAV


   WebDAV ("Edición y versionado distribuidos sobre la web") es un protocolo para hacer que la www sea un medio legible y editable. Este protocolo proporciona funcionalidades para crear, cambiar y mover documentos en un servidor remoto (típicamente un servidor web). Esto se utiliza sobre todo para permitir la edición de los documentos que sirve un servidor web, pero puede también aplicarse a sistemas de almacenamiento generales basados en web, que pueden ser accedidos desde cualquier lugar. La mayoría de los sistemas operativos modernos proporcionan soporte para WebDAV, haciendo que los ficheros de un servidor WebDAV aparezcan como almacenados en un directorio local.

   El propósito es montar webdav en un servidor apache, configurado con contraseña digest y despues montarlo con un cliente webdav, en este caso utilizaremos cadaver.

Configuración del servidor WebDAV.

   Para crear un directorio en nuestro servidor Web que pueda ser accesible por medio de un cliente WebDAV debemos activar los módulos dav y dav_fs. Si queremos que tenga identificación cifrada, también tenemos que activar el modulo auth_digest.
# a2enmod dav
# a2enmod dav_fs
# a2enmod auth_digest

Ahora tendremos que crear el archivo con los usuarios y sus contraseñas. Para esto utilizaremos el programa htdigest. Tendremos que ir añadiendo cada usuario a mano. La primera vez tendremos que añadirle la -c para crear el archivo.
# htdigest -c /etc/claves/digest.txt webdav juanlu
Adding password for juanlu in realm webdav.
New password:
Re-type new password:

    Ahora pasamos a crear la carpeta y el host virtual en apache. Cuando creemos la carpeta le tenemos que dar permisos de www-data que es el usuario de apache.
# mkdir /var/www/webdav
# chown www-data.www-data /var/www/webdav/

    Ahora creamos el archivo de configuración del host virtual.
# nano /etc/apache/sites-enabled/webdav

   En este archivo lo primero es indicar el nombre de la base de datos de lock que se utilizará, mediante la directiva DAVLockDB. Es importante tener especial cuidado con esta directiva, ya que es frecuente fuente de errores. Lo que indica la directiva no es ni el nombre de un archivo ni el de una carpeta, si no la parte inicial del nombre de un archivo. El módulo creará un archivo de nombre DAVLockDB.orig y otro de nombre DAVLockDB.xxxxx dentro de la carpeta indicada, para lo cual es necesario que el usuario bajo el que corre Apache tenga permisos de escritura en ella.
    A continuación creamos una sección directory para el directorio que queremos acceder por WebDav y activar el modo WebDav con la directiva dav on. Además por seguridad se debe autentificar el acceso, para ello añadimos la identificación tipo Digest. En esta identificación tenemos que especificar el dominio, el archivo donde se encuentran las contraseñas y usuarios y los usuarios que permites, si pones valid-user, son todos los usuarios del archivo
    Nos quedaría el siguiente archivo:

<VirtualHost *:80>
     ServerName www.bobesponjadav.com # Nombre del dominio virtual.
     DocumentRoot /var/www/webdav # Directorio donde se guarda la pagina
     DavLockDB /tmp/DavLock
<Directory /var/www/webdav/>
     dav on
     Options Indexes FollowSymLinks MultiViews
     AllowOverride None
     Order allow,deny
     allow from all
     AuthType Digest
     AuthName "webdav" # Nombre del dominio.
     AuthUserFile "/etc/claves/digest.txt " # Archivo donde se guardan los usuarios y contraseñas
     Require valid-user
</Directory> 

</VirtualHost>

   Con todo esto ya tenemos el archivo de configuración hecho. Ahora tenemos que poner este sitio activo con el siguiente comando.
# a2ensite webdav
   Tras esto reiniciamos apache para que coja el nuevo host.
# /etc/init.d/apache2 restart

Conexión con cadaver.
   Lo primero sera la instalación de dicho cliente WebDav.

# aptitude install cadaver
   Tras esto nos conectaremos de la siguiente manera.

# cadaver http://www.bobesponjadav.com
Autenticación requerida para webdav en el servidor 'www.bobesponjadav.com':
Nombre de usuario: juanlu
Contraseña:
dav:/>


   Si queréis saber mas sobre la autenticación en apache podéis ver :


No hay comentarios:

Publicar un comentario