Wie erstelle ich ein verschlüsseltes Dateisystem in einer Datei?

16

Ich habe dieses interessante Tutorial auf Flossstuff Blog gefunden .

Es wird erklärt, wie Sie eine leere Datei erstellen, als ext4 formatieren und als Gerät einbinden.

Ich würde gerne wissen, ob es als verschlüsseltes ext4-Dateisystem erstellt werden kann.

Ich habe versucht, das bereits erstellte Dateisystem mit palimpsest (dem Festplatten-Dienstprogramm im System-Menü) zu formatieren, aber es funktioniert nicht, da es das verwendete Dateisystem erkennt.

Wenn ich versuche, das Dateisystem zu deaktivieren, funktioniert dies auch nicht, da das Gerät nicht erkannt wird (da es sich nicht um ein echtes Gerät wie eine Festplatte oder ein USB-Laufwerk handelt).

Meine Frage ist also, gibt es eine Option, um das Dateisystem von Anfang an verschlüsselt zu erstellen? Ich habe diese Befehle verwendet:

Erstellen Sie eine leere Datei mit einer Größe von 200 MB:

dd if=/dev/zero of=/path/to/file bs=1M count=200

Mach es ext4:

mkfs -t ext4 file

Hänge es in einen Ordner in meinem Haus:

sudo mount -o loop file /path/to/mount_point

Gibt es eine Möglichkeit, mit dem mkfsBefehl ein verschlüsseltes ext4-Dateisystem zu erstellen, das nach einem Entschlüsselungskennwort fragt?

Ich plane, dies als eine Möglichkeit zum Verschlüsseln von Dateien in Dropbox zu verwenden.

animaletdesequia
quelle
Wenn Sie beim Sichern von Dateien eine ordnungsgemäße Verschlüsselung wünschen, sollten Sie stattdessen SpiderOak in Betracht ziehen. Mehr Sicherheit und weniger Aufwand.
Landroni

Antworten:

8

Sie können cryptmountein Dateisystem auch dann verschlüsseln, wenn sich das Dateisystem in einer Datei befindet.

Die cryptmountHandbuchseite enthält eine sehr einfache und detaillierte Erklärung, die ich hier berichte (modifiziere), und erwähnt ausdrücklich ein dateibasiertes Dateisystem.

  • Schritt 1
    Fügen Sie einen Eintrag /etc/cryptmount/cmtabwie folgt hinzu:

    mycrypt {
        dev=/media/data/mycrypt dir=/home/enzotib/mycrypt
        fstype=ext4 mountoptions=defaults cipher=twofish
        keyfile=/etc/cryptmount/mycrypt.key
        keyformat=builtin
    }
    

    Wo /media/data/mycryptist die Unterstützungsdatei erstellt von ddund /home/enzotib/mycryptist der gewünschte Einhängepunkt.

  • Schritt 2
    Generieren Sie einen geheimen Entschlüsselungsschlüssel

    sudo cryptmount --generate-key 32 mycrypt
    
  • Schritt 3
    Führen Sie den folgenden Befehl aus

    sudo cryptmount --prepare mycrypt
    

    Sie werden dann nach dem Kennwort gefragt, das Sie beim Einrichten des Schlüssels verwendet haben

  • Schritt 4
    Erstellen Sie das Dateisystem

    sudo mkfs.ext4 /dev/mapper/mycrypt
    
  • Schritt 5
    Ausführen

    sudo cryptmount --release mycrypt
    
  • Schritt 6
    Hängen Sie nun das Dateisystem ein

    mkdir /home/enzotib/mycrypt
    cryptmount -m mycrypt
    

    dann hängen Sie es aus

    cryptmount -u mycrypt
    

Auch wenn Sie ein Verzeichnis encfsverschlüsseln müssen , kann es sich lohnen, dies zu berücksichtigen.

