Trabaja con archivos directamente en un servidor web con el protocolo WebDav.

Por Víctor Aracil - junio 09, 2023



WebDav es un protocolo que te permitirá acceder y gestionar tus recursos de forma remota, como alternativa a FTP o Samba.

Te va a permitir por ejemplo, si estás trabajando en una máquina, y tienes que salir de casa, o tu portátil se va a quedar sin batería, continuar trabajando con ese documento en otro dispositivo, y compartirlo con las personas a las que les concedas permisos de acceso. 

La idea es.., guardar, editar, copiar, mover y compartir tus recursos, sin depender de servicios en la nube, de tal manera que visualmente parezca que los datos estén ubicados en tu ordenador. 

Verás los archivos a través del Explorador de Windows, cualquier gestor de archivos de entornos de escritorio Linux, aplicaciones de terceros como Cyberduck, WinSCP.., o directamente desde un navegador web.

Al finalizar esta entrada habrás aprendido a...

  • Instalar WebDav desde la Terminal de Linux.
  • Configurar WebDav en el servidor web lighttpd. 
  • Utilizar aplicaciones cliente, tanto integradas como de terceros, para el acceso y gestión tus recursos.


INSTALACIÓN Y CONFIGURACIÓN.

Lighttpd es un servidor web de código abierto que consume pocos recursos y ofrece un alto rendimiento, con soporte integrado para WebDAV, lo que facilita su configuración.
Los pasos para configurarlo con lighttpd son los siguientes:

Instala lighttpd y el módulo WebDAV desde los repositorios oficiales usando el comando:

sudo apt install lighttpd lighttpd-mod-webdav

Asegúrate de que el directorio /var/run/lighttpd es propiedad del  usuario y grupo www-data. Este directorio contendrá una base de datos SQLite necesaria para WebDav:
  
sudo chown www-data:www-data /var/run/lighttpd/

A continuación, activamos los módulos mod_auth y mod_webdav:

sudo lighty-enable-mod auth
sudo lighty-enable-mod webdav

Reiniciamos lighttpd:

sudo systemctl restart lighttpd


Crea una carpeta para alojar los archivos de WebDAV. Por ejemplo, puedes crear una carpeta llamada 'webdav' en el directorio /var/www/html usando el comando:

sudo mkdir /var/www/html/webdav

Asegúrate de darle los permisos adecuados a la carpeta para que el usuario www-data (el usuario por defecto de lighttpd) pueda leer y escribir en ella. Puedes hacerlo con el comando:

sudo chown -R www-data:www-data /var/www/html/webdav

CONFIGURACIÓN DEL HOST VIRTUAL EN WEBDAV.

Crea el archivo de contraseña WebDav /var/www/web1/passwd.dav con el usuario que quieras:

htpasswd -c /var/www/web1/passwd.dav victor

El parámetro '-c' crea un nuevo archivo de contraseña, así que recuerda no volverlo a poner si ya existe, porque se perderán todos los usuarios almacenados.

Ahora te pedirá la contraseña para el usuario.



Cambiamos los permisos para que solo el administrador y los miembros del grupo www-data puedan acceder.

chown root:www-data /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav



Modifica tu host virtual en el archivo de configuración /etc/lighttpd/lighttpd.conf para que quede de esta manera:

  
# importante aceptar tanto la IP pública, como la IP del servidor WebDav, para poder acceder desde Intenet
$HTTP["host"] =~ "(IP DE TU SERVIDOR|IP PÚBLICA)" {
    $SERVER["socket"] == ":5006"{
    server.document-root = "/var/www/html/webdav"
    alias.url                 = ( "/webdav" => "/var/www/html/webdav" )
    $HTTP["url"]              =~ "^/webdav($|/)" {
        dir-listing.activate    = "enable"
        dir-listing.encoding    = "utf-8"
        webdav.activate         = "enable"
        webdav.is-readonly      = "disable"
        webdav.sqlite-db-name   = "/var/run/lighttpd/lighttpd.webdav_lock.db"
        auth.backend            = "htpasswd"
        auth.backend.htpasswd.userfile = "/var/www/html/passwd.dav"
        auth.require            = ( "" =>
                                    (
                                        "method" => "basic",
                                        "realm" => "webdav",
                                        "require" => "valid-user"

                                    )
                                  )
   }
   }
}



Si cambias el puerto ( 5006 en mi caso) recuerda abrirlo en tu router para poder acceder desde Internet.

Sobre estas líneas...


auth.backend            = "htpasswd"
auth.backend.htpasswd.userfile = "/var/www/html/passwd.dav"
auth.require            = ( "" =>
                                    (
                                        "method" => "basic",
                                        "realm" => "webdav",
                                        "require" => "valid-user"

                                    )
                           )


... activan la autenticación básica, indican el archivo con los usuarios y contraseñas, y requieren que el usuario sea válido para acceder al servidor webdav. Finalmente, se debe reiniciar el servicio de lighttpd para aplicar los cambios:
sudo systemctl restart lighttpd


PROBANDO EL SERVIDOR WEBDAV.

Desde tu navegador web:



Con el cliente de terceros WinSCP, creas la sesión y accedes:





Y por último, desde el gestor de archivos de Linux:












  • Comparte:

Puede que también te guste

0 Reviews

Vuelve arriba