Wie erstelle ich eine ext4-verschlüsselte Partition unter Ubuntu 15.04 mit dem neuen 4.1-Kernel?

Antworten:

9

Zunächst einmal ein Haftungsausschluss: Ich habe dies nicht mit Ubuntu gemacht, sondern auf einem Computer mit Debian "Stretch", der mit einem benutzerdefinierten Linux 4.2.3-Kernel installiert wurde, den ich aktiviert habe EXT4_FS_ENCRYPTION.

Die Anweisungen von kmeaw funktionieren bei mir nicht genau wie angegeben. Einige Dinge wurden ausgelassen (Befehlszeilenparameter und Schritte).

  • Update e2fsprogswie oben gezeigt
  • Generieren Sie Ihr zufälliges Salz. Ich habe Folgendes verwendet, um es an einem "sicheren Ort" aufzubewahren:

    head -c 16 /dev/urandom | xxd -p >~/tmp-salt.txt
    echo 0x`cat ~/tmp-salt.txt` >~/.cryptoSalt
    
  • Um die ext4-Verschlüsselung im Dateisystem verwenden zu können, muss im Superblock das Flag "encrypt" gesetzt sein. Dies ist nicht die Standardeinstellung, wenn das ext4-Dateisystem erstellt wird. Stellen Sie mit dem Dienstprogramm "tune2fs" von e2fsprogs 1.43 oder höher die Option "verschlüsseln" ein:

    sudo tune2fs -O encrypt /dev/sda4
    
  • Mounten Sie das Dateisystem oder stellen Sie es erneut bereit, damit der Kernel über die Änderung informiert ist (möglicherweise erfolgt dies automatisch, aber ich habe dies nur auf einer separaten Partition durchgeführt, daher bin ich mir nicht sicher.)

  • Erstellen Sie ein Verzeichnis im Dateisystem, das mit aktivierter Verschlüsselung bereitgestellt wird:

    sudo mkdir -p /secret/home/$USER
    sudo chown $USER:$USER /secret/home/$USER
    
  • Erstellen Sie den Schlüssel im Schlüsselbund und legen Sie damit die Richtlinie für das zu verschlüsselnde Verzeichnis fest (der sudoBefehl wird hier nicht benötigt):

    $ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
    Enter passphrase (echo disabled):
    Added key with descriptor [0132fed69f946c86]
    $ /usr/bin/e4crypt set_policy 0132fed69f946c86 /secret/home/$USER
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    
  • Nach jedem Neustart kann mit dem add_keyBefehl der Schlüssel für die Entschlüsselung des Verzeichnisses und seiner Nachkommen festgelegt werden:

    $ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
    Enter passphrase (echo disabled):
    Added key with descriptor [0132fed69f946c86]
    

    Geben Sie dasselbe Kennwort ein, das im vorherigen Schritt verwendet wurde, und Sie müssen sich nicht an die Deskriptor-Hex-Zeichenfolge erinnern.

  • Sie können auch add_keydirekt verwenden. Dies verwendet ein dateisystemspezifisches Salt (also haben alle Ordner unter dieser Partition das gleiche Salt)

    $ /usr/sbin/e4crypt add_key /secret/home/$USER
    Added key with descriptor [0132fed69f946c86]
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    
Daniel Glasser
quelle
Der Artikel im Arch-Wiki schlägt vor, den folgenden Blog-Beitrag zu lesen, dessen Autor ein Programm geschrieben hat, um einige der Schritte zu vereinfachen: blog.quarkslab.com/… Zum Zeitpunkt des Schreibens befindet sich 16.04 noch in der Entwicklung und verfügt über die beiden entsprechenden Kernel-Konfigurationen Optionen festgelegt, e2fsprogs befindet sich jedoch noch in Version 1.42.
LiveWireBT
Nun ... ich habe diese Anweisungen ausprobiert und mein Ordner ist blockiert ... auf einem cp .. /secret/home/$USER/.bekomme ich: «cp: kann keine reguläre Datei '/secret/home/alexis/test-top-secret-image.svg' erstellen: Erforderlicher Schlüssel nicht verfügbar » . Ich habe gerade Ihre Anweisungen befolgt, also hat sich wohl etwas geändert.
Alexis Wilke
In der zweiten Instanz von " /usr/bin/e4crypt" fehlt das "s" in "/ [s] bin".
Alexis Wilke
3

