Зашифрованная выборочная установка

21

Мой компьютер работает под управлением Ubuntu. Я хочу установить Ubuntu на другой носитель. Я хочу включить шифрование, но поскольку выбор по умолчанию установщика Ubuntu (стирание / рядом с / и т. Д.) Касается только диска по умолчанию, я должен выбрать «что-то другое» и создать разделы на другом диске вручную, я создаю ~ 128-мегабайтная часть для загрузки, тогда я теряюсь, если я делаю зашифрованный раздел с оставшимся пространством, я не могу его разбить, поэтому у меня нет свопа; если вместо этого я создаю два зашифрованных раздела, это кажется неправильным, потому что он хочет установить два разных пароля ...

Как я могу настроить своп тогда? (Во время или после установки).

Yvain
источник
См. Также askubuntu.com/questions/293028/…
Flimm

Ответы:

29

Как сделать это с помощью LVM и одного зашифрованного раздела

Предупреждение

Прежде всего, 128M слишком мал для загрузки! Я использую 1G. В противном случае обязательно произойдет то, что вы можете забыть удалить старые ядра, и / boot заполнится, и вам придется столкнуться с болью при попытке удалить старые ядра из системы, чтобы вы могли получить aptили apt-getработать опять таки. Даже с 1G, время от времени убирайте старые ядра.

Следующие шаги не предназначены для начинающих пользователей.
ОБНОВЛЕНИЕ: Я создал скрипт, который будет выполнять следующие операции для вас и многое другое! Все, что вам нужно сделать, это запустить его из Live OS перед установкой. Вы можете найти описание в моем блоге .


Предварительная установка из живой ОС

Вы хотите настроить LUKS и LVM при разделении вручную! Я проверял это на Ubuntu 16.04.2

Загрузите Ubuntu из Live OS и выберите опцию, чтобы попробовать Ubuntu без установки. Следуйте инструкциям, которые я изложил ниже. Давайте предположим, что вы устанавливаете в / dev / sdb.

  1. Разбейте диск на ваш любимый инструмент: я использовал fdisk для установки моей таблицы разделов msdos следующим образом:
    • другие разделы: существующие ОС - нас это не волнует
    • sdb1: / boot (1G)
    • sdb2: раздел LUKS (остальная часть диска)
  2. Настройка LUKS
    • sudo cryptsetup luksFormat --hash=sha512 --key-size=512 --cipher=aes-xts-plain64 --verify-passphrase /dev/sdb2
    • sudo cryptsetup luksOpen /dev/sdb2 CryptDisk
    • Хотя в этом нет необходимости, рекомендуется заполнить раздел LUKS нулями, чтобы раздел в зашифрованном состоянии был заполнен случайными данными. sudo dd if=/dev/zero of=/dev/mapper/CryptDisk bs=4M ВНИМАНИЕ, это может занять очень много времени!
  3. Настройте LVM на / 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

Установка из живой ОС

  1. Теперь вы готовы к установке. Когда вы перейдете к части «Тип установки» установки, выберите опцию «Что-то еще». Затем вручную назначьте разделы / dev / mapper / vg0- * так, как вы хотите настроить. Не забудьте установить / dev / sdb1 как / boot. раздел / boot не должен быть зашифрован. Если это так, мы не сможем загрузиться. Измените «Устройство для установки загрузчика» на / dev / sdb и продолжите установку.
  2. После завершения установки не перезагружайтесь ! Выберите опцию «Продолжить тестирование».

Конфигурация после установки из действующей ОС

Этот бит очень важен, если вы хотите, чтобы ваша система загружалась! Я потратил довольно много времени на изучение этого, чтобы выяснить эти шаги после установки. В моем случае я действительно делал это, потому что хотел настроить размер / boot для / dev / sda, но вся эта работа должна перенести и на вашу ситуацию.

  1. В терминале введите следующее и найдите UUID / dev / sdb2. Запишите этот UUID на потом.
    • sudo blkid | grep LUKS
    • Важная строка на моей машине гласит /dev/sdb2: UUID="bd3b598d-88fc-476e-92bb-e4363c98f81d" TYPE="crypto_LUKS" PARTUUID="50d86889-02"
  2. Затем давайте снова подключим только что установленную систему, чтобы мы могли внести еще некоторые изменения.

    • sudo mount /dev/vg0/root /mnt
    • sudo mount /dev/vg0/home /mnt/home # это, вероятно, не нужно
    • sudo mount /dev/sdb1 /mnt/boot
    • sudo mount --bind /dev /mnt/dev # Я не совсем уверен, что это необходимо
    • sudo mount --bind /run/lvm /mnt/run/lvm
    • (Только если вы используете EFI): sudo mount /dev/sd*/your/efi/partition /mnt/boot/efi
  3. Теперь запустите, sudo chroot /mntчтобы получить доступ к установленной системе

  4. Из chroot смонтировать еще пару вещей
    • mount -t proc proc /proc
    • mount -t sysfs sys /sys
    • mount -t devpts devpts /dev/pts
  5. Настройка crypttab. Используя ваш любимый текстовый редактор, создайте файл / etc / crypttab и добавьте следующую строку, заменяя UUID UUID вашего диска.
    • CryptDisk UUID=bd3b598d-88fc-476e-92bb-e4363c98f81d none luks,discard
  6. Наконец, перестройте некоторые загрузочные файлы.
    • update-initramfs -k all -c
    • update-grub
  7. Перезагрузитесь, и система должна запросить пароль для расшифровки при загрузке!

