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

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

Kann ich ext4unter Ubuntu 15.04 eine neue verschlüsselte Partition mit Kernel 4.1 erstellen?

Antwort1

Zunächst ein Haftungsausschluss: Ich habe dies nicht mit Ubuntu gemacht, sondern auf einer Maschine, auf der Debian „Stretch“ mit einem benutzerdefinierten Linux 4.2.3-Kernel installiert war, den ich aktiviert habe EXT4_FS_ENCRYPTION.

Die Anweisungen vonhmmmmmmmfunktioniert bei mir nicht genau so wie gepostet. Ein paar Dinge wurden ausgelassen (Befehlszeilenparameter und Schritte).

  • Aktualisieren Sie e2fsprogswie oben gezeigt
  • Generieren Sie Ihr zufälliges Salt. 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 auf dem Dateisystem zu verwenden, muss das Flag „encrypt“ im Superblock gesetzt sein. Dies ist nicht die Standardeinstellung, wenn das Ext4-Dateisystem erstellt wird. Setzen Sie die Option „encrypt“ mit dem Dienstprogramm „tune2fs“ von e2fsprogs 1.43 oder höher:

    sudo tune2fs -O encrypt /dev/sda4
    
  • Mounten Sie das Dateisystem oder mounten Sie es erneut, damit der Kernel über die Änderung informiert ist (vielleicht geschieht dies automatisch, aber ich habe dies nur auf einer separaten Partition getan, daher bin ich nicht sicher).

  • Erstellen Sie ein Verzeichnis im Dateisystem, das mit aktivierter Verschlüsselung gemountet ist:

    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 add_keykann mit dem folgenden Befehl der Schlüssel zur Entschlüsselung des Verzeichnisses und seiner Unterverzeichnisse 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 Sie im vorherigen Schritt verwendet haben. Sie müssen sich die Hex-Deskriptorzeichenfolge nicht merken.

  • Sie können es auch add_keydirekt verwenden. Dabei wird ein dateisystemspezifisches Salt verwendet (alle Ordner unter dieser Partition haben also 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.
    

Antwort2

Linux 4.1 verfügt über eine neue Ext4-Funktion zum Verschlüsseln von Verzeichnissen eines Dateisystems. Verschlüsselungsschlüssel werden im Schlüsselring gespeichert. Stellen Sie zunächst sicher, dass Sie Kerneloptionen aktiviert haben CONFIG_KEYSund CONFIG_EXT4_FS_ENCRYPTIONKernel 4.1 oder höher installiert haben.

Zunächst müssen Sie e2fsprogs auf mindestens Version 1.43 aktualisieren, die zum Zeitpunkt des Schreibens noch in Bearbeitung ist, daher müssen wir sie vomGit-Repository:

$ 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 zu arbeiten, 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 zunächst einen zufälligen Salt-Wert und speichern Sie ihn an einem sicheren Ort:

$ 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üsseltes Kauderwelsch angesehen. Seien Sie vorsichtig, wenn Sie alte Versionen von e2fsck auf Ihrem Dateisystem ausführen – es behandelt verschlüsselte Dateinamen als ungültig.

verwandte Informationen