[WebDAV su Raspberry Pi] – Configurare un hard disk condiviso in rete con PC, Tablet e Smartphone

Questo articolo è stato pubblicato da circa 8 anni . Le informazioni che seguono potrebbero non essere attuali.

In questo articolo vedremo passo dopo passo come poter condividere un hard disk remotamente attraverso la realizzazione di una WebDAV su Raspberry Pi…

Ma cos’è una WebDAV? E’ l’acronimo di “Web-based Distributed Authoring and Versioning“, ovvero una serie di funzioni del protocollo HTTP, che permettono di gestire in modo collaborativo dei file su un server remoto. Tradotto praticamente, attraverso la realizzazione di una WebDAV, potrei rendere disponibile in rete (via HTTP) un hard disk (o parte di esso) a persone collegate remotamente. Ad esempio potrei avere il mio hard disk domestico sempre collegato al mio pc portatile o al mio tablet o smartphone in qualsiasi momento, anche a centinaia di km da casa. Utile! No? 🙂

Per prima cosa vedremo come configurare la parte server, dopodichè vedremo come poter accedere alla risorsa condivisa da un computer Apple, da PC Windows e da tablet/smartphone .

Configurazione Server

Diamo per scontato che il vostro Raspberry abbia già:

  • Sistema operativo installato (Guida)
  • Scheda di rete configurata con indirizzo IP statico (Guida)

Avere un IP statico è molto importante per poter accedere al server che stiamo configurando, perché essendo l’indirizzo IP parte dell’indirizzo del server a cui i client si andranno a collegare, va impedito che l’indirizzo possa cambiare, causando a sua volta l’irraggiungibilità alla risorsa condivisa.

Essendo la WebDAV un servizio sul protocollo HTTP, se non è già installato per altre applicazioni, dobbiamo iniziare dall’installazione di un “Web Server”, nel nostro caso “Apache”! Accediamo quindi al terminale ed iniziamo l’installazione:

sudo apt-get install apache2

 A questo punto, per far si che il server funzioni, bisognerà abilitare due specifiche estensioni di Apache:

sudo a2enmod dav_fs
sudo a2enmod dav
sudo a2enmod auth_digest

Riavviamo il servizio di Apache per rendere effettive le modifiche:

sudo service apache2 restart

Ora creiamo una cartella specifica (/webdav) all’interno della “document root” del nostro web server (di default è: /var/www). Con il secondo comando assegnamo la proprietà della cartella all’utente “www-data” che non è altro che il nostro web server Apache.

sudo mkdir -p /var/www/webdav
sudo chown www-data /var/www/webdav

A questo punto va creato il “Virtual Host” relativo alla nostra WebDAV. Mettiamoci nel caso in cui il vostro web server non abbia già precedenti configurazioni, e siate nella situazione di un’installazione “vergine” di Apache. Per prima cosa facciamo un backup del file di configurazione di Apache:

sudo mv /etc/apache2/sites-available/default /etc/apache2/sites-available/default_orig

A questo punto andiamo a crearci un nostro file di configurazione. Chi invece fosse in possesso di un web server con altre configurazioni, non dovrà far altro che modificare il il file preesistente aggiungendo il nuovo Virtual Host. Usiamo l’editor Nano:

sudo nano /etc/apache2/sites-available/default

Inserite la seguente configurazione:

NameVirtualHost *:80

        ServerAdmin webmaster@localhost

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

        Alias /webdav /var/www/webdav

        
           DAV On
           AuthType Basic
           AuthName "webdav"
           AuthUserFile /var/www/webdav/passwd.dav
           Require valid-user
       

Questa però, andrebbe modificata con il vostro indirizzo IP (documentazione Apache). supponiamo di avere IP statico = 192.168.1.240, dovremo modificare la seconda riga in questo modo:

A questo punto bisogna riavviare Apache per rendere effettive le modifiche:

sudo service apache2 restart

Manca un ultimo aspetto, proteggere con una password la nostra WebDAV, inserendo anche un “nome utente”:

htpasswd -c /var/www/webdav/passwd.dav nomeutente

Il “-c” serve a creare una chiave nel caso non ne esista già una, mentre per quanto riguarda “nomeutente” e “password” vi consigliamo di usare gli stessi dati di login al Raspberry in modo da non creare confusione. Volendo creare la password per l’utente “pi”, il comando sarà:

htpasswd -c /var/www/webdav/passwd.dav pi

Questa password però non vi permetterà di connettervi alla WebDAV da un PC Windows, quindi bisogna creare una credenziale ad hoc per gli ambienti Windows. L’utente, la password e l’IP devono essere gli stessi usati in precedenza.

