Включить шифрование диска после установки

Я бегу 13.10 Saucy. Если я не включил шифрование диска во время установки, есть ли способ включить его постфактум?

Я нашел этот , в котором говорится, что шифрование должно происходить во время установки, но это также относится к Fedora. Я легко могу загрузить живой диск, если есть какой-то способ сделать это оттуда.

85
задан 2 November 2013 в 00:52

6 ответов

Если вы хотите включить шифрование вашей домашней папки, вам необходимо установить и использовать следующие пакеты: ecryptfs-utils и cryptsetup . Также вам понадобится еще одна учетная запись пользователя с правами администратора (sudo). Полная документация находится здесь:

Если вы хотите включить полное шифрование диска после установки, краткий ответ на данный момент, вероятно, такой: нет, вы не можете . В любом случае, если вас это интересует, ваш вопрос дублирует:

70
ответ дан 2 November 2013 в 00:52

Ну, вы можете сделать резервную копию всех важных каталогов и установленного программного обеспечения. Убедитесь, что ваш 13.10 полностью обновлен, чтобы избежать конфликтов версий. Обычно выполняется резервное копирование:

После этого вы переустановите система только теперь зашифрована. Обновите его в полной мере. Затем переместите резервную копию в зашифрованную систему и установите все программное обеспечение из предыдущей версии.

Только убедитесь, что не перезаписали файлы, важные для шифрования, при резервном копировании (например, / etc / fstab , / etc / cryptab , некоторые вещи, связанные с grub и некоторые вещи в / boot не следует заменять файлами резервных копий).

4
ответ дан 2 November 2013 в 00:52

Простой ответ: Нет.

Сложный ответ:

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

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

См. Соответствующий вопрос Как зашифровать весь диск после установки?

1
ответ дан 2 November 2013 в 00:52

Последующий вопрос: каковы преимущества и недостатки полного диска по сравнению с просто / home?

Шифрование в / home выполняется с использованием файловой системы пользовательского пространства под названием ecryptfs . Это очень хорошо сделано и тесно связано с системой аутентификации по умолчанию, так что у вас не будет недостатков в удобстве использования: когда вы входите в свою учетную запись (либо из удаленной оболочки, либо с экрана входа по умолчанию), ваш пароль используется для распаковки безопасного ключа ,который затем используется для шифрования / дешифрования ваших файлов в вашем домашнем каталоге на лету (смонтированная файловая система будет находиться непосредственно в / home / username ). При выходе из системы / home / username отключается, и только зашифрованные файлы остаются видимыми в системе (обычно в /home/.ecryptfs/username/.Private/ ). Они выглядят как кучка перемешанных / случайных файлов, поскольку имена файлов также зашифрованы. Единственная утечка информации: размер файла, временные метки и количество файлов (при полном шифровании диска они также скрыты).

Если ваша система предназначена для совместного использования несколькими пользователями, это очень полезная функция, даже если вы решите добавить полное шифрование диска вместе с этим: безопасность полного шифрования диска отключена, когда машина включена и работает, в то время как домашнее (ecryptfs) шифрование включено, пока вы вышли из системы.

Итак, полное шифрование диска и домашнее шифрование не обязательно являются взаимоисключающими.

Вот список возможных настроек в зависимости от различных требований безопасности:

  • ТОЛЬКО ПОЛНОЕ ШИФРОВАНИЕ ДИСКА: Если ваш компьютер и ваш машина может справиться с накладными расходами на полное шифрование диска (все современные настольные компьютеры могут сделать это незаметно для пользователя, нетбуки и старые ноутбуки не так много) вы можете использовать полное шифрование диска и положить домой в том же раздел в качестве ОС (/).
  • ПОЛНОЕ ШИФРОВАНИЕ ДИСКА И ШИФРОВАНИЕ HOME ECRYPTFS : если вы беспокоитесь о том, что ваши личные данные будут считываться, пока ваш компьютер или вы делите свой компьютер с другими пользователями, тогда у вас может быть дом в другой раздел из / и используйте ecryptfs вместе с полным шифрованием диска (то есть шифрованием / через LUKS)
  • ТОЛЬКО ШИФРОВАНИЕ HOME ECRYPTFS : если вы не слишком беспокоитесь о том, что кто-то может вмешаться в вашу систему, пока вас нет по-прежнему хотите сохранить свои личные данные в безопасности, тогда пропустите полное шифрование диска и просто используйте ecryptfs (шифрование дома). Дополнительным преимуществом этого сценария является то, что очень легко настроить даже после установки Ubuntu, просто используя ecryptfs-migrate-home . Кроме того, это была установка Ubuntu по умолчанию, прежде чем она изменилась в нескольких выпусках назад, добавив возможность полного шифрования диска. Поскольку большинство современных настольных компьютеров могут без труда обрабатывать полное шифрование диска и добавляет тонкий уровень защиты от внедрения кода в автономном режиме, в программу установки было добавлено полное шифрование диска. Однако обратите внимание, что для большинства пользователей простого шифрования своего дома с помощью ecryptfs будет достаточно для их нужд: держать своих друзей и обычных воров ноутбуков от их личных данных. Кроме того, если вы были единственной целью организации, располагающей нужными средствами, полное шифрование диска или просто домашнее шифрование не будет иметь большого значения, если вы не установили множество других параноидальных действий (например, сохранение ядра в отдельном флеш-накопителе, который всегда при вас; постоянная проверка на взлом оборудования / кейлоггеров и т. д.)

