В этой статье мы кратко расскажем о блочном шифровании, настройке унифицированного ключа Linux (LUKS) и приведем инструкции по созданию зашифрованного блочного устройства в Fedora Linux.
- Блочное шифрования устройств
- Введение в LUKS
- Подготовка блочного устройства
- Форматирование зашифрованного устройства
- Создание сопоставления для предоставления доступа к расшифрованному контенту
- Создание файловых систем на подключенном устройстве
- Добавить информацию о сопоставлении в /etc/crypttab и /etc/fstab
- Резервные копии заголовков LUKS
Блочное шифрования устройств
Шифрование устройства используется для защиты данных на блочном устройстве путем его шифрования, а для расшифровки данных пользователь должен предоставить парольную фразу или ключ для доступа.
Это дает дополнительные механизмы безопасности, так как защищает содержимое устройства, даже если оно физически отсоединено от системы.
Введение в 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
# 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
См. также:
- Как интерактивно управлять парольными фразами LUKS
- Как стереть все слоты для ключей LUKS
- Как создать зашифрованный образ LUKS и смонтировать его при загрузке в CentOS / RHEL
- ? Как стереть заголовок LUKS