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

Linux поддерживает зашифрованные тома с luks.

Когда во время установки устанавливается зашифрованный том «luks», том уже настроен.

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

Такой том не доступен напрямую во время или после запуска системы.

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

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

Создать ключ для разблокировки тома

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

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

Создать ключ для разблокировки тома

Luks шифрование поддерживает несколько ключей.

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

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

$ dd if=/dev/urandom of=/etc/luks-keys/disk_secret_key bs=512 count=8
Этот ключевой файл необходимо хранить в секрете, поскольку он позволяет разблокировать зашифрованный том. Я предлагаю хранить этот ключ на уже зашифрованном системном разделе / томе, чтобы защитить его. Хранение этого ключа в незашифрованном / незащищенном месте сделает шифрование бесполезным.
С помощью следующей команды созданный файл ключей добавляется как ключ к зашифрованному тому luks.
/Dev/sdb1 следует заменить зашифрованным разделом, уже настроенным.
$ sudo cryptsetup -v luksAddKey /dev/sdb1 /etc/luks-keys/disk_secret_key
Enter any passphrase: passphrase
Key slot 0 unlocked.
Command successful.

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

Вывод (-v для подробного) показывает, что была введена фраза-пароль для слота 0.

Используя действие «luksDump», можно показать подробности зашифрованного тома.

На данный момент интересны назначенные ключи.

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

Быстрый «grep» показывает ключевые слоты.

В начале только один ключ назначается в ключевом слоте 0.

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

$ sudo cryptsetup luksDump /dev/sdb1 | grep "Key Slot"
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

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

Эта команда указывает команде cryptsetup открыть том luks (действие «luksOpen») на устройстве «/dev/sdb1» и отображает его как sdb1_crypt.

Опция в конце (–key-file =…) указывает файл ключа, созданный и добавленный на предыдущих шагах.

$ sudo cryptsetup -v luksOpen /dev/sdb1 sdb1_crypt --key-file=/etc/luks-keys/disk_secret_key
Key slot 1 unlocked.
Command successful.

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

Чтобы снова закрыть зашифрованный том, можно выполнить действие «luksClose».

$ sudo cryptsetup -v luksClose sdb1_crypt
Command successful.

Автоматически открыть зашифрованный том

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

Операционная система Linux предоставляет файл «/etc/crypttab» для автоматического открытия зашифрованных томов.

Для настройки зашифрованного тома в crypttab необходим UUID (уникальный идентификатор) тома.

Этот идентификатор можно получить снова с помощью действия «luksDump».

На этот раз вывод фильтруется для «UUID» через grep.

$ sudo cryptsetup luksDump /dev/sdb1 | grep "UUID"
UUID:          	2a2375bf-2262-413c-a6a8-fbeb14659c85

Используя UUID и имя файла ключа, том можно добавить в crypttab.

Отредактируйте файл конфигурации /etc/crypttab и добавьте зашифрованный том в следующем формате.

sdb1_crypt UUID=2a2375bf-2262-413c-a6a8-fbeb14659c85 /etc/luks-keys/disk_secret_key luks 

Первое поле — это имя сопоставления для открытого тома.

Это имя сопоставления будет найдено в «/dev/mapper/…» и будет использовано позже для монтирования тома.
Второе поле — это UUID, как показано в выводе liksDump.
В третьем поле указывается ключевой файл с абсолютным путем.
Четвертое поле содержит дополнительные параметры cryptsetup. В этом случае опция «luks», как описано в man-странице cryptsetup зашифрованный том.

После добавления зашифрованного тома в crypttab он может выглядеть так в системе с уже зашифрованным корневым разделом (sda5_crypt).

$ sudo cat /etc/crypttab 
sda5_crypt UUID=594f01cd-bfe1-400b-8af3-f770af9317b2 none luks,discard
sdb1_crypt UUID=2a2375bf-2262-413c-a6a8-fbeb14659c85 /etc/luks-keys/disk_secret_key luks 

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

Эта команда выполнит сконфигурированную запись crypttab, обозначенную именем сопоставления «sdb1_crypt».

$ sudo cryptdisks_start sdb1_crypt
 * Starting crypto disk...
 * sdb1_crypt (starting)..
 * sdb1_crypt (started)...                 [ OK ]

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

Автоматически примонтировать зашифрованный том

Монтирование открытого тома luks происходит не в crypttab, а в файле /etc/fstab, как и для любого другого тома.

На этом этапе имя сопоставления используется для адресации открытого тома luks.

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

/dev/mapper/sdb1_crypt /media/gerhard/Daten ext4    defaults   0       2
  • Первое поле — это имя сопоставления открытого тома luks. Это должно быть обеспечено абсолютным путем.
  • Второе поле — это точка монтирования, в которой должен быть смонтирован том.
  • В третьем поле указывается тип файловой системы. В примере предполагается, что файловая система ext4 была создана на зашифрованном томе.
  • В четвертом поле перечислены параметры монтирования, где в примере используются параметры «по умолчанию».
  • В последних двух полях указывается ссылка на дамп файловой системы (пятое поле) и порядок проверки файловой системы (шестое поле). Подробности об этих параметрах можно найти на справочной странице fstab (5).

Как обычно, проверьте конфигурацию, перезапустив операционную систему.

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

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40