Если я не включил шифрование диска во время установки, есть ли способ включить его постфактум?

Да, и будет проще, если вы в настоящее время используете LVM и в вашей системе достаточно места для копирования всех незашифрованных системных файлов в зашифрованный раздел LUKS. Я не буду вдаваться в подробности в данный момент, потому что не знаю, используете ли вы LVM, и не хотите ли вы сейчас просто использовать ecrypfs и пропустить хлопоты с полным шифрованием диска до следующей новой установки.

27
ответ дан 2 November 2013 в 00:52

На работающем Ubuntu 16.04 мне удалось при шифровании корневого раздела после установки, причем корневой раздел содержит все, кроме / boot. Ставлю / загружаюсь на отдельный съемный usb. Примечательно, что я сделал это до обновления до Ubuntu 18, и обновление работало нормально с версией зашифрованного диска.

Шифрование не было выполнено «на месте», что меня устраивало, потому что я не хотел перезаписывать рабочую версию во всяком случае, пока новая установка не заработает.

Выполнить правильную процедуру чрезвычайно просто и быстро. (Хотя выяснение правильной процедуры заняло очень много времени, потому что я последовал некоторым ложным рекомендациям.)

КОНТРОЛЬ

  1. Создайте live linux USB-диск - удобно иметь включенное сохранение. Загрузитесь с этого активного USB-диска.
  2. Создайте зашифрованную группу томов luks на пустом разделе. (В моем случае он был на том же диске, что и исходный Linux, но это мог быть другой диск.) Создайте / (root) и поменяйте местами логические тома на этом зашифрованном разделе. Они будут действовать как виртуальные разделы в том, что касается скопированного Linux.
  3. Скопируйте файлы из старого корня в новый корень.
  4. Настройте и разделите другой USB-накопитель, который будет действовать как съемный загрузочный диск.
  5. Настройте несколько файлов в новом корне, сделайте некоторые чудеса и войдите в chroot в новый корень, а затем установите grub на загрузочный диск из новой корневой среды chroot.

ДЕТАЛИ

1 - Загрузитесь с живым Linux USB-диск - удобно иметь включенное сохранение.

Установил Ubuntu 16 на USB с unetbootin. Графический пользовательский интерфейс позволяет указать "постоянство", но также требуется еще один шаг, чтобы заставить постоянство работать - измените /boot/grub/grub.cfg , чтобы добавить --- постоянный следующим образом:

menuentry "Try Ubuntu without installing" {
    set gfxpayload=keep
    linux   /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- persistent
    initrd  /casper/initrd
}

Загрузитесь с действующим USB.

2- Создайте зашифрованную группу томов luks на пустом разделе. Создайте / (root) и поменяйте местами логические тома на этом зашифрованном разделе.

Предположим, что неиспользуемый раздел, который будет зашифрован, - это / dev / nvme0n1p4 .

Необязательно , если у вас есть старые данные на раздел, который вы хотите скрыть перед шифрованием и форматированием, вы можете произвольно стереть раздел. См. Обсуждение здесь .

dd if=/dev/urandom of=/dev/nvme0n1p4 bs=4096 status=progress

Настройте шифрование.

cryptsetup -y -v luksFormat /dev/nvme0n1p4

Вам будет предложено установить пароль.

cryptsetup luksOpen /dev/nvme0n1p4 crypt1

Вам будет предложено ввести пароль. Обратите внимание, что crypt1 - произвольное имя, назначенное пользователем. Теперь создайте тома и формат.

pvcreate /dev/mapper/crypt1
vgcreate crypt1-vg /dev/mapper/crypt1

lvcreate -L 8G crypt1-vg -n swap
mkswap /dev/crypt1-vg/swap

lvcreate -l 100%FREE crypt1-vg -n root
mkfs.ext4 /dev/crypt1-vg/root

Используйте эти утилиты для просмотра томов и понимания иерархии.

