Держим заголовки 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 диск, открываемый паролем с клавиатуры при загрузке системы.
Оригинальный пост на SecOps.it Blog • Держим заголовки cryptsetup отдельно от блочного устройства