[WebDAV su Raspberry Pi] – Configurare un hard disk condiviso in rete con PC, Tablet e Smartphone
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à:
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 *:80ServerAdmin 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.
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.
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.
Se tentassimo di fare la stessa cosa su Windows 7, potremmo imbatterci in un messaggio di errore di questo tipo:
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.
[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“.
A questo punto il PC va riavviato, e solo successivamente potremo accedere a “Connetti unità di rete” da “Risorse del Computer”.
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.
Dopo aver inserito le credenziali di accesso, la nostra risorsa verrà aggiunta alle altre presenti nelle “Risorse del Computer” alla voce “Percorso di Rete”.