В данном HOWTO мы рассмотрим как можно легко и просто создать зашифрованный посредством LUKS накопитель для хранения важных данных.
Введение
Для начала нам потребуется установить в систему cryptsetup, а также опционально утилиты работы с разделами дисков — parted (консольный) или gparted (графический).
Откроем терминал и запустим установку (на примере Fedora):
sudo dnf install cryptsetup parted
Все остальные необходимые библиотеки и модули будут установлены автоматически по зависимостям.
Подготавливаем диск
Запустим консольный или графический редактор разделов, выберем нужный физический диск, удалим с него все разделы и создадим один новый, который будем шифровать.
Все данные на выбранном разделе/диске будут уничтожены без возможности восстановления, поэтому перед началом работ следует сделать резервную копию всех нужных данных на другой диск.
Файловую систему создаваемого раздела указываем как raw (без форматирования).
Приступаем к шифрованию диска
Снова откроем терминал и запустим следующую команду:
sudo cryptsetup --verify-passphrase luksFormat /dev/sdc1 -c aes-xts-plain64 -s 256 -h sha512
Описание параметров команды:
- —verify-passphrase — требование дважды ввести пароль для исключения ошибки ввода;
- /dev/sdc1 — раздел диска, который мы будем шифровать;
- -c aes-xts-plain64 — алгоритм шифрования (в нашем примере это AES в режиме сцепления блоков шифротекста XTS);
- -s 256 — стойкость шифра (256 бит);
- -h sha512 — алгоритм хеширования (SHA-512).
Утилита cryptsetup сначала предупредит об уничтожении всех данных на шифруемом разделе и потребует ввести на клавиатуре YES (в верхнем регистре) для подтверждения, а затем пароль и его подтверждение.
Необходимо придумать как можно более сложный пароль, но при этом следует помнить, что в случае его утери, данные на зашифрованном разделе восстановить будет невозможно.
Через пару минут на накопителе будет создан зашифрованный раздел.
Создаём ФС внутри раздела
С уже созданным разделом мы пока ещё не можем работать, поэтому нам потребуется сначала создать на нём файловую систему. Допускается создавать любую, поддерживаемую используемой ОС, но мы выберем самую распространённую, популярную и стандартную для большинства дистрибутивов GNU/Linux — ext4.
Подключим зашифрованный раздел:
sudo cryptsetup luksOpen /dev/sdc1 storage
Описание параметров:
- /dev/sdc1 — зашифрованный раздел диска;
- storage — внутреннее название, которое должно состоять только из латинских букв и цифр без пробелов.
Создаём файловую систему ext4 внутри зашифрованного раздела:
sudo mkfs -t ext4 -m 1 -L storage /dev/mapper/storage
Описание параметров:
- -t ext4 — файловая система (ext4);
- -m 1 — изменяем зарезервированный объём свободного места на разделе для суперпользователя (с 5% до 1%);
- -L storage — задаём метку тома аналогично внутреннему названию (storage);
- /dev/mapper/storage — смонтированный зашифрованный раздел, где storage — указанное при подключении внутреннее название.
Ожидаем успешного завершения и отключаем зашифрованный раздел:
sudo cryptsetup luksClose /dev/mapper/storage
Здесь /dev/mapper/storage — смонтированный зашифрованный раздел.
Заключение
Итак, мы успешно выполнили то, что хотели, создав крипто-раздел на накопителе. При подключении его современные DE вроде KDE 5 или Gnome 3 самостоятельно предложат вам ввести пароль для монтирования. В противном случае всегда можно смонтировать через терминал стандартным способом.
Внимание! При первом монтировании начнётся достаточно длительный процесс завершения создания на разделе файловой системы ext4 при помощи механизма ext4lazyinit. На HDD с ФС размером в 500 ГБ это нанимает около 5 минут. Необходимо обязательно дождаться завершения процесса.
Спасибо за статью!
Добавьте пункт как ПРАВА раздать на получившийся контейнер, т.к изготовитель root и соответственно токмо он и может в него писать…
Так и должно быть если вы создаёте VM в пространстве системы (владелец root, группа libvirt).
Если используется пространство пользователя, то владельцем будет уже его аккаунт.