GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Configuración del servidor WebDAV en Ubuntu Linux

Introducción

Este artículo tratará sobre la instalación y configuración del servidor WebDAV en Ubuntu Linux. WebDAV significa creación y control de versiones distribuidas en la web y permite a los usuarios conectados editar y compartir datos en línea a través del protocolo HTTP. Esto convierte a WebDAV en una opción popular para los desarrolladores cuando se combina, por ejemplo, con Subversion u OpenLink Virtuoso. WebDAV es compatible con una cantidad de clientes que van desde davfs2, lo que hace posible montar el almacenamiento de datos de WebDAV para incluirlo en el sistema de archivos local. Esto se puede hacer con el comando de montaje para varias aplicaciones GUI con soporte WebDAV nativo como Nautilus, konqueror, etc. Además, en esta guía combinaremos WebDAV con el servidor Apache2.

Escenario

En esta sección me gustaría describir un escenario utilizado en este tutorial. WebDAV puede ser un servicio muy flexible, que permite varios escenarios y ajustes de configuración. En este tutorial de WebDAV, comenzaremos con la configuración básica más simple de inicio de WedDAV y, a partir de ahí, la construiremos para que se ajuste a un entorno más complejo. Puede pensar en WebDAV como una extensión HTTP para la configuración de su sitio web existente. Normalmente, es posible que ya tenga su sitio web Apache en funcionamiento. Por lo tanto, en ese caso, todo lo que debe hacer para incluir el servicio WevbDAV es:

  1. crear un directorio de carga de datos adicional para usar con WebDAV
  2. configure su archivo de host virtual apache2 existente

Sin embargo, en esta guía comenzaremos desde cero a partir de la instalación de apache2, la creación del host virtual, etc. Por lo tanto, siéntase libre de saltar a cualquier sección que sea más apropiada para sus requisitos de configuración.

En esta guía configuraremos:

  • webdav.local:este será un host virtual que se ejecuta en el servidor IP 10.1.1.61
  • webdav.local/svn:este será un directorio habilitado para WebDAV
  • /var/www/webdav:directorio para alojar el archivo de índice de webdav.local
  • /var/www/webdav/svn:directorio para alojar el almacenamiento de datos de webdav.local/svn WebDAV

Edite su configuración de DNS según corresponda o modifique el archivo /etc/hosts de su cliente para incluir la resolución webdav.local del host anterior.

Instalación de Apache y WebDAV

En esta sección simplemente instalaremos apache2 y habilitaremos el módulo WebDAV. El módulo WebDAV viene con la instalación de apache2, sin embargo, no está habilitado de forma predeterminada. Todo esto se puede hacer con dos simples comandos:

$ sudo apt-get install apache2

A estas alturas, debería poder acceder a su sitio web predeterminado ubicado en http://webdav.local. Si todo va bien, deshabilite la página predeterminada ya que ya no tenemos uso para ella:

$ sudo a2dissite default
$ sudo service apache2 reload

Configurar servidor virtual

En este punto, debemos configurar el host virtual con ServerName:webdav.local y el directorio adjunto /var/www/webdav. Para hacerlo, vaya a /etc/apache2/sites-disponible/:

$ cd /etc/apache2/sites-available/

y cree un nuevo archivo de configuración del sitio llamado webdav.local con el siguiente contenido:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

Una vez hecho esto, debemos crear un directorio /var/www/webdav/ apropiado:

$ sudo mkdir /var/www/webdav

Cambiar propietario a apache:

$ sudo chown www-data.www-data /var/www/webdav

y habilite el nuevo sitio webdav.local

$ sudo a2ensite webdav.local

Para probarlo, podemos crear un archivo index.html simple:

$ sudo sh -c 'echo "Welcome from WebDAV.local" > /var/www/webdav/index.html'

y finalmente recargar el servidor web apache2:

$ sudo service apache2 reload

Ahora debería poder navegar su navegador a http://webdav.local y ver el mensaje:Bienvenido de WebDAV.local en su pantalla. Esto concluye la instalación del servidor web apache2 con host virtual webdav.local

Configuración de WebDAV

Es hora de habilitar el módulo de WebDAV con:

$ sudo a2enmod dav_fs
Considering dependency dav for dav_fs:
Enabling module dav.
Enabling module dav_fs.

y reinicie el servidor apache:

$ sudo service apache2 restart

Ahora que todo está listo, podemos configurar un servidor WebDAV básico. Esto se puede hacer fácilmente creando un directorio adicional para almacenar datos WebDAV:

Configuración básica

$ sudo mkdir /var/www/webdav/svn

También es importante que apache pueda escribirlo; de lo contrario, obtendremos el error 403 Prohibido:

$ sudo chown www-data.www-data /var/www/webdav/svn/

y habilitar WebDAV para nuestro nuevo host virtual webdav.local. Esto se puede hacer agregando las siguientes líneas en el bloque :

Alias /svn /var/www/webdav/svn
<Location /svn>
    DAV On
</Location>

Lo anterior significa que el directorio habilitado para WebDAV /var/www/webdav/svn será accesible a través de http://webdav.local/svn. Realice la modificación anterior de su archivo de configuración /etc/apache2/sites-available/webdav.local existente y reinicie su servidor web apache. Así es como se ve todo el archivo /etc/apache2/sites-available/webdav.local en esta etapa:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

Alias /svn /var/www/webdav/svn
<Location /svn>
    DAV On
