Jak wstępnie szyfrować tylko partycję root?

13

Mam 3 partycje: EFI ( /boot/efi), boot ( /boot) i root ( /). Chcę po prostu zaszyfrować /. Mogę to zrobić ręcznie za pomocą instalatora, ale chcę to wstępnie zaprogramować.

Jak to zdefiniować? Mój (niezaszyfrowany) przepis wygląda mniej więcej tak: Jest to coś w rodzaju pomieszania sugestii dla partycji systemowych EFI, które znalazłem (nie znalazłem jasnego przewodnika).

boot-root ::
  100 100 100 fat32
    $primary
    $iflabel{ gpt }
    $reusemethod( }
    use_filesystem{ } filesystem{ vfat }
    method{ efi } format{ }
    mountpoint{ /boot/efi }
  .
  300 300 300 ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ /boot }
  .
  100% 3000 100% ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ / }
  .

Jak mogę sda3stać się fizyczną partycją do szyfrowania LUKS, a następnie mieć na niej system plików?

AKTUALIZACJA:

Odkryłem, że mogę ustawić partycję jako kryptograficzną, jak poniżej, ale nadal występują 3 problemy:

  1. Nadal muszę utworzyć i aktywować zaszyfrowane woluminy na wybranej partycji
  2. Nadal muszę ustawić poprawny system plików ext4 na zaszyfrowanym woluminie po utworzeniu i aktywacji
  3. Przepis nie wybiera typu szyfrowania, dm-cryptktóry jest wymagany do utworzenia i aktywacji zaszyfrowanych woluminów.

Wciąż mocno się zmaga

boot-root ::
  100 100 100 fat32
    $primary
    $iflabel{ gpt }
    $reusemethod( }
    use_filesystem{ } filesystem{ vfat }
    method{ efi } format{ }
    mountpoint{ /boot/efi }
  .
  300 300 300 ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ /boot }
  .
  100% 3000 100% ext4
    method{ crypto } format{ }
  .
rowie
źródło
FYI, etykiety podoba sda, sdb, sdcitp nie zawsze te same litery (a, b, c) pomiędzy butami (kopalnia przełączyć każdym rozruchu)
Xen2050
2
@ Xen2050 prawo jesteś, UUIDlub PARTUUIDlub LABELlub PARTLABELsą znacznie lepsze. W moim przypadku uruchamiam obraz do sformatowania, więc jest tylko jeden dysk. Tak czy inaczej, jak skonfigurować go do szyfrowania pojedynczej partycji? Mogę to zrobić interaktywnie, ale potrzebuję tego wcześniej.
rów
Hmm, może gdzieś się dostaję, ale więcej pytań. Wyśle inne q.
roszenie
@deitch - czy jest to konfiguracja partycji serwera, klient czy tylko przykład partycji pulpitu? Te 3 partycje to za mało dla twojej intencji - brakuje / swap i / home - więc musisz jakoś skonfigurować rozszerzoną część dysku twardego z partycjami logicznymi - zwykle partycje zezwalają tylko na 4, ale rozszerzone z partycjami logicznymi pozwalają Maksymalnie 4 razy 63 partycje (a GPT pozwala na znacznie więcej)?! - unix.stackexchange.com/questions/33555/… - w odniesieniu do partycji master i slave.
dschinn1001
@ dschinn1001 faktycznie jest szablonem dla bezpiecznego serwera. Podstawowy system operacyjny znajduje się na dysku wymiennym. Dane użytkownika i wymiany znajdują się na dysku wewnętrznym, który usystematyzowana usługa odpowiednio znajduje i montuje. Ale ignorując to ... jak mogę skonfigurować root do szyfrowania bez LVM?
roszenie

Odpowiedzi:

1

Najpierw otwórz terminal główny:

sudo -i

Następnie wypełnij partycję, która powinna być zaszyfrowana, losowymi danymi za pomocą następującego polecenia:

openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > /dev/sdxy

Musisz zastąpić sdxypartycję, która zostanie zaszyfrowana. Następnie wpisz

cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 2000 /dev/sdxy

do szyfrowania partycji sdxy. Otwórz wolumin i nazwij go root:

cryptsetup luksOpen /dev/sdxy root

Użyj tego polecenia, aby utworzyć w nim system plików ext4:

mkfs.ext4 /dev/mapper/root

Następnie możesz uruchomić instalatora. Wybierz „Coś innego”, gdy zostaniesz zapytany, co chcesz zrobić. Następnie wybierz punkty montowania dla wszystkich niezaszyfrowanych partycji. W przypadku rootpartycji wybierz /dev/mapper/rootopcję „Zmień”. Następnie wybierz ext4typ systemu plików i ustaw punkt montowania na /. Następnie kliknij „Zainstaluj teraz” i zainstaluj Ubuntu normalnie.

Po zakończeniu instalacji kliknij „Kontynuuj testowanie”. Otwórz terminal i wpisz:

sudo -i
cd /mnt
mkdir root
mount /dev/mapper/root root
mount /dev/sdyz root/boot

sdyznależy zastąpić bootpartycją. Następnie wpisz:

chroot root
mount -t proc proc /proc
mount -t sysfs sys /sys
nano /etc/crypttab

Otwórz drugi terminal i wpisz sudo blkid. Znajdź UUID dla root(tego, który mówi crypto_luksna końcu) i wklej go do /etc/crypttab. Plik /etc/crypttabpowinien wyglądać mniej więcej tak:

root UUID=d68911dd-172a-4608-86d4-084eb72f409c none luks

Zamknij plik z Ctrl+ x, ya Enter. Wpisz nano /etc/fstabterminal i sprawdź, czy wszystko wygląda poprawnie (np. UUID).

W końcu zamknij środowisko chroot i wpisz:

cryptsetup luksHeaderBackup /dev/sdxy --header-backup-file /root/root.img

Spowoduje to umieszczenie obrazu nagłówka zaszyfrowanej partycji w folderze /rooti nadanie mu nazwy root.img. Następnie przenieś obraz na dysk zewnętrzny (w przypadku zapomnienia hasła). Teraz możesz ponownie uruchomić system w nowo zainstalowanym systemie Ubuntu.

Źródło: http://thesimplecomputer.info/full-disk-encryption-with-ubuntu

Earl Nick
źródło
Witamy w Ask Ubuntu! Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Karl Richter,
@ Earl sugerujesz wcześniej zbudować partycję w środowisku chroot (lub w kontenerach), a następnie włożyć ją do instalatora?
deitch
Jak miałbym pracować z tym siewnikiem?
deitch
Nie wiem, ale jest to przynajmniej rozwiązanie, aby utworzyć rootpartycję zaszyfrowaną LUKS bez LVM.
Earl Nick