Configuration de Webdav



Webdav est une surcouche d'apache qui se comporte comme un partage de fichiers.
Il permet de lire et stocker des fichiers sur un serveur uniquement en passant par 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

Voici les chemins ou JE met les fichiers nécessaires à webdav:
  • 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".