Зашифрована власна установка


21

На моєму комп’ютері працює Ubuntu. Я хочу встановити Ubuntu на інший носій. Я хочу ввімкнути шифрування, але оскільки вибір за замовчуванням інсталятора ubuntu (стирання / поряд з / і т. Д.) Стосується лише диска за замовчуванням, я повинен вибрати "щось інше" і створити розділи на іншому диску вручну, я створю ~ Частина 128 Мб для завантаження, то я втрачаю, якщо я зашифрований розділ з іншим простором, я не можу розділити його, тому у мене немає підкачки; якщо замість цього я створю два зашифровані розділи, це не здається правильним, оскільки він хоче встановити два різні паролі ...

Як я можу встановити своп? (Під час встановлення або після нього).


Дивіться також askubuntu.com/questions/293028/…
Flimm

Відповіді:


29

Як це досягти за допомогою LVM та одного зашифрованого розділу

Увага

Перш за все, 128M занадто мало для завантаження! Я використовую 1G. В іншому випадку, що може статися, це те, що ви можете забути видалити старі ядра, і / завантаження заповниться, і вам доведеться боротися з болем, намагаючись видалити старі ядра з системи, щоб ви могли отримати 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. Налаштування ЛУКСів
    • 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 on / 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


Велике спасибі, але я застряг на початку, де мені потрібно налаштувати розділ Luks. Неможливо знайти його у вихідному файлі fdisk.
Івен

І коли я намагаюся встановити крипту, я отримую помилку: не вдалося видалити заголовки
Yvain

Я бачу, ви позначили це як рішення. Ви працювали? Якщо ні, то який інструмент ви використовували для створення своїх розділів? Спершу ви повинні розділити диск за допомогою інструменту типу Gparted або fdisk, зробивши розділ для / boot та один для шифрування (EFI потребує третього незашифрованого розділу). Я не використовував EFI в моїй настройці. Тільки після того, як ви створили розділ для шифрування, ви зможете фактично запустити cryptsetup luksFormatкоманду для його шифрування. Створюючи / dev / sdb2, ви можете відформатувати його за допомогою файлової системи чи ні. cryptsetupвидалить будь-яку існуючу файлову систему.
b_laoshi

1
@Yvain - Я вважаю, що це неправильно. Sha1 вже не вважається безпечним. Що-небудь більш безпечне (наприклад, пропонований варіант sha512) обов'язково слід використовувати.
Майк

1
+1 @b_laoshi Дякую за відповідь, мені це дуже допомагає :)
Tummala Dhanvi

3

Як виконати цю множину зашифрованих розділів і не LVM

Оскільки моя попередня відповідь була такою тривалою, я публікую другу відповідь, яка використовує інший підхід, якщо ви не хочете використовувати LVM.

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


Я відключив основний диск, допоміжні встановлення доступні для мого sd :) lol
Yvain

2

Один із способів зробити завдання - використовувати інсталятор мережі ubuntu https://www.ubuntu.com/download/alternative-downloads

Це не графічний інсталятор. Але він пропонує вам чіткий вибір диска після вибору повної установки диска з шифруванням.


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 .

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