Czy mogę utworzyć nową ext4zaszyfrowaną partycję z jądrem 4.1 na Ubuntu 15.04?
Czy mogę utworzyć nową ext4zaszyfrowaną partycję z jądrem 4.1 na Ubuntu 15.04?
Odpowiedzi:
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ń).
e2fsprogsjak pokazano powyżejWygeneruj 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.
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.
/usr/bin/e4crypt” brakuje „s” w „/ [s] bin”.
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.