Создание шифрованного раздела в Linux
Рассмотрим ручное создание шифрованного раздела /dev/sdb3 при помощи dm-crypt/LUKS.
Сryptsetup можно найти в пакете cryptsetup в репозиториях Debian, Ubuntu, SuSE, Fedora и CentOS:
Установка:
apt-get install cryptsetup
или
yum install cryptsetup
Заполняем раздел случайными данными, для удаления остаточной информации:
dd if=/dev/urandom of=/dev/sdb3
Инициализируем шифрованный раздел
cryptsetup luksFormat /dev/sdb3
в ответ на приглашение "Enter LUKS passphrase:" вводим пароль, под которым будет производиться доступ к созданному разделу.
Проверяем все ли нормально было создано:
cryptsetup isLuks /dev/sdb3 && echo Sucess Sucсess
Смотрим параметры созданного раздела:
cryptsetup luksDump /dev/sdb3
LUKS header information for /dev/sdb3 Version: 1 Ciper name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 ...
Получаем UUID идентификатор раздела для его последующего монтирования без привязки к имени устройства:
cryptsetup luksUUID /dev/sdb3 d77eb752-8a90-4d94-ae9f-2bec0a22c5d3
Подключаем шифрованный раздел, для его последующего монтирования:
cryptsetup luksOpen /dev/sdb3 db
Enter LUKS passphrase: вводим пароль key slot 0 unlocked. Command successful.
Смотрим параметры расшифрованного устройства /dev/mapper/db, пригодного для монтирования:
dmsetup info db
Name: db State: ACTIVE Read Ahead: 256 Tables present: LIVE Open count: 0 Event number: 0 Major, minor: 253, 1 Number of targets: 1
Форматируем новый раздел:
mke2fs -j /dev/mapper/db
Создаем точку монтирования:
mkdir /db
Монтируем:
mount /dev/mapper/db /db
Добавляем настройки в /etc/crypttab в последовательности соответствующей порядку монтирования разделов:
luks-d77eb752-8a90-4d94-ae9f-2bec0a22c5d3 UUID=d77eb752-8a90-4d94-ae9f-2bec0a22c5d3 none
Добавляем автомонтирование в /etc/fstab (на этапе загрузки нужно будет вводить пароль):
/dev/mapper/luks-d77eb752-8a90-4d94-ae9f-2bec0a22c5d3 /db ext3 defaults 0 0
Для автомонтирования шифрованного раздела должен быть активен системный сервис /etc/init.d/crytdisks
Для отключения раздела нужно использовать:
umount /db crytsetup luksClose /dev/mapper/db
Вместо ввода пароля можно сохранить ключ шифрования на USB брелок, последовательность примерно такая:
Создаем ключ на flash:
dd if=/dev/random of=/media/flash/pass.key bs=1 count=256
Инициализируем раздел:
cryptsetup luksFormat /dev/sdb3 /media/flash/pass.key
Подключаем раздел:
cryptsetup --key-file /media/flash/pass.key luksOpen /dev/sdb3 db
В /etc/crypttab вместо "none" добавляем путь к файлу с ключом.