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 è:
- crea una directory di dati di caricamento aggiuntiva da utilizzare con WebDAV
- 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
<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.