partage WebDav sur Ubuntu, Configuration des clients sous Ubuntu/Gnome, MacOS X et Windows XP

Introduction

Un serveur WebDav est un serveur web classique couplé avec un module pour faciliter l’envoie de fichier. Dans ce tutorial, Nous allons mettre en place un serveur webdav sur un serveur web Apache 2. Nous verrons ensuite que l’ensemble des systèmes d’exploitations fournissent un système transparent pour la connexion à ce genre de partage. Le client webdav est souvent inclus dans le navigateur de fichier.

Installer un serveur WebDav

Je pars du principe que vous avez un serveur Apache 2 fonctionnel sur votre serveur. Pour notre exemple, le dossier de partage sera le dossier /var/www/sharing. Le dossier de configuration d’apache est à l’adresse: /etc/apache2/. Les comptes utilisateurs (et leurs mots de passes) seront enregistrés dans le fichier : /var/www/sharing/.webdav.passwd

Les prérequis

La première étape est de générer un certificat SSL et une clé SSL. C’est primordial pour assurer le cryptage des données. Un certificat est un fichier avec l’extension .crt (server.crt dans ce tutorial) et la clé sera server.key. Pour créer la clé et le certificat, tapez ces commandes dans un terminal:

$ mkdir /tmp/ssl_conf 
$ cd /tmp/ssl_conf 
$ openssl req -config /etc/ssl/openssl.cnf -new -out server.csr

Définissez une passphrase, tapez un mot de passe mémorisable. Ensuite, répondez aux questions sur la localisation de votre serveur. (Il n’est pas nécessaire de répondre à toutes les questions.)

$ openssl rsa -in privkey.pem -out server.key 
$ openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650 
$ openssl x509 -in server.crt -out server.der.crt -outform DER

Le certificat sera valable environ 10 ans.
La dernière étape pour l’instant est de copier/coller les deux fichiers importants dans le répertoire d’apache2.

# cp server.crt /etc/apache2/
# cp server.key /etc/apache2/

(Vous aurez besoin d’être root pour faire ça)

Configurer son serveur apache

Il y a 4 étapes à faire:
-Définir un virtualhost
-Activer le support SSL
-Activer le support WebDav
-Activer l’authentification http.

Voici le code du virtualhost à définir dans /etc/apache2/site-enable/000-default

<VirtualHost 192.168.1.2:443>
        ServerName toto
        DocumentRoot /var/www/sharing
        <Directory "/var/www/sharing">
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>

        SSLEngine on
        SSLCertificateFile /etc/apache2/server.crt
        SSLCertificateKeyFile /etc/apache2/server.key

        <Location />
            Dav on
            AuthType Basic
            AuthName "Sharing  Repository"
            AuthUserFile /var/www/sharing/.webdav.passwd
            Require valid-user
        </location>
</VirtualHost>

Définition des champs:
remplacez 192.168.1.2 par l’ip de votre machine sur le réseau local.
Le répertoire de partage sera /var/www/sharing

les lignes suivantes activent le support du ssl (https), en définissant également, les chemins vers les fichiers clé et certificat.

        SSLEngine on
        SSLCertificateFile /etc/apache2/server.crt
        SSLCertificateKeyFile /etc/apache2/server.key

Le dernier groupe de lignes active le webdav et spécifie la méthode d’authentification.

        <Location />
            Dav on
            AuthType Basic
            AuthName "Sharing  Repository"
            AuthUserFile /var/www/sharing/.webdav.passwd
            Require valid-user
        </location>

Pour résumer, nous avons maintenant un serveur configuré et un certificat ssl prêt pour le service. Il nous faut donc créer un fichier de .passwd et activer les modules webdav et ssl.

Créer un fichier de mot de passe

Une simple commande suffit pour créer ce fichier et ajouter l’utilisateur toto:

# htpasswd -c /var/www/sharing/.webdav.passwd toto

L’option -c crée le fichier, s’il n’existe pas. Le mot de passe vous sera demandé dans la suite de la commande. Il est conservé crypté dans le fichier.

Pour ajouter un autre utilisateur

# htpasswd /var/www/sharing/.webdav.passwd tata

Activer les modules webdav et ssl dans Apache2

Pour cela, il faut créer des liens symboliques dans les dossiers de configuration d’apache.

cd /etc/apache2/mods-enabled
ln -s ../mods-available/dav* .
ln -s ../mods-available/ssl* .

A ce stade, il vous reste plus qu’a redémarrer votre serveur apache.

sudo /etc/init.d/apache2 restart

Vous avez normalement un serveur webdav fonctionnel. Pour vérifier, tapez l’adresse de votre serveur dans un navigateur web. Acceptez le certificat, identifier vous grâce à votre login/mot de passe.
Vous devriez voir une page de ce style:

resultat webdav

Configuration des Clients

Nous allons maintenant voir comment configurer des clients WebDav. Pour télécharger des fichiers depuis le serveur un simple navigateur web suffit. Cependant le plus intéressant, reste la possibilité de déposer des fichiers dans ce partage. Il est donc nécessaire d’utiliser un vrai client WebDAV.

Sous MacOS X

Ouvrez un finder, cliquez sur le menu “Aller” > “Se connecter à un serveur distant” (cmd + K). Une petite boîte de dialogue, vous demandera l’adresse. Tapez l’adresse du votre serveur. Il vous demandera le login et le mot de passe de l’utilisateur (.webdav.passwd). Si l’authentification, c’est bien passé vous avez un nouveau dossier dans votre finder. Voilà, vous pouvez partager des fichiers.

Sous Gnome (Ubuntu)

C’est très simple: dans le menu Raccourcis, cliquez sur “Se connecter à un serveur…”

assistant windows 1

Sous Windows XP

Ouvrez les favoris réseaux. Cliquez sur “Ajouter un Favori réseau” sur le menu de gauche. une fenêtre s’ouvre.

assistant windows 1

Séléctionnez le premier choix et faite suivant.

assistant windows 2

Rentrez l’adresse dans le champs comme sur l’image ci-dessus.

assistant windows 3

Acceptez le certificat.

assistant windows 4

Saississez votre login et votre mot de passe.

assistant windows 5

Entrez un nom (celui que vous voulez ou laissez le nom par défaut).
Il est possible que l’acceptation du certificat vous soit souvent demandée tout comme que votre login/mot de passe.

FAQ

Mon serveur semble ne pas marcher à l’extérieur de mon réseau local.

Vérifiez bien la configuration de votre routeur. Les connexions entrantes sur le port 443 (https) doivent être redirigées vers votre serveur.

Je n’arrive pas à uploader des fichiers.

C’est probablement un problème de droit en écriture sur le serveur. Apache doit pouvoir écrire dans le répertoire de partage choisi. (chmod g+w et chown user:www-data)

Plus d’informations

Leave a Reply

Your email address will not be published. Required fields are marked *