Configuration de Webdav



Webdav est une surcouche d'apache qui permet de stocker des fichiers via le serveur web.
Cela correspond a un partage samba par exemple, mais directement sur apache.


Prérequis

Un serveur apache avec le support de webdav
J'ai fait un tuto sur la compilation d'un serveur apache avec support webdav ici

Configuration d'apache

Je prends comme configuration:
  • Davlock: /etc/apache2/DavLock/
  • Authfile: /usr/local/www/DavUsers
  • Repertoire partagé webdav: /usr/local/www/webdav/ qui est un sousrep d'un virtualhost, donc accessible du web
Il faut bien entendu adapter ces infos à votre config.

Commencons par créer le DavLock (repertoire de travail de webdav):
mkdir /etc/apache2/DavLock/
chown nobody:nobody /etc/apache2/DavLock/

Maintenant nous allons créer le fichier htpassword, qui contient les login/password des gens qui peuvent se connecter
htpasswd -c /usr/local/www/DavUsers LOGIN
chown nobody /usr/local/www/DavUsers

httpd-dav.conf


Nous allons maintenant expliquer a pache comment configurer notre webdav
Ce fichier qui se trouve dans /etc/apache2/conf/extras/ mais cela depend de votre distribution.
Comme le support de webdav a été precisé a la compilation, pas besoin d'appeller un LoadModule
DavLockDB /etc/apache2/DavLock/
DAVMinTimeout 600
DAVDepthInfinity On

<Directory "/usr/local/www/webdav/">
        Dav On
        Order Allow,Deny
        Allow from all
        AllowOverride None
        Options Indexes
        AuthType Basic
        AuthName "Acces restreint aux calendriers"
        AuthUserFile /usr/local/www/DavUsers
        Require valid-user
</Directory>
Maintenant qu'apache est configuré, il faut le relancer pour qu'i prenne en compte les changements
apachectl graceful

Test de connexion

Pour cela il faut un client webdav, cadaver en est un, mais sous Windows, IE peut se connecter en webdav, sur Mac le Finder et Safari en sont capable...
Aller avec ie ou Safari sur l'adresse de votre partage webdav, la un prompt vous demandera votre login si tout va bien.
Tappez celui que vous avez rentré à la première étape de l'htpasswd, et vous devriez voir le listing d'un repertoire vide :)
Si ce n'est pas le cas, allez voir directement vos logs apache pour savoir ce qui ne lui plait pas!

Approfondir


Webdav est capable de bien des choses, dont la gestion des droits par utilisateurs.b Il est par exemple possible de limiter la suppression qu'a un seul utilisateur:
        <LimitExcept DELETE>
                Require user MACHIN
        </Limit>

Il est aussi possible de limiter l'accès a son réseau local uniquement, voir une ip
        Order Deny,Allow
        Deny from all
        Allow from 192.168.10

On peut empecher l'execution des scripts (php par exemple)
ForceType text/plain
Il est aussi possible de mettre les login webdav en base mysql grâce a Auth-Type.

Je vais essayer de détailler bientôt toute ces options plus "avancées".