Установка и работа с программой Cryptsetup

Материал из Wiki AlterOS
Перейти к: навигация, поиск

Содержание

Установка и работа с утилитой Cryptsetup в AlterOS 2025

Cryptsetup — это утилита с открытым исходным кодом, используемая для удобной настройки шифрования диска на основе модуля ядра dm-crypt.

Общие сведения о Cryptsetup

Поддерживаемые форматы шифрования

  • plain
  • LUKS2 (используется по умолчанию при установке системы)
  • loop-AES
  • TrueCrypt
  • BitLocker
  • FileVault2

Поддерживаемые алгоритмы шифрования

  • aes-xts-plain64 (используется по умолчанию при установке системы)
  • aes-cbc-essiv:sha256
  • aes-cbc-plain64
  • serpent-xts-plain64
  • twofish-xts-plain64
  • camellia-xts-plain64
  • cast5-cbc-essiv:sha256

Описание опций cryptsetup

Управление LUKS-контейнерами

  • luksFormat — создание нового LUKS-контейнера
  • luksDump — вывод информации о LUKS-заголовке
  • luksAddKey — добавление нового пароля(ключа)
  • luksRemoveKey — удаление пароля(ключа) из слота
  • luksChangeKey — изменение существующего пароля(ключа)
  • luksHeaderBackup — резервное копирование заголовка LUKS
  • luksHeaderRestore — восстановление заголовка LUKS из резервной копии
  • luksKillSlot — удаление пароля(ключа) из указанного слота
  • luksUUID — вывод UUID LUKS-устройства

Работа с зашифрованными устройствами

  • open — открытие зашифрованного устройства (создание mapping-устройства)
  • close — закрытие mapping-устройства
  • status — информация о состоянии mapping-устройства
  • resize — изменение размера активного mapping-устройства

Дополнительные операции

  • benchmark — тестирование скорости алгоритмов шифрования
  • erase — безопасное стирание данных на устройстве
  • isLuks — проверка, является ли устройство LUKS-контейнером
  • repair — попытка восстановления повреждённого LUKS-заголовка

Режимы приостановки (suspend/resume)

  • luksSuspend – временная приостановка шифрования (требует пароль для возобновления). Например можно использовать чтобы перед переходом в спящий режим, система выполняет cryptsetup suspend, чтобы сделать том недоступным. После пробуждения пользователь вводит пароль снова.
  • luksResume – возобновление работы после suspend.



Требования к паролю

Минимальная длина: 8 символов.

Максимальная длина: 512 символов.

Допустимые символы: Любые, включая пробелы, специальные символы и символы Unicode.

Дополнительно пароль проверяется по словарю cracklib


Термины и определения

LUKS2

LUKS (Linux Unified Key Setup-on-disk-format) предоставляет набор инструментов, упрощающих управление зашифрованными устройствами. С помощью LUKS можно шифровать блочные устройства. LUKS2 (Linux Unified Key Setup, версия 2) — современный стандарт шифрования дисков в Linux, пришедший на смену LUKS1.

aes-xts-plain64

AES-XTS-PLAIN64 — стандартный алгоритм шифрования в LUKS2, сочетающий высокую производительность и безопасность. Он использует режим XTS, оптимизированный для блочных устройств, что обеспечивает эффективное шифрование без снижения скорости работы диска. Алгоритм поддерживает аппаратное ускорение (AES-NI) и рекомендован NIST для защиты данных. В LUKS2 выбран по умолчанию как наиболее надежный и современный вариант для шифрования дисков любого размера.

LUKS-контейнер

LUKS-контейнер представляет собой зашифрованное хранилище, состоящее из трех основных компонентов: стандартизированного заголовка (header), слотов ключей (key slots) и области данных.

LUKS-заголовок

LUKS-заголовок(LUKS Header) — это служебная область в начале LUKS-контейнера, содержащая метаданные, необходимые для работы с зашифрованными данными. Он стандартизирован (формат LUKS1/LUKS2) и включает криптографические параметры, информацию о слотах ключей и контрольные суммы. Если заголовок повредится (например, из-за сбоя записи), данные на диске станут нечитаемыми, даже если пароль правильный. Резервная копия заголовка позволяет восстановить доступ к данным.

key-slot

Key-slot — это "ячейка" в LUKS-контейнере, хранящая зашифрованную версию мастер-ключа. Пользовательские пароли/ключевые файлы нужны только для дешифровки key-slot, а не самих данных.

