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.
Il le fait surtout avec des performances largement supérieures. Il n'y a donc plus trop de raison d'utiliser davfs2.
Installation
Utilisation
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.
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.
- 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.
- Créez un répertoire dans votre Dossier Personnel pour monter le partage non privilégié :
mkdir $HOME/Box.net
- É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
- Ajoutez-vous au groupe davfs2
sudo adduser $USER davfs2
- 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
- Dans le fichier $HOME/.davfs2/secrets, rajouter
/home/votre_nom/Box.net identifiant_webdav mot_de_passe_webdav
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.
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.
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à.
Astuce : Nuage et vie privée
Chiffrer ses données
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
Désinstallation
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.