pvscan
vgscan
lvscan
ls -l /dev/mapper
ls -l /dev/crypt1

3- Скопируйте файлы из старого корня в новый корень

mkdir /tmp/old-root 
mount /dev/ubuntu-vg/root /tmp/old-root/
mkdir /tmp/new-root
mount /dev/crypt1-vg/root /tmp/new-root/
cp -a /tmp/old-root/. /tmp/new-root/

umount /tmp/old-root
umount /tmp/new-root

cp -a ... копирует в режиме архива, сохраняя все режимы файлов и флаги.

4- Настройте и разделите другой USB-накопитель, чтобы он работал как съемный загрузочный диск.

Для этого я использовал gparted. Настройте два раздела. Первый раздел - vfat , второй ext2 . Каждый был по 512 МБ, вы могли бы сэкономить меньше. Предположим, устройство / dev / sdf .

# The first partition: (will be /dev/sdf1)
Free space preceding (leave default value)
New size 512 MiB
Free space following (leave default value)
Create as: Primary Partition
Partition Name: (leave)
File System: fat32
Label: (leave)

# The second partition: (will be /dev/sdf2)
Free space preceding (leave default value)
New size 512 MiB
Free space following (leave default value)
Create as: Primary Partition
Partition Name: (leave)
File System: ext4
Label: (leave) 

5- Настройте некоторые файлы в новом корне, сделайте немного волшебства,и chroot в новый корень, а затем установите grub на загрузочный диск из новой корневой среды chroot.

Найдите несколько UUID для дальнейшего использования. Обратите внимание на результаты следующих команд:

blkid /dev/sdf1
blkid /dev/sdf2
blkid /dev/nvme0n1p4

Смонтируйте корневой раздел и загрузочные разделы

sudo mount /dev/mapper/crypt1--vg-root /mnt
sudo mount /dev/sdf2 /mnt/boot
sudo mount /dev/sdf1 /mnt/boot/efi

Настройте файл / mnt / etc / fstab

/dev/mapper/crypt1--vg-root /               ext4    errors=remount-ro 0       1
/dev/mapper/crypt1--vg-swap none    swap    sw              0       0
UUID=[uuid of /dev/sdf2] /boot           ext2    defaults        0       2
UUID=[uuid of /dev/sdf1]  /boot/efi       vfat    umask=0077      0       1

, где "[uuid of ...]" - это просто буква Комбинация -число-дефис.

Создайте файл / mnt / etc / cryptab

# <target name> <source device>     <key file>  <options>
crypt1 UUID=[uuid of /dev/nvme0n1p4] none luks,discard,lvm=crypt1--vg-root

Некоторая магия, необходимая для входа в среду корневого каталога:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
chroot /mnt

Теперь настройте загрузочный USB-диск с помощью grub :

apt install --reinstall grub-efi-amd64
grub-install --efi-directory=/boot/efi --boot-directory=/boot --removable
update-initramfs -k all -c
update-grub

Теперь у вас должна быть возможность перезагрузиться и загрузиться, используя только что созданный загрузочный USB-диск.

Toubleshooting-

(a) Сеть должна быть подключена для apt install - -reinstall команда grub-efi-amd64 . Если сеть подключена, но DNS не работает, попробуйте

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null

(b) Перед вызовом initramfs текущий vmlinuz ... файл, используемый в исходном Linux, должен находиться в новом корневом каталоге. Если это не так, найдите его и поместите туда.

(c) Команда grub-install по умолчанию будет искать все другие диски Linux, которые она может найти, даже если они не смонтируйте ed и поместите их в меню загрузки на новом загрузочном USB. Обычно это нежелательно, поэтому этого можно избежать, добавив эту строку в /boot/default/grub.cfg :

GRUB_DISABLE_OS_PROBER=true

ПРИМЕЧАНИЕ: Текстовый файл с ключом шифрования можно добавить на съемный загрузочный USB-накопитель.

3
ответ дан 2 November 2013 в 00:52

Поскольку это все еще лучший результат в Google, я хочу обновить его, добавив новую информацию. Как пользователь Фредерик Норд упомянул: Есть ли способ выполнить полное шифрование диска после установки?

Существует инструмент под названием luksipc (Luks in place encryption). После дальнейшего исследования я нашел самую последнюю документацию и предупреждение от автор этого инструмента:

luksipc был создан до того, как была доступна какая-либо альтернатива со стороны dm-crypt / cryptsetup / LUKS. Это уже не так. Поэтому я рекомендую перейти на cryptsetup-reencrypt, который должным образом поддерживается и тестируется в восходящем направлении, даже когда формат заголовка LUKS изменяется (насколько мне известно, это происходило по крайней мере дважды и может привести к катастрофическому сбою luksipc, т. Е. Уничтожению всех ваших данных. в худшем случае).

