apache 2 : configuration webdav

Comme beaucoup de monde faisant le même travail, j'ai pris l'habitude de récupérer et stocker des documentations au fil du temps. C'est bien pratique d'avoir les docs directement sous la main quand on en a besoin. Le seul problème que j'avais est que lorsque je n'avais plus mon pc de travail, ces docs étaient indisponibles. La solution que j'ai trouvé est d'utiliser les fonctionnalités webdav d'Apache 2 pour profiter de mes docs à partir de n'importe où. Et puis cela rentabilise un peu ma dedibox :-)

configuration d'apache 2


chargement des modules webdav


Pour simplifier mon billet, je vais considérer qu'Apache 2 est déjà installé et est configuré pour servir un site.

Je précise aussi que ce type de configuration est plutôt bien documenté sur le net donc si votre environnement est très différent du mien, n'hésitez pas à faire une recherche plus spécifique.

Pour que webdav fonctionne, on a besoin que deux modules apache soit activé : dav_fs et dav.

Sur ubuntu(/debian), on active ces modules avec a2enmod
a2enmod dav_fs
La commande a2enmod gère les dépendances entre module et installera donc le module dav en même temps que dav_fs.

Pour les systèmes ne disposant pas de cette commande, il faut ajouter le chargement des modules dans le fichier de configuration :
LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so
Et cette ligne indiquant le fichier verrou utilisé par webdav :
DAVLockDB /var/lock/apache2/DAVLock

configuration du répertoire


On peut placer les répertoires que l'on veut partager par webdav dans le fichier de configuration du module dav_fs mais je préfère mettre ses configurations directement dans le virtualhost de mon site.
        <Directory "/docs" >
DAV On
DAVMinTimeout 600
AuthType Basic
AuthName "Krystalia Users Only"
AuthLDAPURL ldap://localhost/dc=krystalia,dc=net?uid?sub
AuthLDAPGroupAttribute member
Require group cn=web,ou=groups,dc=krystalia,dc=net
Require valid-user

</Directory>
Le paramètre DAVMinTimeout spécifie le temps d'inactivité en secondes après lequel le lock DAV expire.

En général, il est recommandé d'utiliser une authentification plus solide que basic pour l'authenfication mais si on passe par SSL c'est tout à fait admis. D'ailleurs windows XP SP2 réagit pas mal à ce sujet : il n'autorise pas l'utilisation de la méthode d'authentification basique si on ne se trouve pas dans une session en SSL.
J'utilise un annuaire LDAP pour l'authentification de beaucoup de services et cela implique l'utilisation de "Basic" au niveau de la configuration d'Apache si je veux m'en servir.

configuration du système de fichier


Je préfère avoir un système de fichier dédié pour stocker mes documents.
J'utilise LVM2 pour gérer mes disques. Je crée un volume logique de 5 Go dans mon volume group datavg.
# lvcreate -L 5G -n lv_docs datavg
Logical volume "lv_docs" created
Je formate ensuite mon système de fichier en reiserfs :
 mkfs.reiserfs  /dev/datavg/lv_docs 
Le point intéressant dans tout ça est l'entrée dans à ajouter dans /etc/fstab :
/dev/datavg/lv_docs /docs reiserfs      nosuid,nodev,noexec     0       2
Les options de montage permettent de spécifier les droits suivants :
  • nosuid : les privilèges setuid et segid sur les fichiers n'ont plus d'effet.


  • noexec : les fichiers sur le système de fichier ne peuvent pas s'exécuter directement. Une commande comme perl monfichier.pl marchera quand même.


  • nodev : pas d'interprétation des fichiers périphériques caractères ou blocs.

Ces trois paramètres permettent de sécuriser un peu plus le système sur lequel on veut faire partager sa documentation. Ce n'est pas la protection "ultime" mais cela ne coûte pas cher de les positionner.
Pour finir on crée le répertoire /docs et on le monte :
mkdir /docs
mount /docs

utilisation de webdav


sous gnome


Le plus simple est d'ouvrir une fenêtre Nautilus et de choisir dans le menu File l'option Connect to server...
On se retrouve sous l'écran ci-dessous où il faut remplir les champs Server, Folder et User Name pour se connecter :



L'écran suivant vous demande de fournir le mot de passe correspondant à l'utilisateur. Une fois saisie, on dispose d'une connexion réseau sur son bureau pointant sur la ressource webdav pour y accéder comme s'il s'agissait d'un répertoire local. Voici ci-dessous un exemple de mon répertoire docs :

sous Windows


L'intéret d'avoir un dossier webdav et de pouvoir y accéder à partir d'OS différents. Windows permet aussi d'accèder à des ressources webdav.
Il faut exécuter le Add Network Place Wizard utiliser l'explorer windows est aller dans web folder et faire File->New->Web folder. Une nouvelle fenêtre apparait :

Il suffit de saisir l'url à utiliser et ensuite de donner un nom au web folder.

cadaver


cadaver est un outil en ligne de commandes pour accéder aux répertoires webdav comme si on utilisait un client ftp.


 

adejoux@feddy ~> cadaver https://www.krystalia.net/docs

Authentication required for Krystalia Users on server `www.krystalia.net':
Username: djouxy
Password:

dav:/docs/> cd docs/AIX
dav:/docs/docs/AIX/> ls
Listing collection `/docs/docs/AIX/': succeeded.
Coll: admin 0 Mar 19 2007
Coll: aix 6 0 Jan 8 2008
Coll: certifs 0 Mar 8 2007
Coll: hacmp 0 Apr 24 2007
Coll: hardware 0 Mar 8 2007
Coll: hmc 0 Oct 31 2007
Coll: oracle 0 Mar 9 2007
Coll: performance 0 Mar 19 2007
AIX_HMC_TipSheet.pdf 25673 Jul 13 2007
*Backup%20&%20Restore%20of%20AIX%20on%20pSeries.pdf 36515 May 10 2006
H2260_powerpath_mpio_wp_ldv.pdf 602795 Jul 2 2007
TSM 5.5 Highlights 11 13 07.ppt 1175552 Nov 12 2007
Virtual IO Server Ethernet Configuration for Continuous Availability.pdf 1507008 Nov 20 2007
Virtualization Options 1-2.ppt 2802688 Oct 18 2007
aix_vn.pdf 108169 Jul 10 2007
iphb1pdf.pdf 2054709 Nov 26 2007
lparmon.pdf 1074492 Nov 21 2007
pstiVirtualSCSIPerf111004.pdf 122846 Oct 18 2007
redp4194_apv_best_practices.pdf 4122719 May 2 2007
rperf.pdf 133076 Nov 9 2007
rperf_full.pdf 1933159 Nov 9 2007
sg247231.pdf 9138398 May 15 2007
sg247940_APV introduction and configuration.pdf 7466332 Jul 10 2007
test_pprc.doc 229888 Oct 19 2007
vio_server_commands_reference.pdf 4928134 Jul 13 2007


web browser


   Je sais que ça peut surprendre mais on peut aussi y accéder à travers un navigateur web ;-) Ca peut aussi être sympa et pratique.



Conclusion


Et voilà, webdav est vraiment super pratique pour conserver ses docs accessibles à partir de partout. Fini de pester sur le fait de devoir chercher une doc sur le web alors qu'on l'a déjà sur un autre pc.  En amélioration possible, on peut aussi le coupler à un moteur de recherche (tel que htdig) pour avoir une solution équivalente à un google desktop.

Par contre, il vaut mieux éviter de mettre à disposition des documentations confidentielles sur le serveur ;-)