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.
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:
0 Reviews