Поиск по сайту:

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


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

Блокировать шифрование устройства

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

Введение в ЛУКС

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

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

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

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

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

dnf install cryptsetup-luks

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

dd if=/dev/urandom of=/dev/sdb1	           [slow with high quality random data ]
OR
badblocks -c 10240 -s -w -t random -v /dev/sdb1  [fast with high quality random data]

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

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

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

cryptsetup luksFormat /dev/sdb1

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

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

cryptsetup isLuks /dev/sdb1 && echo Success

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

cryptsetup luksDump /dev/sdb1

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

В этом разделе мы настроим доступ к расшифрованному содержимому зашифрованного устройства. Мы создадим сопоставление с помощью устройства отображения устройств ядра. Рекомендуется создать осмысленное имя для этого сопоставления, например 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

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

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

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 

Вот и все! В этой статье мы объяснили, как шифровать блочные устройства с помощью LUKS в дистрибутиве Fedora Linux. Если у вас есть какие-либо вопросы или комментарии по этой теме или руководству, воспользуйтесь формой обратной связи ниже, чтобы связаться с нами.