Jak utworzyć zaszyfrowaną partycję ext4 na Ubuntu 15.04 z nowym jądrem 4.1?

Odpowiedzi:

9

Po pierwsze: nie zrobiłem tego z Ubuntu, ale na maszynie z zainstalowanym Debianem „Stretch” przy użyciu niestandardowego jądra Linux 4.2.3, na którym włączyłem EXT4_FS_ENCRYPTION.

Instrukcje podane przez kmeaw nie działają dla mnie dokładnie tak, jak zostały opublikowane. Kilka rzeczy zostało pominiętych (parametry i kroki wiersza poleceń).

  • Zaktualizuj e2fsprogsjak pokazano powyżej
  • Wygeneruj losową sól. Użyłem następujących do przechowywania go w „bezpiecznym miejscu”:

    head -c 16 /dev/urandom | xxd -p >~/tmp-salt.txt
    echo 0x`cat ~/tmp-salt.txt` >~/.cryptoSalt
    
  • Aby użyć szyfrowania ext4 w systemie plików, flaga „szyfruj” musi być ustawiona w superbloku. Nie jest to ustawienie domyślne podczas tworzenia systemu plików ext4. Korzystając z narzędzia „tune2fs” z e2fsprogs 1.43 lub nowszego, ustaw opcję „szyfruj”:

    sudo tune2fs -O encrypt /dev/sda4
    
  • Zamontuj lub ponownie podłącz system plików, aby jądro wiedziało o zmianie (może jest to automatyczne, ale zrobiłem to tylko na osobnej partycji, więc nie jestem pewien).

  • Utwórz katalog w systemie plików, który jest podłączony z włączonym szyfrowaniem:

    sudo mkdir -p /secret/home/$USER
    sudo chown $USER:$USER /secret/home/$USER
    
  • Utwórz klucz w breloku i użyj go, aby ustawić zasady szyfrowania katalogu (tutaj sudopolecenie nie jest potrzebne):

    $ /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.
    
  • Po każdym ponownym uruchomieniu add_keymożna użyć polecenia ustawić klucz do odszyfrowania katalogu i jego potomków:

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

    Wpisz to samo hasło, co w poprzednim kroku, i nie musisz pamiętać ciągu szesnastkowego deskryptora.

  • Możesz także użyć add_keybezpośrednio. Spowoduje to użycie soli specyficznej dla systemu plików (więc wszystkie foldery na tej partycji będą miały tę samą sól)

    $ /usr/sbin/e4crypt add_key /secret/home/$USER
    Added key with descriptor [0132fed69f946c86]
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    
Daniel Glasser
źródło
Artykuł w Arch wiki sugeruje przeczytanie następującego posta na blogu, którego autor napisał program upraszczający niektóre kroki: blog.quarkslab.com/... W chwili pisania 16.04 jest wciąż w fazie rozwoju i ma dwie odpowiednie konfiguracje jądra zestaw opcji, e2fsprogs wciąż jest w wersji 1.42.
LiveWireBT
Cóż ... Wypróbowałem te instrukcje, a mój folder jest zablokowany ... a cp .. /secret/home/$USER/.otrzymuję: «cp: nie można utworzyć zwykłego pliku '/secret/home/alexis/test-top-secret-image.svg': Wymagany klucz nie dostępne » . Po prostu zastosowałem się do twoich instrukcji, więc chyba coś się zmieniło.
Alexis Wilke,
W drugim wystąpieniu „ /usr/bin/e4crypt” brakuje „s” w „/ [s] bin”.
Alexis Wilke,
3

Linux 4.1 jest wyposażony w nową funkcję Ext4 do szyfrowania katalogów systemu plików. Klucze szyfrujące są przechowywane w breloku. Aby zacząć, upewnij się, że masz włączone CONFIG_KEYSi CONFIG_EXT4_FS_ENCRYPTIONopcje jądra i masz kernel 4.1 lub wyższej.

Przede wszystkim musisz zaktualizować e2fsprogs co najmniej do wersji 1.43, która jest jeszcze WIP w momencie pisania, więc musimy pobrać go z repozytorium git :

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

Źródło e4crypt wyłączyło odpowiednią sekcję w swoim kodzie źródłowym, włącz je, edytując misc / e4crypt.c i usuwając te dwie linie w pobliżu linii 714:

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

Teraz skompiluj i zainstaluj nowe e2fsprogs:

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

Sprawdź swoją wersję teraz, powinna wynosić 1,43-WIP:

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

Aby pracować z kluczami, musimy zainstalować keyutilspakiet:

$ sudo apt-get install keyutils

Stwórzmy katalog, który będziemy szyfrować. Zasady szyfrowania można ustawić tylko w pustych katalogach:

$ sudo mkdir -p /encrypted/dir

Najpierw wygeneruj losową wartość soli i przechowuj ją w bezpiecznym miejscu:

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

Teraz wygeneruj i dodaj nowy klucz do swojego breloka: ten krok powinien być powtarzany za każdym razem, gdy opróżniasz brelok (restart)

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

Teraz znasz deskryptor swojego klucza. Upewnij się, że dodałeś klucz do pęku kluczy:

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

Prawie skończone. Teraz ustaw zasady szyfrowania dla katalogu:

$ e4crypt set_policy f88747555a6115f5 /encrypted/dir

To wszystko. Jeśli spróbujesz uzyskać dostęp do dysku bez dodawania klucza do pęku kluczy, nazwy plików i ich zawartość będą widziane jako zaszyfrowany bełkot. Zachowaj ostrożność, uruchamiając starsze wersje e2fsck w systemie plików - będzie traktować zaszyfrowane nazwy plików jako nieprawidłowe.

kmeaw
źródło
Ta odpowiedź miała poważne problemy z formatowaniem. Próbowałem ulepszyć tak dalece, jak tylko mogłem, ale nie ma dla mnie sensu, dlaczego oczywiście próbowałby używać formatowania przeceny, obsługiwać złożone polecenia, a także wykonywać podobną edycję w Arch Arch jednocześnie, ale potem spójrz na śmieciach renderowanych w podglądzie i zdecyduj się pozostawić je bez zmian. Nie ma satysfakcjonującego wyjaśnienia ani dalszego odniesienia, dlaczego wiersze muszą zostać usunięte. Ponadto sugeruje się używanie debuilda w sposób, który nie jest przeznaczony (w pakiecie niedebianizowanym jest pakiet eksperymentalny w Debianie) i nie działa. -1
LiveWireBT