Verwenden Sie ecryptfs für Ubuntu One mit einem bereits verschlüsselten Home-Verzeichnis

9

Ich hätte gerne die Idee, einen verschlüsselten Ordner unter Ubuntu One zu haben. Im Internet gibt es aktuelle Anleitungen zum Einrichten mit EncFS oder ecryptfs. Ich würde gerne ecryptfs verwenden - nicht wegen der Geschwindigkeit, da Geschwindigkeit nicht wirklich wichtig ist, wenn Sie Ihre Daten in der Cloud speichern - aber da ich ecryptfs bereits verwendet habe, habe ich mich daran gewöhnt und daher nicht. Ich mag es auch nicht, eine andere Lösung zu verwenden.

Das Problem mit dem Ubuntu One-Ordner ist, dass er Teil des Home-Ordners des Benutzers ist. In neueren Ubuntu-Versionen wird der Home-Ordner des Benutzers in vielen Fällen bereits mit ecryptfs verschlüsselt, und Sie können ecryptfs (für einen Ubuntu One-Ordner) nicht zusätzlich zu ecryptfs (im Home-Verzeichnis des Benutzers) verwenden.

Was könnte man also tun? Verwenden Sie stattdessen natürlich EncFS. Oder verschieben Sie den Ubuntu One-Ordner aus dem Home-Ordner des Benutzers.

Irgendwelche anderen Ideen oder Vorschläge?

spi
quelle

Antworten:

4

Wie bereits erwähnt, ist ecryptfs keine Lösung für mein Problem, da mein Home-Ordner bereits von ecryptfs verschlüsselt ist. Das Verschieben des Ordners "Ubuntu One" aus dem Home-Baum ist ebenfalls keine Lösung, da der Rest des Inhalts von "Ubuntu One" nicht mehr verschlüsselt ist.

Ich habe mich stattdessen für EncFS entschieden. Das Einrichten eines verschlüsselten Ordners ist ziemlich einfach. Aber wie kann es automatisch gemountet werden, damit Anwendungen damit Konfigurationsdateien speichern können? Es gibt einige Lösungen:

  1. pam_mount
  2. gnome-encfs
  3. autofs
  4. afuse

Ich mag Idee 1 nicht, weil ich nicht dasselbe Passwort für EncFS verwenden möchte wie mein Login-Passwort.

Lösung 2 Ich mag es einerseits nicht, weil für Ubuntu kein passendes Paket verfügbar ist, und andererseits möchte ich nicht, dass der EncFS-Ordner erst direkt nach dem Anmelden bereitgestellt wird. Wenn etwas fehlschlägt oder der Ordner jedes Mal nicht bereitgestellt wird Der nachfolgende Zugriff schlägt fehl.

Lösung 3 funktioniert einfach nicht. Ich verwende seit einiger Zeit Autofs, um CIFS-Freigaben und -Ordner über sshfs bereitzustellen, aber EncFS wird einfach nicht unterstützt. Ich habe mit mehreren Skripten herumgespielt, um EncFS durch Autofs zu mounten, aber das wurde zu komplex und fehleranfällig.

Was ich derzeit verwende, ist Lösung 4. Afuse ist als passendes Paket verfügbar. Afuse stellt den EncFS-Ordner automatisch bereit, sobald auf den Ordner zugegriffen wird, und hebt ihn nach einiger Leerlaufzeit wieder auf.

Hier sind die schnellen Schritte zum Einrichten (möglicherweise füge ich in Zukunft einige Details hinzu):

  • Installieren Sie eine Sicherung
  • Erstellen Sie den Ordner "Ubuntu One", um den verschlüsselten Inhalt zu speichern

Beispiel:

~ / Ubuntu \ One / .encrypted

  • Erstellen Sie einen Ordner als obersten Ordner, in dem Sie Ordner einbinden können

Beispiel:

~ / .fuse

  • Erstellen Sie einige Hilfsskripte
  • Erstellen Sie einen Autostart-Eintrag in Gnome, um afuse zu starten

Der unverschlüsselte EncFS-Ordner wird unter ~ / .fuse gemountet. In meinem Fall heißt der Ordner mit dem unverschlüsselten Inhalt U1Enc, daher bleiben alle Daten in ~ / .fuse / U1Enc. Zur Vereinfachung habe ich einen Link von ~ / U1Enc zu ~ / .fuse / U1Enc erstellt, um leichter dorthin zu gelangen.

Die Ideen und Hilfsskripte, die ich auf mehreren Websites gefunden habe. Hier kommen die Links:

Automatisches Bereitstellen von autofs für FUSE-Dateisysteme
: encfs über sshfs

Ich benutze die folgenden Skripte:

~ / .afuse-fstab

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

~ / .creds / U1.encfs.sh (als ausführbar markiert und nur für den Benutzer selbst zugänglich)

#!/bin/sh
echo PASSWORD_FOR_ENCFS_IN_CLEARTEXT

~ / bin / afuse-handler.pl (als ausführbar markiert und mit ~ / bin in $ 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";
        }
}

und schließlich ~ / bin / afuse.start.sh (erneut als ausführbar markiert), das ich bei Gnome / System / Settings registriert habe, um afuse nach dem Anmelden zu starten

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

Das letzte Skript startet afuse, wodurch der afuse-Handler gestartet wird, um den EncFS-Ordner unter ~ / .fuse zu mounten, sobald auf ihn zugegriffen wird. Der afuse.handler selbst überprüft die .afuse-fstab, wie der Ordner bereitgestellt wird. Das EncFS-Kennwort wird von U1.encfs.sh zurückgegeben, sodass kein Benutzereingriff erforderlich ist (da diese Datei in meinem Basisordner gespeichert ist, wird sie von ecryptfs verschlüsselt, sodass ich dort kein großes Sicherheitsproblem sehe).

Achten Sie auf verschiedene EncFS-Versionen. Auf Natty wird derzeit EncFS Version 1.7.4 installiert. Das funktioniert nicht gut mit einer älteren 1.6-Version auf Maverick. Ich musste EncFS auf Maverick ebenfalls auf 1.7.4 aktualisieren (dies durch Anheften von apt / settings).

spi
quelle
0

Eine Möglichkeit, dies zu tun, besteht darin, zwei verschiedene Verzeichnisse zu verwenden:

~ / my_secret_data würde nicht synchronisiert, sondern alle hinzugefügten Dateien verschlüsseln und dann die verschlüsselten Dateien aus dem Ordner ~ / my_secret_data / in den Ordner ~ / Ubuntu One / verschieben. Wenn Sie Ihren GPG-Schlüssel allen Ihren Computern hinzugefügt haben, können Sie verschlüsselte Dateien automatisch öffnen, andere jedoch nicht.

Es ist nicht sehr elegant, denke ich, aber es sollte funktionieren.

Jo-Erlend Schinstad
quelle
Das mache ich mit EncFS. Die verschlüsselten Daten werden in ~ / Ubuntu \ One / .encrypted und die unverschlüsselten in ~ / .fuse / U1Enc gespeichert. Ich verwende nur EncFS anstelle von GPG, um den Benutzern die Arbeit zu erleichtern - die Daten werden im Handumdrehen verschlüsselt / entschlüsselt.
Spi