Was ist eine gute Lösung, um einige Dateien in Unix zu verschlüsseln? [geschlossen]

44

Ich suche nach einem Dienstprogramm zum Verschlüsseln bestimmter Verzeichnisse unter Linux. Ich suche keine vollständigen Festplattenverschlüsselungsdienste, sondern nur ein paar Verzeichnisse, um Dateien in der Cloud zu speichern. Nach dem Abrufen sollte ich sie entschlüsseln müssen, bevor auf sie zugegriffen werden kann. Suchen Sie dies für ein paar Verzeichnisse (ein paar hundert GB groß). Irgendwelche Ideen? Vorzugsweise CLI-basiert.

Peter
quelle

Antworten:

51

Ich benutze nur GnuPG für diese Aufgabe. Die Ordner werden zuerst in ein TAR-GZ-Archiv gepackt:

tar czf files.tar.gz /path/to/my/files

Falls noch nicht geschehen, müssen Sie zuerst ein privates / öffentliches GPG-Schlüsselpaar erstellen:

gpg --gen-key

Folge den Anweisungen. Die Standardeinstellungen sollten für einen ersten Test ausreichen. So etwas wird erscheinen:

gpg (GnuPG) 2.0.18; Copyright (C) 2011 der Free Software Foundation, Inc.
Dies ist freie Software: Sie können sie ändern und weitergeben.
Es wird keine Garantie übernommen, soweit dies gesetzlich zulässig ist.

Bitte wählen Sie aus, welche Art von Schlüssel Sie möchten:
   (1) RSA und RSA (Standard)
   (2) DSA und Elgamal
   (3) DSA (nur Zeichen)
   (4) RSA (nur Zeichen)
Deine Auswahl? 1
RSA-Schlüssel können zwischen 1024 und 4096 Bit lang sein.
Welche Schlüsselgröße möchten Sie? (2048) 4096
Die angeforderte Schlüsselgröße beträgt 4096 Bit
Bitte geben Sie an, wie lange der Schlüssel gültig sein soll.
         0 = Schlüssel läuft nicht ab
        = Schlüssel läuft in n Tagen ab
      w = Schlüssel läuft in n Wochen ab
      m = Schlüssel läuft in n Monaten ab
      y = Schlüssel läuft in n Jahren ab
Schlüssel ist gültig für? (0)
Schlüssel läuft überhaupt nicht ab
Ist das richtig? (j / n) j

GnuPG muss eine Benutzer-ID erstellen, um Ihren Schlüssel zu identifizieren.

Echter Name: File Encryption Key
E-Mail-Adresse: [email protected]
Kommentar: Dateiverschlüsselungsschlüssel
Sie haben diese USER-ID ausgewählt:
    "File Encryption Key (Dateiverschlüsselungsschlüssel)"

Ändern Sie (N) ame, (C) omment, (E) mail oder (O) kay / (Q) uit? O

Sie werden nach einer Passphrase für den Schlüssel gefragt. Es wird dringend empfohlen, eine starke zu verwenden. Es wird ohnehin nicht für die Verschlüsselung von Dateien benötigt, machen Sie sich also später keine Gedanken über die Stapelverwendung.

Wenn alles erledigt ist, erscheint so etwas auf Ihrem Bildschirm:

Wir müssen viele zufällige Bytes erzeugen. Es ist eine gute Idee, aufzutreten
eine andere Aktion (tippe auf der Tastatur, bewege die Maus, benutze die
Festplatten) während der ersten Generation; Dies gibt die Zufallszahl
Generator eine bessere Chance, genug Entropie zu gewinnen.
Wir müssen viele zufällige Bytes erzeugen. Es ist eine gute Idee, aufzutreten
eine andere Aktion (tippe auf der Tastatur, bewege die Maus, benutze die
Festplatten) während der ersten Generation; Dies gibt die Zufallszahl
Generator eine bessere Chance, genug Entropie zu gewinnen.
gpg: Schlüssel FE53C811 als letztendlich vertrauenswürdig markiert
öffentlicher und geheimer Schlüssel erstellt und signiert.

gpg: prüfe die trustdb
gpg: 3 marginale (s) erforderlich, 1 komplette (s) erforderlich, PGP-Vertrauensmodell
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
pub ***** / ******** 2013-03-19
      Tastenfingerabdruck = **** **** **** **** **** **** **** **** ****
uid File Encryption Key (Dateiverschlüsselungsschlüssel) 
sub ***** / ******** 2013-03-19

Jetzt möchten Sie möglicherweise die öffentliche Schlüsseldatei exportieren, um sie auf andere Computer zu importieren:

gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key'

Dies File Encryption Keyist der Name, den ich während der Schlüsselerstellung eingegeben habe.

Jetzt benutze ich GnuPG für das neu erstellte Archiv:

gpg --encrypt --recipient 'File Encryption Key' files.tar.gz

Sie haben jetzt eine files.tar.gz.gpgDatei, die verschlüsselt ist.

Sie können es mit dem folgenden Befehl entschlüsseln (Sie werden nach Ihrer Passphrase gefragt):

gpg --output files.tar.gz --decrypt files.tar.gz.gpg

Das ist die ganze Magie.

Stellen Sie sicher, dass Sie Ihren Schlüssel sichern! Und vergiss niemals deine Passphrase! Wenn nicht gesichert oder vergessen, haben Sie Gigabyte an Datenmüll!

