Instalacja na zaszyfrowanej partycji cryptroot
Uwagi: Istnieje kilka zastrzeżeń co do stosowania tej instrukcji w celu szyfrowania partycji z głównym katalogiem (root) lub partycji z danymi. Są nimi:
- Można ją stosować do aptosid-2010-03-apate i późniejszych.
- To jest podstawowy przewodnik z którym można zacząć. Twoją odpowiedzialnością jest dowiedzieć się więcej na temat LUKS, cryptsetupu i szyfrowania. Odnośniki do żródeł i pomocnych zasobów znajdują się na dole tej strony, jednakże ich lista nie jest definitywnie wyczerpująca.
- cryptsetup nie potrafi zaszyfrować istniejącej partycji z danymi, dlatego trzeba utworzyć nową partycję, dokonać jej ustawień za pomocą cryptsetup, a następnie przenieść na nią potrzebne dane.
- Można także używać plików kluczowych i posiadać wiele kluczy dla danych, (do 8, włączając usuwanie kluczy), co jest już poza zakresem tego poradnika.
- Należy nie zapomninać haseł kluczowych pod rygorem utraty dostępu do wszystkiego! Nawet użycie polecenia chroot bez znajomości haseł kluczowych zda się na nic, za wyjątkiem kartoteki /boot.
- Na wczesnym etapie uruchamiania systemu zostaniesz poproszony o hasło kluczowe szyfrowania i system zostanie uruchomiony zgodnie z oczekiwaniem.
Przykłady szyfrowania:
Szyfrowanie w grupie woluminu LVM
Ten przykład stosuje szyfrwewnątrz woluminu LVM dla umożliwienia przyzwolenia na rozdział kartoteki home od / oraz posiadanie partycji wymiany (swap) bez konieczności posiadania wielu haseł i ma zastosowanie do aptosid-2010-03-apate i późniejszych.
Przed uruchomieniem instalatora trzeba przygotować systemy plików, które będą używane przy instalacji. Podstawowe wskazówki partycjonowania grup wolumenów LVM, znajdziesz w Menedżer Woluminów Logicznych - LVM partycjonowanie.
Potrzebna ci będzie co najmniej niezaszyfrowany system plików /boot i zaszyfrowany główny system plików / a także utworzenie zaszyfrowananych systemów plików /home i swap.
- Jeśli nie planujesz użyć istniejącego wolumenu grup lvm, utwórz zwyczajny wolumen grup lvm. Ten przykład zakłada, że wolumen grupy nazwany vg będzie zawierał system plików boot i zaszyfrowane dane.
- Bedziesz potrzebował logiczny wolumen dla /boot i zaszyfrowanych danych, dlatego użyj lvcreate aby utworzyć wolumeny logiczne w wolumenie grup vg z żądaną wielkością:
lvcreate -n boot --size 250m vg lvcreate -n crypt --size 300g vg
Tutaj zostały nazwane wolumeny logiczne boot i crypt z przydzielonymi odpowiednio 250Mb i 300Gb. - Utworzenie systemu plików dla /boot będzie dostepne w instalatorze:
mkfs.ext4 /dev/mapper/vg-boot
- Użyj cryptsetup aby zaszyfrować vg-crypt przy użyciu szybszej opcji xts posiadającej najwyższej mocy klucz długości 512 bitów a następnie owtórz ją. Zostanie dwukrotnie zadane pytanie o hasło, aby je ustawić, a trzeci raz dla otwarcia. Otwórz ją przy pomocy domyślnych opcji startowych cryptopts wskazując nazwę gałęzi cryptroot:
cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/mapper/vg-crypt
cryptsetup luksOpen /dev/mapper/vg-crypt cryptroot
- Teraz użyj lvm wewnątrz zaszyfrowanego urządzenia aby utworzyć drugi wolumen grupy, który będzie używany dla urzadzeń /swap i /home. Uzyj pvcreate aby cryptroot uczynić wolumenem fizycznym, a następnie użyj vgcreate aby utworzyć kolejny wolumen grupy, nazwany tutaj cryptvg:
pvcreate /dev/mapper/cryptroot vgcreate cryptvg /dev/mapper/cryptroot
- Nastepnie użyj lvcreate dla nowo zaszyfrowanego wolumenu grup cryptvg aby utworzyć wolumeny logiczne / , /swap i /home o potrzebnych wielkościach:
lvcreate -n swap --size 2g cryptvg lvcreate -n root --size 40g cryptvg lvcreate -n home --size 80g cryptvg
Oto zostały nazwane wolumeny logiczne swap, root i home i ustanowione odpowiednio jako 2Gb, 40Gb i 80Gb. - Utwórz systemy plików dla cryptvg-swap, cryptvg-root i cryptvg-home tak aby dostępne w instalatorze:
mkswap /dev/mapper/cryptvg-swap mkfs.ext4 /dev/mapper/cryptvg-root mkfs.ext4 /dev/mapper/cryptvg-home
- W tym momencie istnieje gotowość aby uruchomić instalator z użyciem:
vg-boot dla /boot,
cryptvg-root dla /,
cryptvg-home dla /home,
i cryptvg-swap dla swap co powinno być automatycznie rozpoznane.
Instalację kończymy linią komendy jądra z załączeniem następujących opcji:
root=/dev/mapper/cryptvg-root cryptopts=source=/dev/mapper/vg-crypt,target=cryptroot,lvm=cryptvg-root
Teraz masz crypt i boot pod wolumenem grup lvm - vg oraz root, home i swap wewnątrz wolumenu grup lvm - vgcrypt, który jest zaszyfrowanym urządzeniem wewnętrznie zabezpieczonym hasłem.
cryptsetup luksOpen /dev/mapper/cryptvg-root cryptvg vgchange -a y
Uwagi co do szyfrowania dla tradycyjnych metod partycjonowania
Najpierw zdecyduj się jakiego chcesz układu dysku. Będziesz potrzebował co najmniej 2 partycje, normalną partycję dla /boot i jedną dla danych zaszyfrowanych.
Zakładając, że będziesz potrzebował partycji danych (która także powinna być zaszyfrowana) potrzebna będzie trzecia partycja i potrzeba oddzielnego wprowadzenia hasła dla niej (swap) podczas startu systemu (dlatego pojawi się podwójne żądanie wprowadzenia hasła).
Możliwe jest stosowanie kluczy dla partycji wymiany (swap) od wewnątrz szyfrowanego systemu z tradycyjnym partycjonowaniem, jednak nie będziesz mógł wstrzymać systemu (suspend) na dysku. Ze względu na te problemy, lepszym rozwiązaniem na dłuższą metę jest użycie woluminów LVM z w pełni szyfrowanymi partycjami i kluczami.
Podstawowe założenia:
- Istnieją tylko 3 zwykłe partycje na tym dysku:
/boot, z 250mb
swap, z 2 gig
/ i /home połączone (dla przykładu, równoważne). - Dwa hasła będą konieczne, pierwsze dla swapu, drugie dla połączonych / i /home.
Teraz, gdy już zostało wykonane partycjonowanie, należy przygotować szyfrowane partycje tak, by zostały one rozpoznane przez instalatora.
Jeśli był używany program do partycjonowania z GUI, należy go zamknąć i otworzyć terminal, ponieważ polecenia szyfrowania muszą być wykonane z linii poleceń.
Partycja /boot
Utwórz na partycji /boot system plików ext4, jeśli to nie zostało już zrobione:
/sbin/mkfs.ext4 /dev/sda1
Zaszyfrowana partycja swap
Dla zaszyfrowanej partycji swap musisz najpierw sformatować i otworzyć urządzenie w trybie raw, /dev/sda2, jako urządzenie zaszyfrowane, podobnie jak urządzenie vg-crypt powyżej, lecz otwierając je pod inną nazwą - swap.
cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/sda2
cryptsetup luksOpen /dev/sda2 swap
echo "swap UUID=$(blkid -o value -s UUID /dev/sda2) none luks" >> /etc/crypttab
Dokonaj formatu utworzonego /dev/mapper/swap tak, aby został rozpoznany przez instalatora:
/sbin/mkswap /dev/mapper/swap
Zaszyfrowana partycja /
Dla zaszyfrowanej partycji / musisz najpierw sformatować i otworzyć urządzenie w trybie raw, /dev/sda3, jako urządzenie zaszyfrowane, podobnie jak urządzenie vg-crypt powyżej.
cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/sda3
cryptsetup luksOpen /dev/sda3 cryptroot
Dokonaj formatu utworzonego /dev/mapper/cryptroot tak, aby został rozpoznany przez instalatora:
/sbin/mkfs.ext4 /dev/mapper/cryptroot
Uruchomienie instalatora
Teraz jesteś gotowy do uruchomienia instalatora, gdzie powinieneś użyć:
sda1 dla /boot,
cryptroot dla / oraz /home
swap powinien zostać rozpoznany automatycznie.
Instalacja powinna zakończyć się linią poleceń jądra, z następującymi opcjami (z użyciem twojego UUID):
root=/dev/mapper/cryptroot cryptopts=source=UUID=12345678-1234-1234-1234-1234567890AB,target=cryptroot
Teraz masz /boot na zwykłej partycji, zaszyfrowaną hasłem partycję wymiany (swap) oraz zaszyfrowane root i /home.
Źródła i zasoby
Wymagana literatura:
man cryptsetup
LUKS.
Protect Your Stuff With Encrypted Linux Partitions.
KVM how to use encrypted images.