GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Configurazione del server WebDAV su Ubuntu Linux

Introduzione

Questo articolo tratterà dell'installazione e della configurazione del server WebDAV su Ubuntu Linux. WebDAV sta per Web Distributed Authoring and Versioning e consente agli utenti connessi di modificare e condividere i dati online tramite il protocollo HTTP. Ciò rende WebDAV una scelta popolare per gli sviluppatori se combinato, ad esempio, con Subversion o OpenLink Virtuoso. WebDAV è supportato da un numero di client che va da davfs2, il che rende possibile montare la memoria dati di WebDAV da includere nel filesystem locale. Questo può essere fatto con il comando mount a varie applicazioni GUI con il supporto WebDAV nativo come Nautilus, konqueror, ecc. Inoltre, in questa guida uniremo WebDAV al server Apache2.

Scenario

In questa sezione vorrei descrivere uno scenario utilizzato in questo tutorial. WebDAV può essere un servizio molto flessibile, che consente un numero di impostazioni di configurazione e scenari. In questo tutorial WebDAV inizieremo con la configurazione WedDAV di avvio di base più semplice e da lì la costruiremo per adattarsi ad ambienti più complessi. Puoi pensare a WebDAV come a un'estensione HTTP per la configurazione del tuo sito Web esistente. Normalmente, potresti già avere il tuo sito Web Apache attivo e funzionante. Pertanto, in tal caso, tutto ciò che devi fare per includere il servizio WevbDAV è:

  1. crea una directory di dati di caricamento aggiuntiva da utilizzare con WebDAV
  2. configura il tuo file host virtuale apache2 esistente

Tuttavia, in questa guida inizieremo da zero partendo dall'installazione di apache2, dalla creazione di host virtuali, ecc. Pertanto, sentiti libero di saltare a qualsiasi sezione più appropriata alle tue esigenze di configurazione.

In questa guida configureremo:

  • webdav.local:questo sarà un host virtuale in esecuzione su server IP 10.1.1.61
  • webdav.local/svn – questa sarà una directory abilitata per WebDAV
  • /var/www/webdav – directory in cui ospitare il file di indice di webdav.local
  • /var/www/webdav/svn – directory per ospitare webdav.local/svn Archiviazione dati di WebDAV

Modifica le tue impostazioni DNS di conseguenza o altera il file /etc/hosts del tuo client per includere la risoluzione webdav.local dell'host sopra.

Installazione di Apache e WebDAV

In questa sezione installeremo semplicemente apache2 e abiliteremo il modulo WebDAV. Il modulo WebDAV viene fornito con l'installazione di apache2, tuttavia non è abilitato per impostazione predefinita. Tutto questo può essere fatto con due semplici comandi:

$ sudo apt-get install apache2

A questo punto dovresti essere in grado di accedere al tuo sito Web predefinito situato a http://webdav.local. Se tutto va bene disabilita la pagina predefinita perché non ci serve più:

$ sudo a2dissite default
$ sudo service apache2 reload

Configura host virtuale

A questo punto è necessario configurare l'host virtuale con ServerName:webdav.local e la directory allegata /var/www/webdav. Per farlo, vai a /etc/apache2/sites-available/:

$ cd /etc/apache2/sites-available/

e creare un nuovo file di configurazione del sito chiamato webdav.local con il seguente contenuto:

<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 volta fatto, dobbiamo creare una directory /var/www/webdav/ appropriata:

$ sudo mkdir /var/www/webdav

Cambia proprietario in apache:

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

e abilita il nuovo sito webdav.local

$ sudo a2ensite webdav.local

Per testarlo possiamo creare dei semplici file index.html:

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

e infine ricaricare il server web apache2:

$ sudo service apache2 reload

Ora dovresti essere in grado di navigare nel tuo browser su http://webdav.local e vedere il messaggio:Benvenuto da WebDAV.local sullo schermo. Questo conclude l'installazione del webserver apache2 con l'host virtuale webdav.local

Configurazione WebDAV

È ora di abilitare il modulo WebDAV con:

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

e riavvia il server Apache:

$ sudo service apache2 restart

Ora che tutto è pronto possiamo configurare un server WebDAV di base. Questo può essere fatto facilmente creando una directory aggiuntiva per contenere i dati WebDAV:

Configurazione di base

$ sudo mkdir /var/www/webdav/svn

È anche importante renderlo scrivibile da Apache altrimenti otteniamo 403 Forbidden error:

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