Sichern Sie Ihren privaten Schlüssel mit diesem Befehl:

gpg --armor --output file-enc-privkey.asc --export-secret-keys 'File Encryption Key'

Vorteile

  • Keiner der Verschlüsseler muss vertrauliche Informationen über die Verschlüsselung kennen - die Verschlüsselung erfolgt mit dem öffentlichen Schlüssel. (Sie können das Schlüsselpaar auf Ihrer lokalen Workstation erstellen und nur den öffentlichen Schlüssel auf Ihre Server übertragen.)
  • In Skriptdateien oder Jobs werden keine Kennwörter angezeigt
  • Sie können auf jedem beliebigen System so viele Verschlüsseler verwenden, wie Sie möchten
  • Wenn Sie Ihren privaten Schlüssel und die Passphrase geheim halten, ist alles in Ordnung und sehr, sehr schwer zu kompromittieren
  • Sie können mit dem privaten Schlüssel auf Unix-, Windows- und Linux-Plattformen mithilfe der spezifischen PGP / GPG-Implementierung entschlüsseln
  • Keine besonderen Berechtigungen für das Ver- und Entschlüsseln von Systemen, keine Bereitstellung, keine Container, keine speziellen Dateisysteme
zero0
quelle
1
Beachten Sie, dass die Ausführung tarohne den zSwitch je nach Daten möglicherweise schneller ist, um eine Komprimierung zu vermeiden.
l0b0
28

Meinerseits verwende ich hauptsächlich zwei Methoden:

Erste Methode: tar und openssl

Tar das Verzeichnis

tar cvf backup.tar /path/to/folder

Sie können den Schalter [v] aus dem Befehl tar entfernen, um den ausführlichen Modus zu deaktivieren.

Verschlüsseln

openssl aes-128-cbc -salt -in backup.tar -out backup.tar.aes -k yourpassword

Sie können aes-128-cbc in eine beliebige andere Verschlüsselungsmethode ändern, die openssl unterstützt (openssl --help).

Entschlüsseln

openssl aes-128-cbc -d -salt -in backup.tar.aes -out backup.restored.tar

Es wird nach dem Passwort gefragt.

Zweite Methode: verschlüsselter Reißverschluss

zip -r -0 -e backup.zip /path/to/folder

Es wird nach dem Passwort gefragt.

  • -r bedeutet rekursiv (ganzer Ordnerbaum)
  • -0 bedeutet nur speichern (nicht komprimieren, schneller)
  • -e bedeutet Archiv verschlüsseln

Ein Vorteil davon: Es funktioniert besser mit Windows-basierten Systemen.

Julien R.
quelle
3
Das Eingeben eines Kennworts in der Befehlszeile ist keine gute Idee. Das Passwort bleibt im Shell-Verlauf.
pbies
1
Es sollte beachtet werden, dass die zipVerschlüsselung angeblich knackbar ist.
Acumenus
22

Wenn Sie Ihre Dateien nicht mit einem öffentlichen / privaten Schlüsselpaar verschlüsseln möchten und stattdessen nur symmetrische Verschlüsselung mit einer Passphrase verwenden möchten, verwenden Sie den folgenden Befehl:

gpg --symmetric --cipher-algo aes256 files.tar.gz

Sie werden nach Ihrem Passwort gefragt. Danach wird eine verschlüsselte Datei mit dem Namen files.tar.gz.gpgerstellt.

Verwenden Sie zum Entschlüsseln den Befehl

gpg --decrypt files.tar.gz.gpg > files.tar.gz
Chiborg
quelle
2

Sie können TrueCrypt sehr einfache und schöne Lösung verwenden. Das Paket wird nur für die Konsole verwendet. Es ist sehr einfach zu erlernen und anzuwenden. http://www.truecrypt.org

B14D3
quelle
4
Ab dem 28. Mai 2014 ist TrueCrypt nicht mehr verfügbar. Siehe en.wikipedia.org/wiki/TrueCrypt
Bryce
2

Zu diesem Zweck würde ich FUSE-Verschlüsselung (wie encfs ) vorschlagen - für kleinere Daten würde ich gpg verwenden.

Es ist im Benutzerbereich implementiert, so dass Sie keine besonderen Berechtigungen benötigen.

Maciej Piechotka
quelle
1

Es gibt einige Linux-Dateisysteme, die für die Datenverschlüsselung vorgesehen sind. Haben Sie schon über LUX nachgedacht ?

Wächter
quelle
1

Eine sehr einfache Methode zum Verschlüsseln einer Datei ist:

gpg -c filename.ext

Sie werden zweimal nach einer Passphrase gefragt, und gpg wird erstellt filename.ext.gpg. Laden Sie die verschlüsselte Datei in Ihren Cloud-Dienst hoch. So stellen Sie die Datei wieder her:

gpg filename.ext.gpg

Welches wird neu erstellen filename.ext. Beachten Sie, dass die unverschlüsselten Dateien nicht sicher sind und die relevanten Daten auch nach dem Löschen auf Ihrem Speichermedium verbleiben. Nur der GPG-Container ist sicher. EncFS ist eine praktischere Alternative für die cloudbasierte Verschlüsselung auf Dateiebene.

Bryce
quelle