Отсюда: https://help.ubuntu.ru/wiki/luks_cloud (по ссылке более полная версия!)
LUKS (Linux Unified Key Setup) — спецификация шифрования диска (или блочного устройства), изначально предложенная для Linux, но сейчас поддерживаемая и в ряде других операционных систем.
В качестве «контейнера» используется файл. Его размер фиксирован. Возможно изменение размера.
«Внутри» контейнера создается файловая система, любого удобного вам формата.
При использовании - монтируется, как обычный раздел.
Данные сохраняются по блокам, как в обычном файле/файловой системе. То есть :
В отличие от EncFS
В отличие от Truecript
Создаем необходимые каталоги:
mkdir /home/user/keys # каталог файла-ключа и скриптов. Должен быть недоступен другим пользователям mkdir /home/user/.private # каталог контейнера. В нем хранится криптованный файл-контейнер mkdir /home/user/private # точка монтирования. В нем будет содержимое контейнера "в открытом виде"
При необходимости, доустанавливаем пакеты:
sudo apt-get install cryptsetup
и проверяем (должен быть вывод «kernel/drivers/md/dm-crypt.ko»)
modprobe -l |grep dm-crypt
Создаем ключ
dd if=/dev/urandom of=/home/user/keys/container.key bs=512 count=1
Создаем контейнер, файл container.crt, размером 50M
dd if=/dev/urandom of=/home/user/.private/container.crt bs=1M count=50
Размечаем контейнер, как luks-систему с ключом
sudo cryptsetup luksFormat /home/user/.private/container.crt -d /home/user/keys/container.key -c aes-xts-plain64 -s 512
или - без ключа, с набором пароля при каждом открытии контейнера
sudo cryptsetup luksFormat /home/user/.private/container.crt -c aes-xts-plain64 -s 512
Будет предупреждение WARNING! Данные на /home/user/.private/container.crt будут перезаписаны без возможности восстановления. Are you sure? (Type uppercase yes), надо набрать YES.
Параметры полученного контейнера, смотрим
sudo cryptsetup luksDump /home/user/.private/container.crt
«Открываем» контейнер
sudo cryptsetup luksOpen /home/user/.private/container.crt -d /home/user/keys/container.key container
смотрим, появился ли в устройствах, и информация о нем
ls /dev/mapper/ sudo dmsetup info container
Форматируем содержимое контейнера, в данном примере в ext4, с установкой метки и отключением «резерва рута»
sudo mke2fs -t ext4 -O has_journal -L container -m 0 /dev/mapper/container
монтируем и выдаем права пользователю (себе)
sudo mount /dev/mapper/container /home/user/private sudo chown -hR user:user /home/user/private
Напомним - если мы потеряли файл ключа, надо иметь пароль. Задаем пароль, при этом будут два запроса на его ввод - Введите новый пароль для ключевого слота и Verify passphrase
sudo cryptsetup luksAddKey /home/user/.private/container.crt -d /home/user/keys/container.key
и проверяем «занятые» ключами слоты (их должно быть два, если мы задали ключ и пароль, Key Slot 0: ENABLED и Key Slot 1: ENABLED)
sudo cryptsetup luksDump /home/user/.private/container.crt
Контейнер к работе готов. Отмонтируем и отключаем.
sudo umount /dev/mapper/container sudo cryptsetup luksClose /dev/mapper/container