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

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

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

5 ответов

Решение

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

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

Следующий вопрос: каковы плюсы и минусы полного диска по сравнению с Just / Home?

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

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

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

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

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

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

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

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

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

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

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

Обзор высокого уровня:

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

Краткое руководство взято из документации 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. Уметь загружаться

Жратва

  1. Загрузитесь в Ubuntu с "живого компакт-диска"
  2. Расшифровать раздел
  3. Переключение Chroot в расшифрованную систему (если вы не знаете, как это может помочь: https://superuser.com/questions/111152/whats-the-proper-way-to-prepare-chroot-to-recover-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

Альтернатива

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

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

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

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

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

КОНТУР

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

ПОДРОБНОСТИ

1 - загрузка с живого linux USB-диска - удобно включить постоянство.

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

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-

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

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

(б) перед звонком initramfs, электрический ток vmlinuz... Файл, используемый в исходном Linux, должен присутствовать в новом корневом каталоге. Если это не так, найдите его и разместите там.

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

GRUB_DISABLE_OS_PROBER=true

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

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

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

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

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

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

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

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

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

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