Linux 4.1 verfügt über eine neue Ext4-Funktion zum Verschlüsseln von Verzeichnissen eines Dateisystems. Verschlüsselungsschlüssel sind im Schlüsselbund gespeichert. Um loszulegen, stellen Sie sicher , haben Sie aktiviert CONFIG_KEYSund CONFIG_EXT4_FS_ENCRYPTIONKernel - Optionen und Sie haben Kernel 4.1 oder höher.

Zunächst müssen Sie e2fsprogs auf mindestens Version 1.43 aktualisieren, die zum Zeitpunkt des Schreibens noch WIP ist. Daher müssen wir sie aus dem Git-Repository abrufen :

$ git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git

Die e4crypt-Quelle hat einen relevanten Abschnitt in ihrem Quellcode deaktiviert. Aktivieren Sie ihn, indem Sie misc / e4crypt.c bearbeiten und diese beiden Zeilen in der Nähe von Zeile 714 entfernen:

    printf("arg %s\n", argv[optind]);
    exit(0);

Erstellen und installieren Sie jetzt neue e2fsprogs:

$ sudo apt-get install devscripts build-essential gettext texinfo pkg-config debhelper m4
$ debuild
$ sudo dpkg -i e2fsprogs_1.43-WIP_amd64.deb

Überprüfen Sie jetzt Ihre Version, es sollte 1.43-WIP sein:

# e2fsck -V
e2fsck 1.43-WIP (18-May-2015)
        Using EXT2FS Library version 1.43-WIP, 18-May-2015

Um mit Schlüsseln arbeiten zu können, müssen wir das keyutilsPaket installieren :

$ sudo apt-get install keyutils

Lassen Sie uns ein Verzeichnis erstellen, das wir verschlüsseln werden. Die Verschlüsselungsrichtlinie kann nur für leere Verzeichnisse festgelegt werden:

$ sudo mkdir -p /encrypted/dir

Generieren Sie zuerst einen zufälligen Salzwert und bewahren Sie ihn an einem sicheren Ort auf:

$ head -c 16 /dev/random | xxd -p
877282f53bd0adbbef92142fc4cac459

Generieren Sie nun einen neuen Schlüssel und fügen Sie ihn Ihrem Schlüsselbund hinzu: Dieser Schritt sollte jedes Mal wiederholt werden, wenn Sie Ihren Schlüsselbund leeren (Neustart).

$ sudo e4crypt -S 0x877282f53bd0adbbef92142fc4cac459
Enter passphrase (echo disabled): 
Added key with descriptor [f88747555a6115f5]

Jetzt kennen Sie einen Deskriptor für Ihren Schlüssel. Stellen Sie sicher, dass Sie Ihrem Schlüsselbund einen Schlüssel hinzugefügt haben:

$ keyctl show
Session Keyring
1021618178 --alswrv   1000  1000  keyring: _ses
 176349519 --alsw-v   1000  1000   \_ logon: ext4:f88747555a6115f5

Fast fertig. Legen Sie nun eine Verschlüsselungsrichtlinie für ein Verzeichnis fest:

$ e4crypt set_policy f88747555a6115f5 /encrypted/dir

Das ist alles. Wenn Sie versuchen, auf die Festplatte zuzugreifen, ohne einen Schlüssel zum Schlüsselbund hinzuzufügen, werden Dateinamen und deren Inhalt als verschlüsselter Kauderwelsch angesehen. Seien Sie vorsichtig, wenn Sie alte Versionen von e2fsck auf Ihrem Dateisystem ausführen - verschlüsselte Dateinamen werden als ungültig behandelt.

kmeaw
quelle
Diese Antwort hatte schwerwiegende Formatierungsprobleme. Ich habe versucht, mich so weit wie möglich zu verbessern, aber es macht für mich keinen Sinn, warum man offensichtlich versuchen würde, Markdown-Formatierung zu verwenden, komplexe Befehle zu verarbeiten und gleichzeitig eine ähnliche Bearbeitung im Arch-Wiki durchzuführen, aber dann schauen beim Müll in der Vorschau gerendert und beschließen, es so zu lassen, wie es ist. Es gibt keine zufriedenstellende Erklärung oder weitere Referenz, warum die Linien entfernt werden müssen. Außerdem wird empfohlen, debuild so zu verwenden, wie es nicht beabsichtigt ist (bei einem nicht debianisierten Paket gibt es ein experimentelles Paket in Debian) und es funktioniert nicht. -1
LiveWireBT