Особая благодарность Мартину Еве , EGIDIO DOCILE , и ребятам из blog.botux.fr за опубликованные учебники. Вытащив кусочки из их постов и выполнив несколько дополнительных проблем, я наконец-то смог понять это.

Я пробовал это несколько раз и терпел неудачу снова и снова. Бит, который я должен был решить для себя на основе сообщений об ошибках, былsudo mount --bind /run/lvm /mnt/run/lvm

b_laoshi
источник
Большое спасибо, но я застрял в начале, где мне нужно настроить раздел luks. Не удается найти его в выводе fdisk -L.
Yvain
И когда я пытаюсь установить склеп я получаю и ошибка: не удалось удалить заголовки
Yvain
Я вижу, вы отметили это как решение. Вы работали? Если нет, какой инструмент вы использовали для создания ваших разделов? Сначала вы должны разбить диск с помощью такого инструмента, как Gparted или fdisk, создав раздел для / boot и один для шифрования (EFI потребует третий незашифрованный раздел). Я не использовал EFI в моей настройке. Только после того, как вы создали раздел для шифрования, вы можете запустить cryptsetup luksFormatкоманду для его шифрования. После создания / dev / sdb2 вы можете отформатировать его в файловой системе или нет. cryptsetupсотрет любую существующую файловую систему.
b_laoshi
1
@ Yvain - я считаю, что это неправильно. Sha1 больше не считается безопасным. Определенно следует использовать что-то более безопасное (например, предложенную опцию sha512).
Майк
1
+1 @b_laoshi Большое спасибо за ответ, он мне очень помогает :)
Туммала Дханви
3

Как сделать это несколько зашифрованных разделов и без LVM

Поскольку мой предыдущий ответ был очень длинным, я публикую второй ответ, который использует другой подход, если вы не хотите использовать LVM.

Вы можете создать несколько зашифрованных разделов и использовать сценарий decrypt_derived, так что вам нужно будет ввести пароль только один раз. Проверьте это сообщение в блоге для пошаговых инструкций. Автор использует ключевой файл, но сценария decrypt_derived LUKS также будет достаточно.

b_laoshi
источник
Я в конечном итоге unpluggin главного привода, помощь Установок доступны моему SD :) лол
Yvain
2

Один из способов выполнить задачу - использовать сетевой установщик Ubuntu https://www.ubuntu.com/download/alternative-downloads.

Это не графический установщик. Но он предлагает вам явный выбор диска после выбора полной установки диска с шифрованием.

ernstkl
источник
0

Это ответ для тех, кто постоянно сталкивается с этим вопросом, желая немного изменить стандартное разбиение Ubuntu. Например, удалите swapраздел и увеличьте /bootразмер. Я думаю, что многие люди не будут следовать инструкциям b_laoshi из-за количества необходимых шагов.

Поэтому для простого пользовательского разбиения с шифрованием я предлагаю использовать «Стереть диск и установить Ubuntu» с опцией «Зашифровать новую установку Ubuntu для безопасности». Что мы изменим, так это конфиг для этого разделения по умолчанию.

Эти конфиги содержатся в /lib/partman/recipes[-arch]/. Для себя я меняюсь /lib/partman/recipes-amd64-efi/30atomic. Чтобы получить 538M для efi, 1024M для /boot, а остальные для /с ext4, я отредактировал файл для

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

Обратите внимание, что как только вы выберете диск для удаления в программе установки, он предложит вам краткую информацию о разделении, чтобы вы могли проверить, сработал ли трюк, и получите ли вы желаемое разделение. Смотрите также /ubuntu//a/678074/47073 .

Yrogirg
источник