La mia esperienza con WebDAV, NIS, e clients MAC, Linux, Windows 7 e iPhone

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

Leave a Reply

Your email address will not be published. Required fields are marked *