e abilitare WebDAV per il nostro nuovo host virtuale webdav.local. Questo può essere fatto aggiungendo le seguenti righe nel blocco :

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

Ciò che quanto sopra misura è quella directory abilitata per WebDAV /var/www/webdav/svn che sarà accessibile tramite http://webdav.local/svn. Esegui la modifica sopra del tuo file di configurazione /etc/apache2/sites-available/webdav.local esistente e riavvia il tuo server web apache. Ecco come appare l'intero file /etc/apache2/sites-available/webdav.local in questa fase:

<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>

È tempo di testare la nostra configurazione. Un modo per farlo è puntare il nostro browser su http://webdav.local/svn o un modo ancora migliore è usare lo strumento cadaver. Prima installa cadavere con:

$ sudo apt-get install cadaver

Crea lo stesso file di dati con dd da caricare nella tua directory WebDAV e caricalo:

$ 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.

Ora dovresti avere il server WebDAV di base configurato e pronto per l'uso. Nella prossima sezione aggiungeremo alcune autenticazioni utente di base.

WebDAV con autenticazione utente

Se intendi distribuire il tuo server WebDAV su un host remoto è più che consigliabile implementare almeno un'autenticazione di base. Fortunatamente, questo può essere fatto facilmente usando htpasswd comando e riconfigurando il nostro file di configurazione /etc/apache2/sites-available/webdav.local esistente.

Innanzitutto crea una directory in cui desideri memorizzare il file della password di webdav. Questa è una posizione a tua scelta. In questo tutorial utilizzo /usr/local/apache2/:

$ sudo mkdir /usr/local/apache2/

Quindi, usa htpasswd per creare un nuovo file di password su cui verranno autenticati tutti gli utenti.

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

Se è necessario aggiungere più utenti, utilizzare la sintassi sopra ma omettere l'opzione -c poiché sovrascriverà il file esistente.
Ora che il file di autenticazione è pronto, è necessario aggiungere l'autenticazione al nostro attuale /etc/apache2/sites -file di configurazione disponibile/webdav.local. Le nuove modifiche sono evidenziate con il carattere in grassetto:

<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>

D'ora in poi, se provi ad accedere al tuo server WebDAV, dovrai prima autenticarti. Ecco un esempio di autenticazione 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/>

Limitazione dell'accesso WebDAV

Inoltre, è consigliabile limitare l'accesso WebDAV a un numero limitato di utenti. Ad esempio, se vogliamo consentire solo all'utente singolo "Lubos" di accedere al nostro repository WebDAV, possiamo farlo aggiungendo una clausola all'interno della direttiva come:

    <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>

Poiché gli utenti possono accedere e caricare file in qualsiasi directory abilitata per WebDAV, si consiglia inoltre di non consentire il file .httaccess. Pertanto, aggiungi:

AllowOverride None

all'interno della direttiva .

Montaggio della directory abilitata per WebDAV

Come già accennato in precedenza, WebDAV è supportato da un gran numero di client. È anche possibile montare la directory WebDAV in un sistema locale per agire come parte del filesystem. Per farlo dobbiamo prima installare davfs2 come utente root:

# apt-get install davfs2

quindi crea un punto di montaggio:

# mkdir /mnt/webdav

e infine montalo con un comando mount:

# 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

Conclusione

Questo articolo ha descritto una configurazione di base del servizio WebDAV utilizzando il server Web Apache2 per iniziare. Ci sono alcuni problemi di sicurezza da considerare, quindi devi fare i tuoi compiti e consultare la documentazione mod_dav del modulo Apache per ulteriori impostazioni di configurazione e miglioramenti della sicurezza per migliorare la tua configurazione.


Ubuntu
  1. 4 passaggi per configurare il repository locale in Ubuntu utilizzando APT-mirror

  2. Configura il server Urbackup su Ubuntu 20.04

  3. Imposta il server Rsyslog su Ubuntu 20.04 - Come farlo?

  4. Ubuntu – Server Vcenter su Linux?

  5. Configurazione del server Web Ubuntu?

Ubuntu 22.04 Configurazione del server Minecraft

Come configurare il server di repository APT locale su Ubuntu 20.04

Come configurare OpenVPN su Ubuntu Server

Come configurare Git Server su Ubuntu 20.04

Come configurare il server Rsyslog su Ubuntu

Come configurare il server DHCP su Ubuntu