Тримаємо заголовки cryptsetup окремо від блочного пристрою

Окреме зберігання заголовків cryptsetup дає деякі переваги, по-перше, без них, сам блочний пристрій - це набір ентропії, по якому не можна визначити тип розділу / шифрування / пристрою.
По-друге, це файл малого розміру, який просто бекапити не прибігаючи до dd.

Проста шпаргалка


Генеруємо пароль, записуємо.

1
cat /dev/urandom | tr -dc '[[:print:]]' | fold -w 256 | sed 's/ //g' | fold -w128 | head -n 1

Генеруємо header и ключ

1
2
sync ; dd if=/dev/urandom of=/secret/and/secure/dir/HEADER bs=1M count=4 ; sync
sync ; dd if=/dev/urandom of=/secret/and/secure/dir/key bs=1M count=4 ; sync

Створюємо LUKS використовуючи HEADER

1
2
cryptsetup --verbose --cipher "aes-xts-essiv:sha256" --key-size=256 --hash=sha256 --iter-time=3000 --verify-passphrase luksFormat /dev/disk/by-id/ata-HGST_HTS723310A7E990_JR10006JH7FX8A-part1 --header /secret/and/secure/dir/HEADER --align-payload=8192
# вводимо пароль

Перевіряємо та додаємо ключ

1
2
3
4
5
6
7
8
9
10
# перевіряємо створений пристрій, знову вводимо пароль
cryptsetup luksOpen /dev/disk/by-id/ata-HGST_HTS723310A7E990_JR10006JH7FX8A-part1 --header /secret/and/secure/dir/HEADER LUKSDEV
cryptsetup luksClose LUKSDEV

# додаємо ключ
cryptsetup luksAddKey /secret/and/secure/dir/HEADER /secret/and/secure/dir/key
# відкриваємо без пароля, використовуючи лише ключ
cryptsetup luksOpen /dev/disk/by-id/ata-HGST_HTS723310A7E990_JR10006JH7FX8A-part1 --header /secret/and/secure/dir/HEADER --key-file /secret/and/secure/dir/key LUKSDEV
mkfs.ext4 -m1 -E lazy_itable_init=0,lazy_journal_init=0 /dev/mapper/LUKSDEV
mount -onoatime,nodiratime /dev/mapper/LUKSDEV /mnt/

Монтуємо під час завантаження системи


nano /etc/crypttab

1
LUKSDEV    /dev/disk/by-id/ata-HGST_HTS723310A7E990_JR10006JH7FX8A-part1    /secret/and/secure/dir/key    luks,discard,header=/secret/and/secure/dir/HEADER:UUID=77738506-35d9-4820-923d-b488085cb311


Де 77738506-35d9-4820-923d-b488085cb311 - uuid розділу, на якому розташовується директорія /secret/and/secure/dir/ з ключем та HEADER, і яка монтується ДО цього пристрою.
Як правило, це LUKS диск, який відкривається паролем з клавіатури під час завантаження системи.