VK Cloud logo

Шифрование диска

Данная инструкция поможет настроить шифрование данных на виртуальной машине с возможностью ввода ключевой фразы при загрузке системы. Это позволит обеспечить больший уровень безопасности.

VK Cloud не несет ответственности за корректную работу стороннего ПО. Данная статья приведена для примера.

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

Далее разберем пример шифрования диска с данными на CentOS 7. Сам диск /dev/vdb примонтирован в /volumes/disk1 при помощи dm-crypt.

  1. Устанавливаем необходимые утилиты:
yum install -y cryptsetup cryptsetup-reencrypt
  1. Останавливаем все процессы, использующие данный диск:
1lsof /volumes/disk1
2systemctl stop XXX
3systemctl stop YYY
  1. Для надежности проверяем файловую систему:
1e2fsck -f  /dev/vdb
2e2fsck 1.42.9 (28-Dec-2013)
3Pass 1: Checking inodes, blocks, and sizes
4Pass 2: Checking directory structure
5Pass 3: Checking directory connectivity
6Pass 4: Checking reference counts
7Pass 5: Checking group summary information
8/dev/vdb: 88/655360 files (3.4% non-contiguous), 60910/2621440 blocks
  1. Уменьшаем файловую систему до минимально возможного размера:
1resize2fs -M /dev/vdb
2
3resize2fs 1.42.9 (28-Dec-2013)
4Resizing the filesystem on /dev/vdb to 24971 (4k) blocks.
5The filesystem on /dev/vdb is now 24971 blocks long.
  1. Используем утилиту cryptsetup-reencrypt для перешифрования устройства:
1cryptsetup-reencrypt /dev/vdb --new  --reduce-device-size 4096S
2Enter new passphrase:
3Verify passphrase:
4Progress:  20.6%, ETA 00:33, 2112 MiB written, speed 245.6 MiB/s

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

  1. Проверяем работу с  зашифрованным диском:
1cryptsetup open /dev/vdb vdb_crypt
2Enter passphrase for /dev/vdb:
  1. Расширяем файловую систему до размера диска:
resize2fs /dev/mapper/vdb_crypt
  1. Изменяем имя устройства для монтирования:
sed 's#/dev/vdb#/dev/mapper/vdb_crypt#' -i /etc/fstab
  1. Проверяем монтирование файловой системы:
mount /volumes/disk1
  1. Для автоматического монтирования при загрузке системы добавляем информацию о зашифрованном разделе в /etc/crypttab:
1UUID=$(blkid -s UUID -o value  /dev/vdb)
2echo "vdb_crypt UUID=${UUID} none luks,discard" >> /etc/crypttab

Ключевая фраза для расшифровки диска (passphrase) будет запрашиваться при загрузке системы. Ввести кодовую фразу можно при помощи VNC-доступа в консоль виртуальной машины.

Доступ в VNC можно получить через интерфейс панели VK Cloud:

  1. Раздел «Облачные вычисления» → «Виртуальные машины» → выбрать инстанс и перейти на вкладку «Консоль».

Для корректной работы консоли виртуальной машины через VNC необходимо изменить настройки загрузчика grub, удалив строку "console=ttyS0,115200" из параметров загрузки:

1sed 's#console=ttyS0,115200 ##' /etc/default/grub
2grub2-mkconfig -o /boot/grub2/grub.cfg
  1. Перезагружаем машину. При загрузке будет запрошена ключевая фраза для расшифровки диска.

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