apache2 e davfs con autenticazione utente e ssl

Introduzione

WebDav è un estensione del protocollo http che permette l'esposizione di un filesystem tramite i normali servizi web ... ma anche qualcosa di più . Permette infatti di avere notifiche riguardo alla modifica di un documento o la sua cancellazione e, opportunamente configurato, può fare versioning e salvare i documenti su un database piuttosto che sul filesystem del server.

Per ulteriori informazioni, vi rimando all' http://www.ietf.org/rfc/rfc2518.txt" target="_blank">RFC che spiega tutto quello che ci si può fare .

Qualcuno noterà che le funzionalità sono molto simili a un famoso prodotto a pagamento di una grossa società di Redmond : il fatto è che questa società ha implementato il protocollo descritto nell'rfc e ha aggiunto alcune finzionalità proprie per rendere più semplice la gestione di alcuni suoi software ( come la suite PIM o alcune funzionalità del suo pacchetto di ufficio ) .
Questo non ci fà che piacere perchè potrete gestire, anche se in maniera limitata, anche macchine che utilizzano queste suites senza dover installare software aggiuntivo

Scopo

Lo scopo di questa guida è aiutarvi a installare e configurare il modulo di apache2, a restringerne l'accesso , e a esporre questi servizi tramite ssl .

ATTENZIONE! Non rispondo di eventuali danni.

Prerequisiti

Innanzitutto vi serve apache :

# apt-get install apache2

Fin quì niente di doloroso; ora installate openssl e sslcert

# apt-get install ssl-cert openssl
Abilitazione dei servizi

Il modulo mod_dav non esiste come pacchetto separato ed è installato in automatico quando installate apache .

Adesso, per questo esempio, creeremo un server virtuale in cui abiliteremo il modulo dav, ssl e abiliteremo l'autenticazione utente.

Creazione del certificato

# apache2-ssl-certificate

Su etch quello script non esiste . Se questo è il vostro caso ( come il mio ) seguite questi passi :

#export RANDFILE=/dev/random
#openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
#chmod 600 /etc/apache2/ssl/apache.pem

Attivazione del modulo

a2enmod ssl

Adesso dovete dire ad apache di ascoltare anche sulla porta ssl :

# cat "Listen 443" >> /etc/apache2/ports.conf

Configurazione dell'host per ssl
In generale, dovrete aggiungere al file di configurazione dell'host , due righe :

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem

Vedremo, in seguito, un esempio concreto .

Abilitazione WebDav

#a2enmod dav_fs dav

A questo punto bisogna attivare il servizio sull'host .
in generale, si deve aggiungere la seguente riga :

DAV On

Restrizione dell'accesso
In questa guida si prende in considerazione solo l'autenticazione Basic; apache ne mette a disposizione moltre alte. Vi invito caldamente a leggervi le guide dell'apache foundation per scoprire quali altri tipi di autenticazione avete a disposizione .

Innanzitutto bidogna creare il file degli utenti/passwords :

htpasswd -c

poi, per ogni utente a cui vogliamo dare l'accesso :

htpasswd

Bisogna poi dire all'host di controllare l'identità di chi richiede l'accesso usando il nostro file. Nel file di configurazione dell'host inserite

AuthType Basic
AuthName "webdav-example"
AuthUserFile
>
Require valid-user

Alla pagina successiva trovate un esempio reale con le operazioni passo passo per creare un virtual host che espone il servizio WebDav su ssl sul vostro server .
[pagebreak]

Creazione di documents.mysite.com come virtual host webdav su ssl

Installazione

# apt-get install apache2 ssl-cert openssl
# export RANDFILE=/dev/random
# openssl req $@ -new -x509 -days 365 -nodes -out / etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
# chmod 600 /etc/apache2/ssl/apache.pem
# a2enmod ssl dav_fs dav
# cat "Listen 443" >> /etc/apache2/ports.conf
# mkdir -p /var/export/documents.mysite.com
# chmod www-data /var/export/documents.mysite.com
# htpasswd -bc /var/export/davpasswd test test
# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/documents.mysite.com

Configurazione
Modificate /etc/hosts in modo che contenga la riga :

127.0.0.1 documents.mysite.com documents

Sostituite il contenuto di /etc/apache2/sites-available/documents.mysite.com con :


NameVirtualHost *:443
<VirtualHost *:443>
ServerAdmin webmaster@mysite.com
ServerName documents.mysite.com
ServerAlias documents.mysite.com

DocumentRoot /var/export/documents.mysite.com
<Directory /var/export/documents.mysite.com>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Alias /webdav /var/export/documents.mysite.com
<Location /webdav>
DAV On
AuthType Basic
AuthName "webdav-example"
AuthUserFile /var/export/davpasswd
<LimitExcept OPTIONS>
Require valid-user
</LimitExcept>
</Location>
## ssl
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
</VirtualHost>

Adesso controllate la configurazione, abilitate l'host e ricaricate apache :

# a2ensite documents.mysite.com
# apache2ctl configtest
# /etc/init.d/apache2 reload

All'indirizzo http://documents.mysite.com/webdav avrete il vostro server WebDav . Potrete accedervi in lettura da un browser e in scrittura usando daf2fs, cadaver o un qualsiasi client dav .
Da MacOs il supporto per le directory dav c'è di default, così come su windows xp .... anche se per collegarsi a una directory dav su ssl windows ha bisogno di MSOffice .

Ciao

Marco

0
Condividi contenuti