Questa settimana ho provato WebDAV server su Linux utilizzando APACHE per poter offrire all’utenza della mia rete la possibilita di condividere file in maniera trasparante e facile anche quando all’esterno della nostra rete. In questo articolo non scendero nei dettagli e daro per scontato che conoscete la conf di APACHE, avete un server NIS almeno per la seconda parte, e sapete installare delle librerie in perl.
Per cominciare ho installato il modulo dav, mod_dav
yum install mod_dav
Dato che pensavo di utilizzare l’auticazione basic, ho proceduo all’installazione del mod_ssl
yum install mod_ssl
Finite le installazioni comincio la configurazione di apache
inserisco un file chiamato webdav.conf in /etc/httpd/conf.d/
<IfModule mod_dav.c> Alias /webdav "/DATA/sharing_webdav" <Directory "/DATA/sharing_webdav> Dav On AuthType Basic AuthName "Benvenuto nel test di WebDAV" AuthUserFile /etc/httpd/webdav.pwd Require valid-user Order allow,deny Allow from all </Directory> </IfModule>
creo il file delle password
htpasswd -c /etc/httpd/webdav.pwd michele
Creo la directory
mkdir /DATA/sharing_webdav
faccio un reload di apache
/etc/init.d/apache reload
e testo
tutto bene mi risponde, e riesco a trasferire i files
Ora dato che utilizzo NIS per autenticare gli utenti carico dei moduli in perl per autenticare gli utenti del NIS in APACHE
Mi servono dei moduli in perl e gli installo direttamente da PERL per avere l’ultima versione
perl -MCPAN -e shell (Rispondere NO alla prima domanda) install ExtUtils::AutoInstall (se chiede di installare delle dipendenze rispondete YES) install Net::NIS (se chiede di installare delle dipendenze rispondete YES) install Apache2::AuthenNIS (se chiede di installare delle dipendenze rispondete YES) quit
Ora tutto dovrebbe essere pronto e passiamo alla modifica del file webdav.conf
<IfModule mod_dav.c> Alias /webdav "/DATA/sharing_webdav" <Directory /DATA/sharing_webdav> Dav On AuthType Basic AuthName "Benvenuto nel test di WebDAV" PerlAuthenHandler Apache2::AuthenNIS PerlSetVar AllowAlternateAuth no Require valid-user Order allow,deny Allow from all </Directory> </IfModule>
ancora un reload
/etc/init.d/apache reload
e facciamo questo test usando uno user del NIS
Ma ora mi servirebbe permettere ad ogni user di avere una propria zona dove poter mettere i propri file senza condividerli e non vorrei creare un file di configurazione per ogni utente. Per fare questo utilizzo mod_rewrite
<IfModule mod_dav.c> RewriteEngine On RewriteRule ^/webdav/(.*) /DATA/webdav_sharing/%{LA-U:REMOTE_USER}/$1 Alias /webdav "/DATA/sharing_webdav" <Directory "/DATA/sharing_webdav> Dav On AuthType Basic AuthName "Benvenuto nel test di WebDAV" PerlAuthenHandler Apache2::AuthenNIS PerlSetVar AllowAlternateAuth no Require valid-user Order allow,deny Allow from all </Directory> </IfModule>
Ma prima del reload devo creare gli spazi, percio mi sposto i /DATA/sharing_webdav
cd /DATA/sharing_webdav ypcat passwd | awk -F ':' '{print $1}' | xargs mkdir chgrp apache * -Rf chmod g+rwx * -Rf
Ora ho creato le directory, cambiato il gruppo e dato i permessi al gruppo
Rifaccio il reload e si riprova, le prove le faccio sempre da un browser come per una pagina web
Ora devo spostare tutto nel file ssl.conf, in quanto con l’opzione BASIC dell’autenticazione la password viene trasferita in chiaro.
Dopo avere spostato tutto il contenuto del webdav.conf in ssl.conf all’interno del virtualhost che ci interessa.
Cancello il file webdav.conf e ancora un reload di APACHE e ritestiamo.
Ora che il server funziona parto con i test.
Saro breve e meno preciso del solito, in quanto ogni versione potrebbe avere una sua procedura particolare.
Per linux ho usato Konqueror
webdavs://SERVER/webdav
In OSX(le voci in italiano le ho tradotte, io uso la versione inglese)
Aprire Finder > Seleziona Vai > Connetti ad un server ed inserire https://SERVER/webdav/
In Windows 7 ho usato connect network, ma qui sono iniziati i dolori, mi chiedeva in continuazione la password.
Poi ho scoperto che Windows7 non accetta di default la basic authentication, modifico il registry
nello specifico
la chiave BasicAuthLevel in 2 che si trova qui HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
faccio ripartire il servizio webClient
Ma niente non ne vuole sapere
Dopo varie prove, ho lasciato perdere in quanto potrebbe essere un problema di certificato non firmato
E mi decido di usare netdrive che trovate qui http://www.netdrive.net/download.html
Per iPhone ho scaricato WebDav Nav un applicativo gratuito
Mi dispiace per la versione schematica anche di questro articolo, ma voglio condividere le mie esperienze senza vole fare una guida, spesso per tenere traccia di quello che faccio come se fosse un diario