utiliser ecryptfs pour Ubuntu One avec un répertoire personnel déjà chiffré

9

J'aimerais avoir l'idée d'avoir un dossier chiffré sur Ubuntu One. Il existe actuellement des instructions sur Internet pour le configurer avec EncFS ou ecryptfs. J'aimerais utiliser ecryptfs - pas à cause de la vitesse car la vitesse n'a pas vraiment d'importance si vous stockez vos données dans le cloud - mais comme j'ai déjà utilisé ecryptfs, je m'y suis habitué et donc ne le faites pas '' Je n'aime pas vraiment utiliser une autre solution également.

Le problème avec le dossier Ubuntu One est qu'il fait partie du dossier de départ de l'utilisateur. Dans de nombreux cas, avec les versions récentes d'Ubuntu, le dossier de départ de l'utilisateur est déjà chiffré avec ecryptfs et vous ne pouvez pas utiliser ecryptfs (pour un dossier Ubuntu One) par-dessus ecryptfs (du répertoire de départ de l'utilisateur).

Alors, que pourrait-on faire? Bien sûr, utilisez EncFS à la place. Ou déplacez le dossier Ubuntu One hors du dossier de départ de l'utilisateur.

D'autres idées ou suggestions?

spi
la source

Réponses:

4

Comme déjà indiqué, ecryptfs n'est pas une solution à mon problème car mon dossier personnel est déjà crypté par ecryptfs. Déplacer le dossier "Ubuntu One" hors de l'arborescence d'accueil n'est pas non plus une solution, car le reste du contenu "Ubuntu One" n'est plus chiffré.

J'ai décidé d'utiliser EncFS à la place. La configuration d'un dossier crypté est assez simple. Mais comment le monter automatiquement pour que les applications puissent l'utiliser pour stocker des fichiers de configuration? Il existe quelques solutions:

  1. pam_mount
  2. gnome-encfs
  3. autofs
  4. un fusible

Je n'aime pas l'idée 1 car je ne veux pas utiliser le même mot de passe pour EncFS que mon mot de passe de connexion.

Solution 2 Je n'aime pas d'une part car il n'y a pas de package apt disponible pour Ubuntu et d'autre part je ne veux pas que le dossier EncFS soit monté juste après la connexion. Si quelque chose échoue ou si le dossier est démonté tous les l'accès ultérieur échouera.

La solution 3 ne fonctionne tout simplement pas. J'utilise autofs depuis un certain temps pour monter des partages et des dossiers CIFS via sshfs mais EncFS n'est tout simplement pas pris en charge. J'ai joué avec plusieurs scripts pour monter EncFS par autofs mais cela est devenu trop complexe et sujet aux erreurs.

Donc, ce que j'utilise actuellement, c'est la solution 4. Afuse est disponible en tant que package apt. Afuse monte automatiquement le dossier EncFS dès que le dossier est accédé et le démonte à nouveau après un certain temps d'inactivité.

Voici les étapes rapides pour tout configurer (j'ajouterai peut-être quelques détails à l'avenir):

  • installer un fusible
  • créer le dossier "Ubuntu One" pour stocker le contenu crypté

Exemple:

~ / Ubuntu \ One / .encrypted

  • créer un dossier en tant que dossier supérieur à utiliser pour monter des dossiers dans

Exemple:

~ / .fuse

  • créer des scripts d'aide
  • créer une entrée de démarrage automatique dans Gnome pour lancer afuse

Le dossier EncFS non chiffré est monté sous ~ / .fuse. Dans mon cas, le dossier avec le contenu non chiffré est nommé U1Enc, donc toutes les données restent dans ~ / .fuse / U1Enc. Pour ma commodité, j'ai créé un lien de ~ / U1Enc vers ~ / .fuse / U1Enc pour y arriver plus facilement.

Les idées et scripts d'aide que j'ai trouvés sur plusieurs sites Web. Voici les liens:

Montage automatique des systèmes de fichiers FUSE
autofs: encfs sur sshfs

J'utilise les scripts suivants:

~ / .afuse-fstab

U1Enc  encfs --ondemand --idle=5 --extpass="/home/xxx/.creds/U1.encfs.sh" /home/xxx/Ubuntu\ One/.encrypted %m

~ / .creds / U1.encfs.sh (marqué comme exécutable et accessible uniquement par l'utilisateur lui-même)

#!/bin/sh
echo PASSWORD_FOR_ENCFS_IN_CLEARTEXT

~ / bin / afuse-handler.pl (marqué comme exécutable et avec ~ / bin dans $ PATH)

#!/usr/bin/perl -w

$fstab="$ENV{HOME}/.afuse-fstab";
$afusedir=$ARGV[0];
$afuse_mountpoint=$ARGV[1];

print "afusedir:$afusedir\n";
print "afuse_mountpoint:$afuse_mountpoint\n";

system("logger -t afuse 1:$ARGV[0] 2:$ARGV[1]");

open(FSTAB, $fstab ) or die("Can not open afuse-fstab at $fstab\n");
while( <FSTAB> ) {
        if( /^$afusedir/ ) {
                s/[^\s\/]+[\s]*//;
                s/%r/$afusedir/g;
                s/%m/$afuse_mountpoint/g;
                chomp;
                $cmd = $_;
                print "$cmd\n";
                system($_) == 0
                        or die "execution of FUSE filesystem failed!\n"
                             . "command:$cmd\n"
                             . "reason:$?\n";
        }
}

et enfin ~ / bin / afuse.start.sh (marqué à nouveau comme exécutable) que j'ai enregistré avec Gnome / System / Settings pour démarrer afuse après la connexion

#!/bin/sh
afuse -o mount_template="/home/xxx/bin/afuse-handler.pl %r %m" -o unmount_template="fusermount -u -z %m" ~/.fuse

Le dernier script lance afuse qui démarre le gestionnaire afuse pour monter le dossier EncFS sous ~ / .fuse dès qu'il est accédé. Le afuse.handler lui-même vérifie le .afuse-fstab comment monter le dossier. Le mot de passe EncFS est repris par U1.encfs.sh donc aucune intervention de l'utilisateur n'est nécessaire (comme ce fichier est stocké dans mon dossier personnel, il est crypté par ecryptfs, donc je ne vois pas de gros problème de sécurité).

Prenez soin des différentes versions d'EncFS. Sur Natty, la version 1.7.4 d'EncFS est actuellement installée. Cela ne fonctionne pas bien avec une ancienne version 1.6 sur Maverick. J'ai également dû mettre à jour EncFS sur Maverick vers 1.7.4 (en faisant cela en épinglant apt / preferences).

spi
la source
0

Une façon possible de le faire est d'utiliser deux répertoires différents:

~ / my_secret_data ne serait pas synchronisé, mais crypterait tous les fichiers ajoutés, puis déplacerait les fichiers cryptés du dossier ~ / my_secret_data / vers le dossier ~ / Ubuntu One /. Si vous avez ajouté votre clé GPG à tous vos ordinateurs, vous pourrez alors ouvrir automatiquement des fichiers cryptés, mais pas d'autres.

Ce n'est pas très élégant, je pense, mais ça devrait marcher.

Jo-Erlend Schinstad
la source
C'est ce que je fais avec EncFS. Les données cryptées sont stockées dans ~ / Ubuntu \ One / .encrypted et les données non cryptées dans ~ / .fuse / U1Enc. J'utilise simplement EncFS au lieu de GPG pour la commodité de l'utilisateur - les données sont cryptées / décryptées à la volée.
spi