Product SiteDocumentation Site

Глава 69. Управление шифрованными разделами

Примечание

Зашифрованный раздел может быть создан, например, при установке системы см. «Создание шифрованных разделов»
В LUKS для одного зашифрованного раздела используются восемь слотов, в каждом из которых может храниться отдельный пароль (ключ). Любой из восьми ключей может быть использован для расшифровки раздела. Любой пароль может быть изменён или удалён необратимо.
Для управления шифрованными разделами можно воспользоваться командой cryptsetup. Ниже описаны лишь некоторые возможности утилиты cryptsetup. Для получения более подробной информации используйте команду man cryptsetup.
Просмотреть текущее состояние всех слотов:
# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: DISABLED
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
где /dev/sdb1 — шифрованный раздел.

Примечание

Определить является ли устройство LUKS-разделом:
# cryptsetup isLuks -v /dev/sdb1
Команда выполнена успешно.
Определить какой раздел является шифруемым:
# lsblk
NAME                                          MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                                             8:0    0   18G  0 disk
├─sda1                                          8:1    0 1023M  0 part  [SWAP]
└─sda2                                          8:2    0   17G  0 part  /
sdb                                             8:16   0   18G  0 disk
└─sdb1                                          8:17   0   18G  0 part
  └─luks-7853363d-e7e2-1a42-b5b9-0af119e19920 253:0    0   18G  0 crypt /home
sr0                                            11:0    1 1024M  0 rom
Добавить новый пароль на зашифрованный раздел (требуется предоставить уже имеющийся пароль интерактивно или посредством опции --key-file):
# cryptsetup luksAddKey /dev/sdb1
Введите любую существующую парольную фразу:
Введите новую парольную фразу для слота ключа:
Парольная фраза повторно:
Пароль будет назначен в первый свободный слот:
# cryptsetup luksDump /dev/sdb1 | grep 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
Можно указать номер определенного слота с помощью опции --key-slot, например:
# cryptsetup luksAddKey /dev/sdb1 --key-slot 5
Заменить один из паролей на другой (старый пароль нужно ввести интерактивно или задать опцией --key-file):
# cryptsetup luksChangeKey /dev/sdb1
Введите изменяемую парольную фразу:
Введите новую парольную фразу:
Парольная фраза повторно:
Если задан номер слота (опцией --key-slot), нужно ввести старый пароль именно для заданного слота, и замена пароля произойдёт тоже в этом слоте. Если номер слота не задан и есть свободный слот, то сначала новый пароль будет записан в свободный слот, а потом будет затёрт слот, содержащий старый пароль. Если свободных слотов не окажется, то новый пароль будет записан прямо в слот, ранее содержащий старый пароль.
Удалить заданный пароль (затирает слот):
# cryptsetup luksRemoveKey /dev/sdb1
Введите удаляемую парольную фразу:

Важно

В пакетном режиме (-q) удаление даже последнего пароля будет выполнено без каких-либо предупреждений. Если ни одного пароля не останется (то есть все слоты ключей будут пусты), дешифровать LUKS-раздел станет невозможно.
Сброс забытого пароля на зашифрованный раздел:
  1. Получить зашифрованные пароли всех разделов:
    # dmsetup table --showkey
    luks-7853363d-e7e2-1a42-b5b9-0af119e19920: 0 37730304 crypt aes-cbc-essiv:sha256 b15c22e8d60a37bcd27fb438637a8221fbec66c83be46d33a8331a4002cf3144 0 8:17 4096
    
    Часть поля после «aes-cbc-essiv:sha256» является зашифрованным паролем.
    Сохранить зашифрованный пароль в текстовый файл:
    # echo "b15c22e8d60a37bcd27fb438637a8221fbec66c83be46d33a8331a4002cf3144" > lukskey.txt
    
  2. Преобразовать существующий пароль из текстового файла в двоичный файл:
    # xxd -r -p lukskey.txt lukskey.bin
    luks-7853363d-e7e2-1a42-b5b9-0af119e19920: 0 37730304 crypt aes-cbc-essiv:sha256 b15c22e8d60a37bcd27fb438637a8221fbec66c83be46d33a8331a4002cf3144 0 8:17 4096
    
  3. Добавить новый пароль, используя существующий пароль, извлеченный в бинарный файл:
    # cryptsetup luksAddKey /dev/sdb1 --master-key-file <(cat lukskey.bin)
    Введите новую парольную фразу для слота ключа:
    Парольная фраза повторно:
    

Важно

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