web-dev-qa-db-fra.com

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

J'aimerais avoir l'idée d'avoir un dossier chiffré sur Ubuntu One. Il existe actuellement des méthodes sur Internet pour l’installer avec EncFS ou ecryptfs. J'aimerais utiliser ecryptfs - non pas à cause de la vitesse, car la vitesse n'a pas beaucoup d'importance si vous stockez vos données dans le cloud - mais comme je l'utilisais déjà, j'y suis déjà habitué et, par conséquent, je ne le fais pas. t vraiment aimer utiliser une autre solution aussi.

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

Alors, que pourrait-on faire? Bien sûr, utilisez plutôt EncFS. Ou déplacez le dossier Ubuntu One hors du dossier personnel de l'utilisateur.

D'autres idées ou suggestions?

9
spi

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

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

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

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

Solution 2 Je n'aime pas d'un côté car il n'y a pas de paquet apt disponible pour Ubuntu et, d'autre part, je ne souhaite pas que le dossier EncFS soit monté juste après la connexion. Si quelque chose échoue ou si le dossier est démonté à chaque 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 sous forme de paquet apt. Afuse monte automatiquement le dossier EncFS dès son accès et le remet en place après un certain temps d'inactivité.

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

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

Exemple:

~/Ubuntu\One/.encrypted

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

Exemple:

~/.Fuse

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

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

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

Système 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)

#!/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 après avoir ouvert une session

#!/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 lance le gestionnaire afuse pour monter le dossier EncFS sous ~/.Fuse dès qu'il est accessible. Le fichier afuse.handler lui-même vérifie comment .afuse-fstab monte le dossier. Le mot de passe EncFS est repris par U1.encfs.sh, aucune intervention de l'utilisateur n'est donc nécessaire (ce fichier étant stocké dans mon dossier personnel, il est crypté par ecryptfs, je ne vois donc pas de problème de sécurité majeur).

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

4
spi

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 qui y seraient ajoutés, puis déplacerait les fichiers cryptés de ~/my_secret_data/folder vers ~/Ubuntu One/folder. Si vous avez ajouté votre clé GPG à tous vos ordinateurs, vous pourrez ouvrir automatiquement les fichiers chiffrés, mais pas les autres.

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

0
Jo-Erlend Schinstad