Как мне установить шифрование только корневого раздела?

13

У меня есть 3 раздела: EFI ( /boot/efi), boot ( /boot) и root ( /). Я хочу просто зашифровать /. Я могу сделать это вручную через установщик, но я хочу, чтобы preseed это.

Как мне это определить? Мой (незашифрованный) рецепт выглядит примерно так: Это что-то вроде путаницы предложений по системным разделам 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-шифрования, а затем иметь файловую систему поверх этого?

ОБНОВИТЬ:

Я обнаружил, что могу установить раздел для шифрования, как показано ниже, но есть еще 3 проблемы:

  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и т.д. не всегда держат одни и те же буквы (а, б, в) между ботинками (шахтные переключения при каждой загрузке)
Xen2050
2
@ Xen2050 ты прав, UUIDили PARTUUIDили LABELили PARTLABELнамного лучше. В моем случае я загружаю изображение для форматирования, поэтому в нем есть только один диск. В любом случае, как мне настроить его для шифрования одного раздела? Я могу сделать это в интерактивном режиме, но мне это нужно заранее.
декабря
Хм, может быть где-то, но больше вопросов. Опубликуем другие д.
Deitch
@deitch - это конфигурация раздела сервера или клиент или просто пример раздела рабочего стола? Эти 3 раздела слишком малы для вашего намерения - отсутствуют / swap и / home - поэтому вам нужно как-то настроить расширенную часть жесткого диска с логическими разделами - обычно разделы позволяют только 4 в целом, но расширенные с помощью логических разделов позволяют Максимум 4 раза по 63 раздела (а GPT позволяет гораздо больше) ?! - unix.stackexchange.com/questions/33555/… - относительно главного и подчиненного разделов.
dschinn1001
@ dschinn1001 на самом деле это шаблон для защищенного сервера. Основная операционная система находится на съемном диске. Пользовательские данные и своп находятся на внутреннем диске, который служба systemd находит и монтирует соответствующим образом. Но игнорируя это .... как я могу настроить рут для шифрования без LVM?
декабря

Ответы:

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

Эрл Ник
источник
Добро пожаловать в Спросите Ubuntu! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить сюда основные части ответа и предоставить ссылку для справки.
Карл Рихтер
@ Эрл, вы предлагаете заранее создать раздел в среде chroot (или контейнере), а затем вставить его в установщик?
Deitch
Как бы я работал с предсказать?
Deitch
Я не знаю, но это по крайней мере решение сделать LUKS-зашифрованный rootраздел без LVM.
Граф Ник