#️⃣ Как зашифровать диски с помощью LUKS в Fedora Linux

Мануал

В этой статье мы кратко расскажем о блочном шифровании, настройке унифицированного ключа Linux (LUKS) и приведем инструкции по созданию зашифрованного блочного устройства в Fedora Linux.

Блочное шифрования устройств

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

Это дает дополнительные механизмы безопасности, так как защищает содержимое устройства, даже если оно физически отсоединено от системы.

Введение в LUKS

LUKS (Linux Unified Key Setup) – это стандарт шифрования устройств в Linux, который работает путем установления формата данных на диске и политики управления парольной фразой / ключом.

Автоматически подключить ( примонтировать) зашифрованный том LUKS при запуске системы

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

LUKS использует подсистему сопоставления устройств ядра с модулем dm-crypt, чтобы обеспечить низкоуровневое сопоставление, которое содержит шифрование и дешифрование данных устройства.

Как стереть все слоты для ключей LUKS

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

Как интерактивно управлять парольными фразами LUKS

Подготовка блочного устройства

Следующие инструкции показывают шаги для создания и настройки зашифрованных блочных устройств после установки.

Установите пакет cryptsetup.

# dnf install cryptsetup-luks

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

# dd if=/dev/urandom of=/dev/sdb1	            [медленно с высококачественными случайными данными]
или
# badblocks -c 10240 -s -w -t random -v /dev/sdb1   [быстро с высококачественными случайными данными]

Предупреждение. Приведенные выше команды уничтожат все существующие данные на устройстве.

Форматирование зашифрованного устройства

Затем используйте инструмент командной строки cryptsetup для форматирования устройства как устройства с шифрованием dm-crypt / LUKS.

# cryptsetup luksFormat /dev/sdb1

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

Чтобы проверить, была ли операция успешной, выполните следующую команду.

# cryptsetup isLuks /dev/sdb1 && echo Success

Вы можете просмотреть сводную информацию о шифровании устройства.

# cryptsetup luksDump /dev/sdb1

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

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

Мы создадим маппинг, используя ядро device-mapper.

Рекомендуется создать значимое имя для этого сопоставления, например, luk-uuid (где <uuid> заменяется на LUKS UUID устройства (универсальный уникальный идентификатор).

Чтобы получить UUID вашего зашифрованного устройства, выполните следующую команду.

# cryptsetup luksUUID /dev/sdb1

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

# cryptsetup luksOpen /dev/sdb1 luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
Если команда выполнена успешно, узел устройства называется /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c, который представляет дешифрованное устройство.
Блочное устройство, которое было только что создано, может считываться и записываться, как любое другое незашифрованное блочное устройство.
Вы можете увидеть некоторую информацию о подключенном устройстве, выполнив следующую команду.
# dmsetup info /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

Создание файловых систем на подключенном устройстве

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

Чтобы создать файловую систему ext4 на подключенном устройстве, выполните следующую команду.

# mkfs.ext4 /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

Чтобы смонтировать вышеуказанную файловую систему, создайте для нее точку монтирования, например, /mnt/encrypted-device, а затем смонтируйте ее следующим образом.

# mkdir -p /mnt/encrypted-device
# mount /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c /mnt/encrypted-device/

Добавить информацию о сопоставлении в /etc/crypttab и /etc/fstab

Далее нам нужно настроить систему на автоматическую настройку сопоставления для устройства, а также смонтировать его во время загрузки.

Вы должны добавить информацию о сопоставлении в файл /etc/crypttab в следующем формате.

luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c   none

в вышеуказанном формате:

  • luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c – это имя сопоставления
  • UUID = 59f2b688-526d-45c7-8f0a-1ac4555d1d7c – это имя устройства

Сохраните файл и закройте его.

Затем добавьте следующую запись в /etc/fstab для автоматического подключения  устройства при загрузке системы.

/dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  /mnt/encrypted-device  ext4 0 0

Сохраните файл и закройте его.

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

# systemctl daemon-reload

Резервные копии заголовков LUKS

Наконец, мы расскажем, как сделать резервную копию заголовков LUKS.

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

Это действие позволяет восстановить данные.

Для резервного копирования заголовков LUKS.

# mkdir /root/backups  
# cryptsetup luksHeaderBackup --header-backup-file luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

И восстановить заголовки LUKS:

# cryptsetup luksHeaderRestore --header-backup-file /root/backups/luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

См. также:

 

Добавить комментарий