Як зробити попереднє шифрування лише кореневого розділу?


13

У мене є 3 розділи: EFI ( /boot/efi), boot ( /boot) і root ( /). Я хочу просто зашифрувати /. Я можу це зробити вручну через інсталятор, але я хочу його попередньо.

Як це визначити? Мій (незашифрований) рецепт виглядає приблизно так, як наведено нижче. Це щось із суперечливих пропозицій щодо розділів системи EFI, які я знайшов (я не знайшов чіткого керівництва).

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{ / }
  .

Як я можу зробити sda3фізичний розділ для шифрування LUKS, а потім мати файлову систему поверх цього?

ОНОВЛЕННЯ:

Я виявив, що я можу встановити розділ як криптовалюту, як показано нижче, але все ще є три проблеми:

  1. Мені ще потрібно створити та активувати зашифровані томи на обраному розділі
  2. Мені ще потрібно встановити правильну файлову систему ext4 на зашифрованому томі після створення та активації
  3. Рецепт не вибирає тип шифрування dm-crypt, необхідний для створення та активації зашифрованих томів.

Ще сильно борються

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{ }
  .

FYI, такі ярлики, як sda, sdbі sdcт. Д. Не завжди зберігають однакові літери (a, b, c) між
чобітками

2
@ Xen2050 правий ти, UUIDабо PARTUUIDабо LABELабо PARTLABELнабагато кращий. У моєму випадку я завантажую зображення у формат, тому є лише один накопичувач. Так чи інакше, як його встановити для скріптування одного розділу? Я можу це робити інтерактивно, але мені це потрібно заздалегідь заздалегідь.
deitch

Хм, може десь потрапити, але більше запитань. Опублікує інші q.
deitch

@deitch - це конфігурація розділів сервера чи клієнт чи просто приклад розділу на робочому столі? Цих 3-х розділів занадто мало для вашого наміру - немає / swap та / home - так що вам доведеться якось налаштувати розширену частину жорсткого диска з логічними розділами - зазвичай розділи дозволяють загалом лише 4, але розширені з логічними розділами дозволяють 4 рази 63 розділи максимум (а GPT дозволяє набагато більше) ?! - unix.stackexchange.com/questions/33555/… - щодо розділів головних і рабів.
dschinn1001

@ dschinn1001 насправді є його шаблоном для захищеного сервера. Основна операційна система знаходиться на знімному накопичувачі. Дані користувача та своп є на внутрішньому диску, який системний сервіс знаходить та монтує належним чином. Але ігноруючи це .... як я можу налаштувати корінь для шифрування без LVM?
deitch

Відповіді:


1

Спочатку відкрийте кореневий термінал:

sudo -i

Потім заповніть розділ, який повинен бути зашифрований, випадковими даними, використовуючи таку команду:

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

Ви повинні замінити sdxyрозділ, який буде зашифрований. Потім введіть

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

для шифрування розділу sdxy. Відкрийте гучність і назвіть її root:

cryptsetup luksOpen /dev/sdxy root

Використовуйте цю команду для створення файлової системи ext4 всередині неї:

mkfs.ext4 /dev/mapper/root

Далі ви можете запустити інсталятор. Вибираючи "Щось інше", коли вас запитують, що ви хочете зробити. Потім виберіть точки монтажу для всіх ваших незашифрованих розділів. Для свого rootрозділу виберіть /dev/mapper/root, натисніть "Змінити". Потім виберіть ext4тип файлової системи та встановіть значення монтажу /. Потім натисніть «Встановити зараз» і встановіть Ubuntu нормально.

Закінчивши встановлення, натисніть «Продовжити тестування». Відкрийте термінал і введіть:

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

sdyzмає бути замінено вашим bootрозділом. Далі введіть:

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

Відкрийте другий термінал і введіть sudo blkid. Знайдіть UUID для root(той, що пише crypto_luksв кінці) і вставте його /etc/crypttab. Тоді файл /etc/crypttabповинен виглядати приблизно так:

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

Закрийте файл Ctrl+ x, yі Enter. Введіть nano /etc/fstabтермінал і перевірте, чи все виглядає правильно (наприклад, UUID).

Нарешті, вийдіть із середовища chroot та введіть:

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

Це додає зображення заголовка зашифрованого розділу в папку /rootі називає його root.img. Потім перемістіть зображення на зовнішній диск (у разі забуття пароля). Тепер ви можете перезавантажити ваш недавно встановлений Ubuntu.

Джерело: http://thesimplecomputer.info/full-disk-encryption-with-ubuntu


Ласкаво просимо в Ask Ubuntu! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Карл Ріхтер

@Earl, ви пропонуєте заздалегідь створити розділ у середовищі chroot (або контейнері), а потім вставити його в інсталятор?
deitch

Як би я працював з попередньою програмою?
deitch

Я не знаю, але це принаймні рішення для створення зашифрованого LUKS root-розділу без LVM.
Граф Нік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.