</Location>

</VirtualHost>

Es hora de probar nuestra configuración. Una forma de hacer esto es apuntar nuestro navegador a http://webdav.local/svn o, incluso mejor, usar la herramienta cadaver. Primero instale cadaver con:

$ sudo apt-get install cadaver

Cree el mismo archivo de datos con dd para cargarlo en su directorio WebDAV y cárguelo:

$ dd if=/dev/zero of=mydata.dat bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.075726 s, 138 MB/s
$ cadaver http://webdav.local/svn
dav:/svn/> put mydata.dat
Uploading mydata.dat to `/svn/mydata.dat':
Progress: [=============================>] 100.0% of 10485760 bytes succeeded.
dav:/svn/> quit
Connection to `webdav.local' closed.

Ahora debería tener el servidor WebDAV básico configurado y listo para usar. En la siguiente sección agregaremos algo de autenticación de usuario básica.

WebDAV con autenticación de usuario

Si tiene la intención de implementar su servidor WebDAV en un host remoto, es más que recomendable implementar al menos alguna autenticación básica. Afortunadamente, esto se puede hacer fácilmente usando htpasswd comando y reconfigurando nuestro archivo de configuración /etc/apache2/sites-available/webdav.local existente.

Primero cree un directorio donde desee almacenar el archivo de contraseña del webdav. Esta es una ubicación de su elección. En este tutorial uso /usr/local/apache2/:

$ sudo mkdir /usr/local/apache2/

Luego, use htpasswd para crear un nuevo archivo de contraseña con el que se autenticarán todos los usuarios.

$ sudo htpasswd -c /usr/local/apache2/webdav.passwords lubos

Si necesita agregar más usuarios, use la sintaxis anterior, pero omita la opción -c, ya que sobrescribirá su archivo existente.
Ahora que el archivo de autenticación está listo, debemos agregar la autenticación a nuestro /etc/apache2/sites actual -disponible/archivo de configuración webdav.local. Los nuevos cambios se resaltan en negrita:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

Alias /svn /var/www/webdav/svn
<Location /svn>
    DAV On
        AuthType Basic
        AuthName "webdav"
        AuthUserFile /usr/local/apache2/webdav.passwords
        Require valid-user
</Location>

</VirtualHost>

A partir de ahora, si intenta acceder a su servidor WebDAV, primero deberá autenticarse. Aquí hay un ejemplo de autenticación WebDAV:

$ cadaver http://webdav.local/svn
Authentication required for webdav on server `webdav.local':
Username: lubos
Password: 
dav:/svn/> ls
Listing collection `/svn/': succeeded.
        mydata.dat                      10485760  Feb 20 14:45
dav:/svn/>

Limitar el acceso a WebDAV

Además, es recomendable limitar el acceso WebDAV a un número limitado de usuarios. Por ejemplo, si queremos permitir que solo el usuario único "Lubos" acceda a nuestro repositorio WebDAV, podemos hacerlo agregando una cláusula dentro de la directiva como:

    <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        AuthType Basic
        AuthName "webdav"
        AuthUserFile /usr/local/apache2/webdav.passwords
        Require user lubos
    </Limit>

Dado que los usuarios pueden acceder y cargar archivos en cualquier directorio habilitado para WebDAV, también se recomienda no permitir el archivo .httaccess. Por lo tanto, agregue:

AllowOverride None

dentro de la directiva .

Montaje de directorio habilitado para WebDAV

Como ya se mencionó antes, WebDAV es compatible con una gran cantidad de clientes. También es posible montar el directorio WebDAV en un sistema local para que actúe como parte del sistema de archivos. Para hacerlo, primero debemos instalar davfs2 como usuario root:

# apt-get install davfs2

luego crea un punto de montaje:

# mkdir /mnt/webdav

y finalmente montarlo con un comando de montaje:

# mount.davfs http://webdav.local/svn /mnt/webdav/
Please enter the username to authenticate with server
http://webdav.local/svn or hit enter for none.
  Username: lubos
Please enter the password to authenticate user lubos with server
http://webdav.local/svn or hit enter for none.
  Password:  
# cd /mnt/webdav/
# ls
lost+found  mydata.dat
# touch linuxcareer.com.txt
# sync

Conclusión

Este artículo describió una configuración básica del servicio WebDAV utilizando el servidor web Apache2 para comenzar. Hay algunos problemas de seguridad que se deben considerar, por lo que debe hacer su tarea y consultar la documentación de Apache Module mod_dav para obtener más ajustes de configuración y mejoras de seguridad para mejorar su configuración.


Ubuntu
  1. 4 pasos para configurar el repositorio local en Ubuntu usando APT-mirror

  2. Configurar el servidor Urbackup en Ubuntu 20.04

  3. Configurar el servidor Rsyslog en Ubuntu 20.04 - ¿Cómo hacerlo?

  4. Ubuntu – ¿Servidor Vcenter en Linux?

  5. ¿Configurando el servidor web de Ubuntu?

Configuración del servidor Ubuntu 22.04 Minecraft

Cómo configurar el servidor de repositorio APT local en Ubuntu 20.04

Cómo configurar OpenVPN en Ubuntu Server

Cómo configurar el servidor Git en Ubuntu 20.04

Cómo configurar el servidor Rsyslog en Ubuntu

Cómo configurar el servidor DHCP en Ubuntu