Skip to content

Apache2 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’apache2

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 :

image missing

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 :

image missing

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 :

image missing

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 ;-)

Publications liées

  1. Rails: installation dans un sous répertoire
  2. un terminal web : Ajaxterm