Szyfrowana instalacja niestandardowa

21

Na moim komputerze działa Ubuntu. Chcę zainstalować Ubuntu na innym nośniku. Chcę włączyć szyfrowanie, ale ponieważ domyślne opcje instalatora Ubuntu (usuwanie / obok / etc ...) dotyczą tylko domyślnego dysku, muszę wybrać „coś innego” i ręcznie utworzyć partycje na drugim dysku, tworzę ~ 128 MB części do rozruchu, wtedy jestem zgubiony, jeśli utworzę szyfrowaną partycję z resztą miejsca, nie jestem w stanie jej podzielić, więc nie mam zamiany; jeśli zamiast tego utworzę dwie zaszyfrowane partycje, nie wydaje się to właściwe, ponieważ chcę skonfigurować dwa różne hasła ...

Jak w takim razie mogę skonfigurować swap? (Podczas instalacji lub po instalacji).

Yvain
źródło

Odpowiedzi:

29

Jak to zrobić za pomocą LVM i pojedynczej zaszyfrowanej partycji

Ostrzeżenie

Przede wszystkim 128M jest za mały na rozruch! Używam 1G. W przeciwnym razie może się zdarzyć, że zapomnisz usunąć stare jądra i / boot się zapełni, a będziesz musiał poradzić sobie z bólem związanym z próbą usunięcia starych jąder z systemu , abyś mógł dostać się do pracy aptlub apt-getpracować jeszcze raz. Nawet z 1G pamiętaj, aby od czasu do czasu usuwać stare jądra.

Następne kroki nie są przeznaczone dla początkujących użytkowników.
AKTUALIZACJA: Stworzyłem skrypt , który wykona następujące operacje dla Ciebie i wiele więcej! Wszystko, co musisz zrobić, to uruchomić go z Live OS przed instalacją. Możesz znaleźć recenzję na moim blogu .


Wstępna instalacja z systemu operacyjnego na żywo

Chcesz skonfigurować LUKS i LVM podczas ręcznego partycjonowania! Przetestowałem to na Ubuntu 16.04.2

Uruchom Ubuntu z Live OS i wybierz opcję wypróbowania Ubuntu bez instalacji. Postępuj zgodnie z krokami, które przedstawiłem poniżej. Załóżmy, że instalujesz w / dev / sdb.

  1. Podziel dysk na partycje za pomocą wybranego narzędzia: Użyłem programu fdisk, aby ustawić mój na tablicy partycji msdos w następujący sposób:
    • inne partycje: istniejące systemy operacyjne - nie dbamy o nie
    • sdb1: / boot (1G)
    • sdb2: Partycja LUKS (reszta dysku)
  2. Skonfiguruj LUKS
    • sudo cryptsetup luksFormat --hash=sha512 --key-size=512 --cipher=aes-xts-plain64 --verify-passphrase /dev/sdb2
    • sudo cryptsetup luksOpen /dev/sdb2 CryptDisk
    • Chociaż nie jest to konieczne, dobrym pomysłem jest wypełnienie partycji LUKS zerami, aby partycja w stanie zaszyfrowanym była wypełniona losowymi danymi. sudo dd if=/dev/zero of=/dev/mapper/CryptDisk bs=4M UWAGA, może to zająć naprawdę dużo czasu!
  3. Skonfiguruj LVM na / dev / mapper / CryptDisk
    • sudo pvcreate /dev/mapper/CryptDisk
    • sudo vgcreate vg0 /dev/mapper/CryptDisk
    • sudo lvcreate -n swap -L 2G vg0
    • sudo lvcreate -n root -L 10G vg0
    • sudo lvcreate -n home -l +100%FREE vg0

Instalacja z systemu operacyjnego na żywo

  1. Teraz jesteś gotowy do instalacji. Po przejściu do części instalacji „Typ instalacji” wybierz opcję „Coś innego”. Następnie ręcznie przypisz partycje / dev / mapper / vg0- *, tak jak chcesz skonfigurować. Nie zapomnij ustawić / dev / sdb1 jako / boot. partycja / boot nie może być szyfrowana. Jeśli tak, nie będziemy mogli uruchomić systemu. Zmień „Urządzenie do instalacji modułu ładującego” na / dev / sdb i kontynuuj instalację.
  2. Po zakończeniu instalacji nie uruchamiaj ponownie ! Wybierz opcję „Kontynuuj testowanie”.

Konfiguracja po instalacji z systemu operacyjnego na żywo