cracklib

cracklib — это библиотека, предназначенная для проверки "надежности" паролей. Она используется многими программами и PAM-модулями, чтобы не допустить слишком простые или уязвимые пароли.

Установка утилиты Cryptsetup

sudo dnf install cryptsetup

Работа с программой Cryptsetup

Шифрование диска

Пример шифрования диска с рекомендуемыми параметрами. Где /dev/sdc подключенный жесткий диск с файловой системой в формате ext4.

sudo cryptsetup -y -v \ 
 --type luks2 \
 --cipher aes-xts-plain64 \
 --key-size 512 \
 --hash sha512 \
 --iter-time 5000 \
 --pbkdf argon2id \
 luksFormat /dev/sdc
  • -y — защита от опечаток в пароле.
  • -v — подробный вывод (можно убрать, если не нужен).
  • luks2 — современный метод шифрования.
  • aes-xts-plain64 — рекомендуемый алгоритм шифрования для дисков.
  • argon2id — защита от перебора пароля. Функция специально замедляет подбор паролей, чтобы сделать атаки перебором неэффективными.

В результате шифрования появится сообщение "Данные на /dev/sdc будут перезаписаны без возможности восстановления." и "Существующая подпись суперблока "ext4" на устройстве /dev/sdc будет затерта." Следует обратить на это внимание, так как диск будет полностью перезаписан и информация на нем утеряна.

Superblock.png



Открытие зашифрованного диска

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

sudo cryptsetup open /dev/sdc encrypted_sdc
  • dev/sdc — название вашего зашифрованного диска.
  • encrypted_sdc — созданное произвольное имя, под которым диск будет доступен в /dev/mapper/

Чтобы проверить введите команду lsblk

Cryptoopen.png


Просмотр информации о состоянии устройства

Выполните команду "cryptsetup status" для просмотра информации о зашифрованном диске:

sudo cryptsetup status encrypted_sdc


Cryptsetupstatus.png


Монтирование диска

Для монтирования диска можно воспользоваться командой:

sudo mount /dev/mapper/encrypted_sdc /mnt

Проверить монтирование можно командой:

df -h | grep encrypted   

CryptEncrypted.png


Отключение раздела

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

1. Размонтировать раздел или диск

sudo umount /mnt

2. Закрыть устройство

sudo cryptsetup close encrypted_sdc



Резервное копирование LUKS-заголовка

1. Открываем диск и вводим пароль

sudo cryptsetup open /dev/sdc encrypted_sdc

2. Выполняем резервную копию

sudo cryptsetup luksHeaderBackup /dev/sdc --header-backup-file ~/luks_sdc_backup.img
  • /dev/sdc — ваш зашифрованный диск
  • ~/luks_sdc_backup.img — созданный произвольный путь для сохранения бэкапа



Восстановление резервной копии LUKS-заголовка

sudo cryptsetup luksHeaderRestore /dev/sdc --header-backup-file ~/luks_sdc_backup.img

Изменение пароля зашифрованного диска

1. Делаем резервную копию

2. Изменяем пароль вводим старый и два раза новый.

sudo cryptsetup luksChangeKey /dev/sdc

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



Добавление дополнительного пароля

В целях защиты от потери единственного пароля и для разграничения доступа может потребоваться создать еще один пароль.

1.Чтобы его добавить дополнительный пароль выполните команду:

sudo cryptsetup luksAddKey /dev/sdc

2.Просмотреть текущее количество паролей можно командой:

sudo cryptsetup luksDump /dev/sdc

Keyslot.png

В выводе можно увидеть опцию "Keyslots" которая отображает существующие слоты с паролями, добавленный дополнительный пароль будет в ячейке --key-slot 1 .

3. Проверка ввода пароля для определенного слота:

sudo cryptsetup open --test-passphrase /dev/sdc --key-slot 1

Изменение пароля

Чтобы изменить пароль в определенном слоте выполните следующие действия.

1. Откройте диск(если он был закрыт) с паролем нужного слота(в примере это слот номер 1).

sudo cryptsetup open /dev/sdc encrypted_sdc --key-slot 1

2. Введите команду для изменения пароля

sudo cryptsetup luksChangeKey /dev/sdc

Удаление пароля

Для удаления пароля выполните команду:

sudo cryptsetup luksRemoveKey /dev/sdc

Будет запрашиваться ввод пароля, какой вы введете тот и удалится из слота.