Enzotib
quelle
Vielen Dank für Ihre Antwort, ich habe das Dateisystem erstellt, verschlüsselt und in Dropbox hochgeladen. Später werde ich versuchen, diese Datei auf dem anderen PC zu mounten. Nur eine Sache, geht das ohne sudo? Wenn ich die Datei und das Dateisystem bei mir zu Hause behalten möchte (nicht auf Datenträgern wie USB oder Festplatte), sind die Befehle ohne sudo dieselben oder benötigt cryptmount immer root-Rechte?
animaletdesequia
1
@darent: Es scheint, dass der Befehl nur im Dateisystem-Setup Root-Rechte benötigt. Das Mounten / Unmounten ist jedoch eine Benutzeraktion, vorausgesetzt, die Image-Datei und der Mountpoint gehören dem Benutzer. Um dieselbe Image-Datei auf einem anderen Computer einzurichten, sollten Sie /etc/cryptmount/mycrypt.keyden --generate-keySchritt, kopieren und überspringen .
Enzotib
Ich erhalte diese Fehlermeldung im letzten Schritt: $ sudo cryptmount -m encriptat Geben Sie das Kennwort für das Ziel "encriptat" ein: e2fsck 1.41.14 (22. Dezember 2010) fsck.ext4: Keine Gültigkeitsprüfung. .. fsck.ext4: Schlechte magische Zahl in Superblock und Intentar obrir / dev / mapper / encriptat
animaletdesequia
1
@darent: Haben Sie das Dateisystem wie in Schritt 4 gezeigt erstellt? Haben Sie konsequent den Namen "mycrypt" durch "encriptat" ersetzt?
Enzotib
Entschuldigung, der Fehler war, weil ich anstelle von (sudo mkfs.ext4 / dev / mapper / mycrypt) (sudo mkfs.ext4 mycript) geschrieben habe. Ich habe direkt in die Datei gepostet, nicht auf das Gerät. Jetzt funktioniert es perfekt. Und entschuldige das Format dieser Nachricht. Weiß nicht, warum ich die Zeilen nicht trennen kann. (Wenn ich die Eingabetaste drücke, wird der Kommentar veröffentlicht, anstatt eine neue Zeile zu erstellen. Vielleicht ein Firefox-Fehler.) Prost! BEARBEITEN: Jetzt habe ich Ihre Antwort gelesen, der Name des Enkriptats war kein Problem (habe nur Ihren Beitrag angepasst und die Dateien mit katalanischen Namen versehen, aber alles ist konsistent). Everithing funktioniert jetzt in Ordnung, danke noch einmal :)
animaletdesequia
7

Befolgen Sie die nächsten Schritte, um eine verschlüsselte Datei mit dem Dateisystem darin zu erstellen:

1. Der schnellste Weg, eine Datei mit einer bestimmten Größe zu erstellen, ist:

fallocate -l 128M /path/to/file

2. Erstellen Sie mit den Tools von dm-crypt eine LUKS- Partition (Linux Unified Key Setup) in der Datei :

cryptsetup -y luksFormat /path/to/file

Sie können überprüfen, ob die Datei ein verschlüsselter Container ist:

/path/to/file: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 7e2af5a1-3fab-43ea-a073-3b9cc6073f00

3. Öffnen Sie den verschlüsselten Container:

cryptsetup luksOpen /path/to/file data

dataist der Name des Device-Mapper-Volumes. Sie können einen anderen Namen wählen.

Dadurch wird das LUKS-Gerät geöffnet und einem von uns angegebenen Namen zugeordnet. In unserem Fall wird eine Datei unter erstellt /dev/mapper/data.

4.ext4 Dateisystem auf diesem Gerät erstellen :

mkfs.ext4 /dev/mapper/data

5. Erstellen Sie dann einen Einhängepunkt:

mkdir /path/to/mount

6. Und montiere das Gerät dort:

mount /dev/mapper/data /path/to/mount

7. So hängen Sie das Dateisystem ab und schließen das LUKS-Gerät:

umount /path/to/mount
cryptsetup luksClose data

Jetzt haben Sie den LUKS-Container mit dem darin enthaltenen ext4-Dateisystem verschlüsselt. Wenn Sie es verwenden möchten, wiederholen Sie einfach die Schritte 3 und 6. Wenn Sie fertig sind, rufen Sie Schritt 7 auf.

Dieser Artikel war sehr hilfreich für mich.

Auch eines Tages wird Ihr Container keinen Platz mehr haben. Angenommen, die Größe der verschlüsselten Container-Datei beträgt 128 MB, und wir möchten die Größe auf 512 MB erhöhen. Führen Sie die folgenden Schritte aus, um die Kapazität zu erhöhen :

1. Hängen Sie das LUKS-Gerät aus und schließen Sie es (siehe Schritt 7 in der obigen Liste).

2. Erhöhen Sie die Dateigröße des Containers:

 dd if=/dev/zero of=/path/to/file bs=384M count=1 oflag=append conv=notrunc

3. Öffnen Sie das LUKS-Gerät.

cryptsetup luksOpen /path/to/file data

4. Passen Sie die Größe des LUKS-Geräts an die Größe der Container-Datei an. Aus der Manpage:

Wenn --size (in Sektoren) nicht angegeben ist, wird die Größe des zugrunde liegenden Blockgeräts verwendet.

Sie können also einfach:

cryptsetup resize data

5. Ändern Sie dann die Größe des ext4-Dateisystems:

e2fsck -f /dev/mapper/data
resize2fs /dev/mapper/data

6. Nun können Sie das Dateisystem wieder einhängen:

mount /dev/mapper/data /path/to/mount
mixel
quelle
1
Ich denke, diese Antwort ist die beste und aktuellste Antwort. Es sollte die richtige Antwort gewählt werden!
Jurten