htpasswd /var/www/webdav/passwd.dav 192.168.1.240\\pi

Ultimissima operazione, bisogna modificare la proprietà ed i permessi dei file passwd.dav appena creato, in modo da impedire modifiche e cancellazioni anche involontarie

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

Riavviamo Apache un’ultima volta, ed a questo punto dovremmo aver finito!

sudo service apache2 restart

La nostra WebDAV dovrebbe, a meno di qualche errore, essere raggiungibile all’indirizzo web http://indirizzoip/cartellawebdav, che nel nostro caso pratico è: http://192.168.1.240/webdav . Volendo condividere al di fuori dalle mura domestiche la nostra risorsa, dobbiamo:

  • Conoscere il nostro ip pubblico: WhatsMyIP
  • Accedere al router domestico e configurare un “port forwarding” sulla porta TCP 80 per l’indirizzo statico del Raspberry, in questo caso 192.168.1.240. (ecco una guida “for dummies”)

Per verificare il corretto funzionamento della WebDAV da shell, bisogna installare il client “cadaver”.

sudo apt-get install cadaver

Ad installazione terminata colleghiamoci alla nostra WebDAV:

cadaver http://192.168.1.240/webdav/

Se tutto è configurato correttamente, la risposta dovrebbe essere la seguente (comando quit per uscire):

Authentication required for pi on server `192.168.1.240':
Username: pi
Password:
dav:/webdav/> quit
Connection to `192.168.1.240' closed.
pi:~#

Connessione client da Tablet e SmartPhone

Ci sono diverse app gratuite sia su Android che iOS, basta cercare “WebDAV” e potrete scegliere quella che farà al caso vostro. A prescindere dall’app, i dati da inserire saranno: Indirizzo, User e Password.

webdav_mobile

Connessione client a computer Apple

La connessione ad un sistema operativo Mac è altrettanto semplice, basterà andare nel menù “Vai” del “Finder” e selezionare la voce “Connessione al Server” (scorciatoia: “cmd+k”). Basterà inserire l’indirizzo, cliccare su connetti, fornire le credenziali di accesso, ed a questo punto la nostra WebDAV verrà visualizzata sul Desktop come un nuovo hard disk esterno.

webdav_mac_os

Connessione a client PC Windows

Per quanto riguarda la connessione a Windows, tratteremo in particolare quella per Windows 7 e successivi, essendo questa la più critica. Se in possesso di un sistema Windws XP, basterà “connettersi alla unità di rete” dal menù “Strumenti” di Risorse del Computer e seguire la procedura guidata per l’inserimento dell’indirizzo (es: http://192.168.1.240/webdav) e delle credenziali di accesso.

connessione_unità_rete

Se tentassimo di fare la stessa cosa su Windows 7, potremmo imbatterci in un messaggio di errore di questo tipo:

windows-network-error

Questo ci costringe a fare qualche passaggio in più per configurare il supporto delle “Cartelle Web”. I passaggi fondamentali sono tre:

[1] – Scaricare ed installare l’aggiornamento di Windows KB907306 e riavviare se necessario.

[2] – Abilitare il servizio Web Client all’avvio. Cliccando su “Start” e scrivendo “servizi” nella casella di ricerca, accederemo ad i servizi di Windows. Dalla lista bisogna cercare “Web Client”, e facendo doppio clic su di esso, modificare l’avvio da “Manuale” ad “Automatico”. Confermare con “Ok” e chiudere.

servizio-web-client

[3] – L’ultimo step è la modifica di una chiave di registro. Cliccando su “Start” e scrivendo “regedit” nella casella di ricerca, accederemo al Registro di Sistema. A questo punto va cercato il percorso:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters

All’interno di esso, va cercata la chiave “BasicAuthLevel” (se non esiste ,va creata!), la quale, aperta con un doppio clic, va impostata sul valore “2“.

modifica-registro-windows-7

A questo punto il PC va riavviato, e solo successivamente potremo accedere a “Connetti unità di rete” da “Risorse del Computer”.

Schermata 2014-01-22 alle 14.44.30

Nella schermata successiva va inserito l’indirizzo esatto alla risorsa (es: http://192.168.1.240/webdav), ma soprattutto va spuntata la casella “Connetti con credenziali diverse“, mentre la “Riconnessione all’avvio” non è obbligatoria, ma a nostro avviso, molto comoda.

connessione-unita-di-rete-windows

Dopo aver inserito le credenziali di accesso, la nostra risorsa verrà aggiunta alle altre presenti nelle “Risorse del Computer” alla voce “Percorso di Rete”.

risorsa-rete-windows

Rispondi