dm-crypt (Polski)/Encrypting a non-root file system (Polski)
Poniżej przedstawiono przykłady szyfrowania wtórnego, tj. Innego niż root, systemu plików z dm-crypt.
Overview
Szyfrowanie dodatkowego systemu plików zazwyczaj chroni tylko poufne dane, pozostawiając niezaszyfrowany system operacyjny i pliki programów. Jest to przydatne do szyfrowania zewnętrznego nośnika, takiego jak dysk USB, aby można go było bezpiecznie przenieść na inne komputery. Można również wybrać szyfrowanie zestawów danych osobno w zależności od tego, kto ma do nich dostęp.
Ponieważ dm-crypt jest warstwą szyfrowania blokowego, szyfruje tylko pełne urządzenia, pełne partycje i urządzenia pętli. Szyfrowanie pojedynczych plików wymaga warstwy szyfrowania na poziomie systemu plików, takiej jak eCryptfs lub EncFS. Zobacz Disk encryption (Polski), aby uzyskać ogólne informacje na temat zabezpieczania prywatnych danych.
Partycja
Ten przykład obejmuje szyfrowanie partycji /home
, ale można ją zastosować do dowolnej innej porównywalnej partycji innej niż root, zawierającej dane użytkownika.
/home
na partycji lub utworzyć wspólną partycję dla wszystkich partycji użytkownika /home
Najpierw upewnij się, że partycja jest pusta (nie ma do niej podłączonego systemu plików). Usuń partycję i utwórz pustą, jeśli ma system plików. Następnie przygotuj partycję przez jej bezpieczne usunięcie, zobacz Dm-crypt/Drive preparation#Secure erasure of the hard disk drive.
Następnie ustaw nagłówek LUKS na
# cryptsetup options luksFormat --type luks2 device
Zamień urządzenie na poprzednio utworzoną partycję. zobacz Dm-crypt/Device encryption (Polski)#Opcje szyfrowania z dm-crypt po szczegóły, takie jak dostępne opcje.
Aby uzyskać dostęp do zaszyfrowanej partycji, odblokuj ją za pomocą urządzenia mapującego, używając:
# cryptsetup open device name
Po odblokowaniu partycji będzie ona dostępna pod adresem /dev/mapper/name
. Teraz stwórz a System plików do wyboru z:
# mkfs.fstype /dev/mapper/name
Zamontuj system plików na /home
lub jeśli powinien być dostępny tylko dla jednego użytkownika na /home/username
, zobacz #Ręczne montowanie i odmontowywanie.
Ręczne zakładanie i odmontowywanie
Aby zamontować partycję:
# cryptsetup open device name # mount -t fstype /dev/mapper/name /mnt/home
Aby odmontować:
# umount /mnt/home # cryptsetup close name
Automatyczne odblokowywanie i montowanie
Istnieją trzy różne rozwiązania do automatyzacji procesu odblokowywania partycji i montowania jej systemu plików.
Podczas startu systemu
Użycie pliku konfiguracyjnego /etc/crypttab
powoduje automatyczne odblokowanie podczas uruchamiania systemu. Jest to zalecane rozwiązanie, jeśli chcesz użyć jednej wspólnej partycji na wszystkich partycjach domowych użytkownika lub automatycznie zamontować inne zaszyfrowane urządzenie blokowe.
Zobacz Dm-crypt/System configuration#crypttab w przypadku odniesień i Dm-crypt/System configuration#Mounting at boot time na przykład skonfigurować.
Przy logowaniu użytkownika
Za pomocą pam_exec możliwe jest odblokowanie (cryptsetup open) partycja przy logowaniu użytkownika: jest to zalecane rozwiązanie, jeśli chcesz mieć katalog domowy pojedynczego użytkownika na partycji. zobacz dm-crypt/Mounting at login.
Odblokowanie przy logowaniu użytkownika jest również możliwe dzięki pam_mount.
Loop device
# dd if=/dev/urandom of=key.img bs=20M count=1 # cryptsetup --align-payload=1 --hash=sha512 --cipher=serpent-xts-plain64 --key-size=512 -i 30000 luksFormat key.img # cryptsetup open key.img lukskey
Za mało pliku dostaniesz Requested offset is beyond real size of device /dev/loop0
błąd, ale jako przybliżone odniesienie tworzenie pliku 4MiB spowoduje jego pomyślne zaszyfrowanie. [1]
Urządzenie z pętlą umożliwia mapowanie urządzenia blokowego do pliku za pomocą standardowego narzędzia util-linux losetup
. Plik może wówczas zawierać system plików, który może być używany podobnie jak każdy inny system plików. Wielu użytkowników wie TrueCrypt jako narzędzie do tworzenia zaszyfrowanych kontenerów. Mniej więcej taką samą funkcjonalność można osiągnąć za pomocą systemu plików loopback zaszyfrowanego za pomocą LUKS i pokazano go w poniższym przykładzie.
Najpierw zacznij od utworzenia zaszyfrowanego kontenera, używając odpowiedniego random number generator
# dd if=/dev/urandom of=/bigsecret bs=1M count=10
Spowoduje to utworzenie dużego pliku o rozmiarze 10 megabajtów.
Następnie utwórz węzeł device /dev/loop0
, abyśmy mogli zamontować / używać naszego kontenera:
# losetup /dev/loop0 /bigsecret
/dev/loop0: No such file or directory
, musisz najpierw załadować moduł jądra za pomocą modprobe loop
. Obecnie urządzenia pętli (Kernel 3.2) są tworzone na żądanie. Poproś o nowe urządzenie z pętlą # losetup -f
.Odtąd procedura jest taka sama jak w przypadku #Partycja, z wyjątkiem faktu, że kontener jest już randomizowany i nie będzie wymagał kolejnego bezpiecznego usunięcia.
Ręczne montowanie i odmontowywanie
Aby odmontować kontener:
# umount /mnt/secret # cryptsetup close secret # losetup -d /dev/loop0
Aby ponownie zamontować kontener:
# losetup /dev/loop0 /bigsecret # cryptsetup open /dev/loop0 secret # mount -t ext4 /dev/mapper/secret /mnt/secret