Так что cryptsetup-reencrypt кажется рекомендуемым способом.

Общий обзор:

  1. Предлагаемый инструмент может работать только с разделами, которые не используются поэтому используйте live cd / usb
  2. . Управляйте разделами, чтобы в нужном месте было достаточно места для заголовков LUKS.
  3. Используйте cryptsetup-reencrypt для шифрования раздела
  4. Повторите для каждого раздела (кроме boot)

Краткое руководство взято из Документация Ubuntu :

   Add LUKS encryption to not yet encrypted device 

          First, be sure you have space added to disk.  Or alternatively shrink filesystem in
          advance.
          Here we need 4096 512-bytes sectors (enough for 2x128 bit key).
          fdisk -u /dev/sdb # move sdb1 partition end + 4096 sectors

          cryptsetup-reencrypt /dev/sdb1 --new --reduce-device-size 4096

Подробное руководство взято из Arch Wiki - Шифрование незашифрованной файловой системы :

umount /mnt # As mentioned this only works on partitions/devices which aren't mounted. You can skip this if you used a live cd and didn't mount this partition yet - but be sure to check
e2fsck -f /dev/sdaX # check that the file system is ok -f == force validation even if it looks ok
resize2fs -M /dev/sdaX # Shrink the filesystem to the minimum size.
cryptsetup-reencrypt /dev/sdaX --new  --reduce-device-size 16M # Encrypt the unencrypted partition
cryptsetup open /dev/sdaX recrypt # Open the encrypted partition so we can give it back the disk space we removed by using the -M option on resize2fs
resize2fs /dev/mapper/recrypt # enlarge partition again
mount /dev/mapper/recrypt /mnt # Mount if you want to access data

Вопрос: Зачем уменьшаться до минимального размера?

Ответ: Предположение -это сделано потому, что размер заголовка LUKS может измениться в будущем, поэтому эти шаги являются общими и не устареют. Размер заголовка изменился с LUKSv1 = 2 МБ на Luksv2 = 16 МБ в прошлом

Руководство по устранению неполадок - / boot зашифрован, и я не могу загрузиться

Обновление 12/2020

Так что у меня получилось, что у меня был только 1 раздел, в который входил / boot. После этого я больше не мог загружаться в свою систему. Если вы столкнетесь с теми же проблемами, это руководство может помочь вернуть работающую систему.

Общий обзор

  1. Убедитесь, что у вас есть необходимое программное обеспечение для дешифрования в grub и initramfs.
  2. Знайте, как загрузиться

] Grub

  1. Загрузитесь в Ubuntu с "live cd"
  2. Расшифруйте раздел
  3. Переключите Chroot в расшифрованную систему (если вы не знаете, как это может помочь: https://superuser.com / questions / 111152 / whats-the-right-way-to-prepare-chroot-to-restore-a-broken-linux-installation )
  4. В среде chroot
root@ubuntu:~# echo "GRUB_ENABLE_CRYPTODISK=y" >>/etc/default/grub
root@ubuntu:~# update-grub
root@ubuntu:~# grub-install /dev/sda???
  1. Оставайтесь в chroot!

Initramfs

  1. Создайте hoock-скрипт initramfs, который копирует cryptestup через copy-exec
  2. update-initramfs -u -k all

Как загрузить

  1. Вы получаете пустое меню grub, нажимаете "c" командную строку.
  2. Выполните следующее:
insmod luks # load kernel module
cryptomount hd0,gpt6 # decrypt your encrypted partition
configfile (crypto0)/boot/grub/grub.cfg # tell grub the path to the now unecrypted config file
  1. Теперь вы должны получить меню grub с соответствующими загрузочными записями.
  2. После выбора «Ubuntu» вы должны войти в initramfs.
  3. Теперь выполните следующее
cryptsetup luksOpen /dev/sda6 system
exit

Альтернатива [1 2301] Может быть, подумайте об использовании этого руководства ниже. Кажется, он решает проблемы, упомянутые выше. Хотя я не пробовал, поэтому не могу быть уверен, что это работает. Но, возможно, стоит посмотреть. https://cryptsetup-team.pages.debian.net/cryptsetup/encrypted-boot.html

P.S. Руководство по устранению неполадок было написано по памяти, поэтому могут быть некоторые недостающие части. Но я все равно хотел написать это, так как это все еще может помочь некоторым людям. Однако, если вы обнаружите что-то, чего не хватает / неточно, сообщите мне в комментариях, чтобы я мог обновить руководство, спасибо.

8
ответ дан 5 January 2021 в 23:17

Другие вопросы по тегам:

Похожие вопросы: