davfs2

Nautilus, le gestionnaire de fichiers installé par défaut sur Ubuntu permet de monter des espaces de stockages distants utilisant divers protocoles, dont WebDAV. Il permet aussi de créer des signets pour y accéder plus facilement ensuite. Il n'est cependant pas pratique dans ce cas d'accéder à ses fichiers distants en ligne de commande, ou dans le cadre de l'utilisation d'un logiciel tiers de sauvegarde, ou de synchronisation. Dans ce cas il peut être plus intéressant de monter un partage WebDAV dans le répertoire de son choix au moyen de davfs2.

davfs2 utilise la librairie FUSE pour monter un espace WebDAV comme un système de fichier. L'espace distant sera ainsi accessible à la plupart des applications, même quand elles n'implémentent pas elles-mêmes le protocole WebDAV.

Cette page a plutôt vocation historique : rclone propose aujourd'hui toutes les fonctionnalités de davfs2 et beaucoup plus.

Il le fait surtout avec des performances largement supérieures. Il n'y a donc plus trop de raison d'utiliser davfs2.

Montage root

Le montage peut se faire de façon classique en tant qu'administrateur comme tout système de fichier en saisissant dans un terminal les commandes suivantes :

sudo mkdir /media/Box.net
sudo mount.davfs https://dav.box.com/dav /media/Box.net

La deuxième commande devrait vous demander d'entrer vos identifiants comme suit :

  Please enter the username to authenticate with server
https://dav.box.com/dav or hit enter for none.
Username: votre_login
Please enter the password to authenticate user votre_login with server
https://dav.box.com/dav or hit enter for none.
Password: votre_mot_de_passe

où vous remplacerez votre_login et votre_mot_de_passe par vos identifiants WebDAV.

Montage en userspace

Mais le plus intéressant est que vous pouvez aussi monter un partage WebDAV en tant qu'utilisateur "standard" (ie : sans les droits administrateur).
L'utilisateur pourra alors à sa guise monter et démonter le partage sans qu'il ait besoin de lui donner des privilèges administrateur.

Cette façon de monter un partage WebDAV est probablement préférable d'un point de vue sécurité. En effet, avec le montage root, on a un montage qui est en prise directe sur le Web avec des droits root. Une faille dans la pile WebDAV serait alors plus dangereuse que dans le cas d'un montage en tant que "simple utilisateur".

De plus, comme le fstab est modifié, le partage sera automatiquement disponible pour l'utilisateur, à chaque session.

Pour que cela soit possible, il est cependant nécessaire de faire quelques modifications.

  1. dans un terminal saisissez :
    sudo dpkg-reconfigure davfs2

    Et bien sûr, à la question :

    Autoriser les utilisateurs non privilégiés à monter les ressources WebDAV ?

    répondez : oui.

  2. Créez un répertoire dans votre Dossier Personnel pour monter le partage non privilégié :
    mkdir $HOME/Box.net
  3. Éditez avec les droits d'administration le fichier /etc/fstab que vous aurez sauvegardé au préalable et rajoutez ces lignes :
    # Mon montage WebDav
    https://dav.box.com/dav /home/votre_nom/Box.net davfs rw,user,noauto 0 0
  4. Ajoutez-vous au groupe davfs2
    sudo adduser $USER davfs2
  5. Modifier le fichier secrets qui se trouve dans votre Dossier Personnel, sous le répertoire caché .davfs2, pour y ajouter les identifiants et mots de passe de votre partage.
    • Si vous n'avez pas de répertoire .davfs2 dans votre Dossier Personnel, créez-le en y copiant les 2 fichiers qui se trouvent dans /etc/davfs2 :
      mkdir ~/.davfs2
      cp /etc/davfs2/davfs2.conf ~/.davfs2
      sudo cp /etc/davfs2/secrets ~/.davfs2
      sudo chown $USER ~/.davfs2/secrets
  6. Dans le fichier $HOME/.davfs2/secrets, rajouter
    /home/votre_nom/Box.net	identifiant_webdav	mot_de_passe_webdav
Cette dernière manipulation étant assez moyenne au niveau sécurité, s'il s'agit d'un ordinateur partagé, il vous est recommandé d'utiliser le chiffrement du répertoire personnel. De cette façon, les identifiants/mots de passe du partage WebDAV seront au moins protégés par le mot de passe principal de l'utilisateur.

Vous pouvez bien sûr ne pas indiquer vos identifiants dans le fichier secret. Dans ce cas, le montage via Nautilus ou les Raccourcis ne sera pas possible, mais l'utilisateur pourra toujours faire une commande mount ou lancer un script non privilégié pour monter ses partages.

Vous pouvez maintenant constater que dans les raccourcis, à l'endroit où figurent toutes les unités que vous pouvez monter, vous avez une icône correspondant à votre partage WebDAV.

Icône de partage WebDAV

Il vous suffit alors de cliquer dessus pour la monter, comme n'importe quelle unité de disque.
Idem pour la démonter, en cliquant sur la petite flèche en regard du nom de montage dans Nautilus.

Box.net ne gère pas les accès concurrents et cela posera des problèmes si vous voulez créer ou modifier des fichiers. Afin de corriger cela, il faut éditer le fichier $HOME/.davfs2/davfs2.conf et rajouter la ligne :
use_locks       0

OwnCloud

Pour ceux qui ne le connaissent pas, ownCloud offre les mêmes possibilités à travers davfs2. Pour cela, respecter à la lettre les indications ci-dessus, en remplaçant la ligne du fichier fstab par une directive adaptée à la configuration de votre installation serveur. Par exemple :

https://serveur:port/owncloud/remote.php/webdav/   /home/votre_nom/votre_répertoire	davfs	rw,user,noauto	0	0

EDIT : il est possible d'avoir un problème de certificats avec cette manipulation.

Message d'erreur :

/sbin/mount.davfs: the server certificate does not match the server name /sbin/mount.davfs: the server certificate is not trusted

Pour tester votre connexion: utiliser la commande

 mount "votre point de montage" 

la commande ira chercher le certificat dans votre serveur. (ajoutez sudo en début de commande si seul root peut monter le dossier)

Pour télécharger votre certificat, utiliser la commande suivante :

openssl s_client -connect HOSTNAME:443 -showcerts </dev/null 2>/dev/null | openssl x509 -outform PEM > certificate.pem

remplacer HOSTNAME par l'adresse de votre serveur

copiez le fichier créé certificate.pem vers /etc/davfs2/certs/ Editez le fichier /etc/davfs2/davfs2.conf :

#trust_server_cert

trust_server_cert        /etc/davfs2/certs/my.selfsigned.cert.pem

vous indiquez que le certificat de votre serveur est placé là.

Chiffrer ses données

La rédaction des pages WebDAV / davfs2 est née d'une astuce expliquée ici. Elle concernait Ubuntu One + encFS, mais cela fonctionne de même avec WebDAV.

De plus en plus nos fichiers seront dans le nuage. Cela peut poser des problèmes ou des questions quant au respect de notre vie privée, d'autant plus que les hébergeurs ne sont pas toujours soumis à vos lois locales (CNIL et autres).

Ainsi, on connaît bien le modèle économique de Google par exemple, basé sur la valorisation publicitaire de nos données privées. Tous documents, courriels, etc… sont scrupuleusement explorés afin de mieux cibler la publicité que Google vend.

Les fichiers que vous pourriez mettre sur votre partage WebDAV sont alors une cible toute indiquée pour de telles pratiques. Si vous souhaitez éviter que l'hébergeur lise vos données privées, rien de plus simple sous Linux : encfs.
En effet, il est possible de combiner davfs et encfs sans problème. La seule précaution à prendre est que le dossier "en clair" ne doit pas se trouver dans l'arborescence de votre montage WebDAV, sinon le daemon WebDAV s'emmêle un peu les pinceaux !

Donc par exemple vous pouvez faire :

mkdir ~/En_Clair
encfs /home/$USER/Box.net/Crypt /home/$USER/En_Clair

Et vous utilisez votre répertoire En_Clair pour y déposer ou lire vos fichiers stockés sur le partage WebDAV. Les fichiers déposés dans En_Clair seront cryptés par encfs vers le répertoire Box.net/Crypt, et donc sauvegardés ainsi chiffrés sur votre Webdav.
L'hébergeur ne verra alors que des fichiers illisibles. Il n'a même pas le nom des fichiers pour faire des ciblages.

Pour plus de détails sur encfs c'est ici.

Renforcer la sécurité du chiffrement

En utilisant encfs sur le nuage, vous créez cependant un nouveau "problème": une partie de votre clé de déchiffrement est confiée à l'hébergeur du nuage (le fichier .encfs6.xml). Si celui-ci est mal intentionné, il pourrait tenter de déchiffrer, par force brute ou si une faille est découverte dans encfs (ce qui n'est pas le cas à ce jour).

Il est donc préférable de ne pas stocker ce fichier dans le répertoire de chiffrement, comme c'est le cas de façon standard avec encfs.
N'ayant plus cette partie de la clé de déchiffrement, l'utilisation de force brute par votre hébergeur devient impossible, même si votre mot de passe est très faible. Pour ce faire :

  • Déplacez le fichier .encfs6.xml par exemple dans le dossier Secret de votre Dossier Personnel.
  • Utilisez une fonction non-documentée (!) de encfs, pour lui indiquer où se trouve désormais ce fichier. Le montage se fait alors ainsi
    ENCFS6_CONFIG=/home/$USER/Secret/.encfs6.xml encfs /home/$USER/Box.net/Crypt /home/$USER/En_Clair

Le risque de déchiffrement par un tiers est ainsi largement réduit… mais un nouveau risque est créé !.. En effet, si vous utilisez un stockage en nuage, c'est souvent pour disposer d'une sauvegarde de ses données en cas de plantage total de l'ensemble des supports locaux. Or là, puisque vous gardez le fichier .encfs6.xml localement, si l'ensemble de vos disques est détruit (court-circuit, incendie, vol,…) vous ne pourrez plus déchiffrer les fichiers que vous avez mis sur votre nuage !
Pour remédier à cela, il faut également garder une copie de ce fichier à distance, mais afin d'éviter que ce fichier soit en clair, il va s'agir de le chiffrer.
Après avoir installé le paquet ccrypt saisissez dans un terminal:

cp /home/$USER/Secret/.encfs6.xml /tmp
cd /tmp
ccrypt -e .encfs6.xml

À la demande du mot de passe, mettez une "pass-phrase" forte, pour éviter les tentatives par force brute ou dictionnaire.

Vous disposez alors du fichier .encf6.xml.cpt que vous pouvez copier quelque part dans le nuage chez votre hébergeur… ou mieux encore, si vous avez plusieurs hébergeurs, vous pouvez le stocker chez un autre fournisseur.

Si vous voulez récupérer votre fichier .encfs6.xml original, l'opération inverse est :

ccrypt -d .encfs6.xml.cpt

Pour supprimer cette application, il suffit de supprimer son paquet. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leur dossier personnel sont toujours conservés.


Contribution : Zakhar

  • davfs2.txt
  • Dernière modification: Le 19/10/2023, 16:40
  • par krodelabestiole