Ten bit jest bardzo ważny, jeśli chcesz uruchomić system! Spędziłem sporo czasu na badaniu tego, aby dowiedzieć się, jakie kroki należy wykonać po instalacji. W moim przypadku tak naprawdę to robiłem, ponieważ chciałem dostosować rozmiar / boot on / dev / sda, ale cała ta praca powinna przenieść się również na twoją sytuację.

  1. W terminalu wpisz następujące polecenie i wyszukaj identyfikator UUID katalogu / dev / sdb2. Zanotuj ten UUID na później.
    • sudo blkid | grep LUKS
    • Ważny wiersz na moim komputerze brzmi: /dev/sdb2: UUID="bd3b598d-88fc-476e-92bb-e4363c98f81d" TYPE="crypto_LUKS" PARTUUID="50d86889-02"
  2. Następnie pozwala ponownie zainstalować nowo zainstalowany system, abyśmy mogli wprowadzić dalsze zmiany.

    • sudo mount /dev/vg0/root /mnt
    • sudo mount /dev/vg0/home /mnt/home # prawdopodobnie nie jest to konieczne
    • sudo mount /dev/sdb1 /mnt/boot
    • sudo mount --bind /dev /mnt/dev # Nie jestem do końca pewien, czy to konieczne
    • sudo mount --bind /run/lvm /mnt/run/lvm
    • (Tylko jeśli używasz EFI): sudo mount /dev/sd*/your/efi/partition /mnt/boot/efi
  3. Teraz uruchom, sudo chroot /mntaby uzyskać dostęp do zainstalowanego systemu

  4. Z chroot zamontuj jeszcze kilka rzeczy
    • mount -t proc proc /proc
    • mount -t sysfs sys /sys
    • mount -t devpts devpts /dev/pts
  5. Skonfiguruj crypttab. Za pomocą swojego ulubionego edytora tekstu utwórz plik / etc / crypttab i dodaj następujący wiersz, zmieniając identyfikator UUID na identyfikator UUID dysku.
    • CryptDisk UUID=bd3b598d-88fc-476e-92bb-e4363c98f81d none luks,discard
  6. Na koniec odbuduj niektóre pliki rozruchowe.
    • update-initramfs -k all -c
    • update-grub
  7. Uruchom ponownie, a system powinien poprosić o hasło do odszyfrowania przy starcie!

Specjalne podziękowania dla Martina Ewy , EGIDIO potulny , a ludzie na blog.botux.fr tutoriali oni napisali. Wyciągając kawałki z ich postów i robiąc dodatkowe problemy z rozwiązywaniem problemów, w końcu udało mi się to rozgryźć.

Próbowałem tego wiele razy i ciągle mi się nie udawało. To, co musiałem wypracować dla siebie na podstawie komunikatów o błędach, tosudo mount --bind /run/lvm /mnt/run/lvm

b_laoshi
źródło
Wielkie dzięki, ale utknąłem na początku, gdzie muszę skonfigurować partycję Luks. Nie można go znaleźć w danych wyjściowych fdisk -L.
Yvain
A kiedy próbuję skonfigurować kryptę, otrzymuję komunikat o błędzie: nie udało mi się usunąć nagłówków
Yvain
Widzę, że oznaczyłeś to jako rozwiązanie. Udało ci się to? Jeśli nie, jakiego narzędzia użyłeś do utworzenia partycji? Najpierw musisz podzielić dysk na partycje za pomocą narzędzia takiego jak Gparted lub fdisk, tworząc partycję dla / boot i jedną dla szyfrowania (EFI wymagałby trzeciej nieszyfrowanej partycji). Nie używałem EFI w mojej konfiguracji. Dopiero po utworzeniu partycji do szyfrowania można uruchomić cryptsetup luksFormatpolecenie jej zaszyfrowania. Po utworzeniu / dev / sdb2 możesz sformatować go w systemie plików lub nie. cryptsetupusunie każdy istniejący system plików.
b_laoshi
1
@Yvain - Myślę, że to źle. Sha1 nie jest już uważany za bezpieczny. Zdecydowanie należy użyć czegoś bardziej bezpiecznego (takiego jak sugerowana opcja sha512).
Mike
1
+1 @b_laoshi Bardzo dziękuję za odpowiedź, bardzo mi pomaga :)
Tummala Dhanvi
3

Jak wykonać tę wiele zaszyfrowanych partycji bez LVM

Ponieważ moja poprzednia odpowiedź była tak długa, zamieszczam drugą odpowiedź, która przyjmuje inne podejście, jeśli nie chcesz używać LVM.

Możesz utworzyć wiele zaszyfrowanych partycji i użyć skryptu decrypt_derived , aby hasło trzeba było wprowadzić tylko raz. Sprawdź ten post na blogu, aby uzyskać instrukcje krok po kroku. Autor używa pliku klucza, ale wystarczyłby również skrypt LUKS odszyfrowany.

b_laoshi
źródło
Skończyłem odłączyć główny dysk, instalacje wspomagane są dostępne dla mojego sd :) lol
Yvain
0

To jest odpowiedź dla tych, którzy ciągle wpadają na to pytanie, chcąc jedynie nieznacznie zmienić domyślny podział partycji Ubuntu. Na przykład usuń swappartycję i zwiększ /bootrozmiar. Myślę, że wielu ludzi byłoby zniechęconych do wykonywania instrukcji b_laoshi z powodu ilości wymaganych kroków.

Dlatego w przypadku prostego niestandardowego partycjonowania z szyfrowaniem sugeruję użycie opcji „Wymaż dysk i zainstaluj Ubuntu” z opcją „Zaszyfruj nową instalację Ubuntu dla bezpieczeństwa”. Zmienimy konfigurację tego domyślnego partycjonowania.

Te konfiguracje są zawarte w /lib/partman/recipes[-arch]/. Dla siebie zmieniam się /lib/partman/recipes-amd64-efi/30atomic. Aby uzyskać 538 mln dla efi, 1024 mln dla /boot, a resztę dla dla /ext4, edytowałem plik do

538 538 538 fat32
    $iflabel{ gpt }
    $reusemethod{ }
    method{ efi }
    format{ } .

1024 1024 1024 ext4
    $defaultignore{ }
    $lvmignore{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext4 }
    mountpoint{ /boot } .    

900 10000 -1 ext4
    $lvmok{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext4 }
    mountpoint{ / } .

Pamiętaj, że po wybraniu dysku do skasowania w instalatorze wyświetli się podsumowanie partycjonowania, dzięki czemu możesz sprawdzić, czy sztuczka zadziałała i czy otrzymujesz żądane partycjonowanie. Zobacz także /ubuntu//a/678074/47073 .

Jogirg
źródło