A propos/How-To...

Suite à quelques soucis de configuration de mon serveur ftp (vsftp) à cause des problèmes de NAT/PAT, j’ai configuré mon serveur WebDAV pour en faire un serveur de fichier. L’intérêt est qu’un serveur WebDAV fonctionne parfaitement à travers un proxy web grâce au protocole HTTP...

J’ai utilisé 3 ACL (Access Control List) / types de profils utilisateur comme pour un serveur ftp:

  • lecture seule (sans droit d’écriture)
  • lecture+écriture (sans droit de suppresion)
  • admin (droits de lecture+écriture+suppression)

Le répertoire partagé est /home/ftp en lecture.

Il y a un sous-répertoire /home/ftp/upload en écriture

Prérequis

Pour installer et configurer le module WebDAV mod_dav sur un serveur apache2, voir le tutorial précédent : Installation de WebDAV pour Apache2 sur une Debian testing (etch)

Configuration de WebDAV

Pour illustrer l’example, on va créer 4 utilisateurs pour chacun des profils :

  • xavier : lecture
  • arnaud et pascal : lecture+écriture
  • pierre : lecture+écriture+suppression

- Créer un fichier /etc/apache2/htpasswd-webdav contenant les login/mot de passe des utilisateurs grâce à la commande ’htpasswd’. Attention : si le fichier existe déjà, ne pas passer l’option -c (création)


# htpasswd -c /etc/apache2/htpasswd-webdav xavier
New password:
Re-type new password:
Adding password for user xavier
# htpasswd /etc/apache2/htpasswd-webdav arnaud
New password:
Re-type new password:
Adding password for user arnaud
# htpasswd /etc/apache2/htpasswd-webdav pascal
New password:
Re-type new password:
Adding password for user pascal
# htpasswd /etc/apache2/htpasswd-webdav pierre
New password:
Re-type new password:
Adding password for user pierre

- Créer un simple fichier texte /etc/apache2/htgroup-webdav contenant la liste des ACL [1] / groupes d’utilisateur. On va créer 2 groupes :

  • webdav-writer (droits en écriture)
  • webdav-admin (droits de suppression)

Je n’ai pas créé de groupe webdav-reader car par défaut tout le monde a accès en lecture...


webdav-writer: arnaud pascal
webdav-admin: pierre

- Configurer apache2 (SSL)

Je ne mets que la partie concernant webdav


       <Directory /home/ftp>
         DAV on
         AuthName "WebDAV Storage"
         AuthType Basic
         AuthUserFile  /etc/apache2/htpasswd-webdav
         AuthGroupFile /etc/apache2/htgroup-webdav

         # if you want to allow standard web browser read access : remove the "GET" from the Limit directive
         <Limit GET POST OPTIONS PROPFIND>
           #Require group webdav-reader
           Require valid-user
         </Limit>
       </Directory>

       <Directory /home/ftp/upload>
         DAV on
         AuthName "WebDAV Storage"
         AuthType Basic
         AuthUserFile  /etc/apache2/htpasswd-webdav
         AuthGroupFile /etc/apache2/htgroup-webdav

         <Limit GET PUT PROPPATCH MKCOL COPY LOCK UNLOCK>
           Require group webdav-writer
         </Limit>
         
         <Limit GET PUT DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
           Require group webdav-admin
         </Limit>
       </Directory>

- Changer les droits du répertoire /home/ftp/upload pour que le serveur apache puisse y écrire


# chown www-data /home/ftp/upload

- Il ne reste plus qu’à relancer le serveur apache2 !


# /etc/init.d/apache2 restart

Clients WebDAV

- Cross-Platform

- Linux


[1] Access Control List