Шифрование разделов dm-crypt на Getnoo
Модуль dm-crypt включен в ядро >=2.6.4
Установка
emerge sys-fs/cryptsetup -av
Настройки ядра
Device Drivers ---> [*] Block devices ---> [*] Multiple devices driver support (RAID and LVM) ---> <*> Device mapper support <M> Crypt target support -*- Cryptographic API ---> <M> SHA224 and SHA256 digest algorithm <M> SHA384 and SHA512 digest algorithms
Подгружаем модуль
modprobe dm_crypt
Шифрование раздела
Создание шифрованного раздела на /dev/sda5
cryptsetup luksFormat /dev/sda5
<note|> Опции шифрования по умолчанию
plain: aes-cbc-essiv:sha256, Key: 256 bits, Password hashing: ripemd160 LUKS1: aes-cbc-essiv:sha256, Key: 256 bits, LUKS header hashing: sha1
</WRAP>
В некоторых манах сначала предлагается затереть имеющиеся данные на диске командой
dd if=/dev/urandom of=/dev/sda5
возможно в это есть какой-то смысл
Are you sure? (Type uppercase yes):
Правильный ответ: YES
Вводим пароль
Enter LUKS passphrase:
Подтверждаем пароль
Verify passphrase:
Проверим
cfdisk /dev/sda
Name Flags Part Type FS Type [Label] Size (MB) ----------------------------------------------------------------------- sda5 Logical crypto_LUKS 27998.86
Информация о разделе
cryptsetup luksDump /dev/sda5
Отдельно вывести UUID раздела
cryptsetup luksUUID /dev/sda5
Подключение раздела
Открываем раздел с именем data1
cryptsetup luksOpen /dev/sda5 data1
При этом создастся устройство /dev/mapper/data1
ls -l /dev/mapper/ crw-rw---- 1 root root 10, 236 May 20 10:26 control lrwxrwxrwx 1 root root 7 May 20 10:40 data1 -> ../dm-0
Информация о подключенном разделе
dmsetup info data1
Это устройство в расшифрованном виде, работать с ним можно как с обычным блочным устройством.
А следовательно для начала форматируем его
mkfs.ext3 -j /dev/mapper/data1
И примантируем
mount /dev/mapper/data1 /mnt/tmp
Отключение раздела
Отмонтировать
umount /mnt/tmp
Закрыть раздел
cryptsetup luksClose data1
Смена пароля
Добавим еще один ключ для доступа
cryptsetup luksAddKey /dev/sda5
Вводим текущий пароль (или их может быть несколько)
Enter any LUKS passphrase:
Далее вводим новый пароль для нового слота.
Enter new passphrase for key slot:
Смотрим на результат
cryptsetup luksDump /dev/sdb1
Теперь когда у нас есть второй слот
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Можно удалить первый - он же нулевой
cryptsetup luksDelKey 0
Удалить единственный и последний пароль нельзя.
Что бы удалить Key Slot 0 надо создать Key Slot 1, так и происходит смена пароля.
Файл-Ключ
Можно использовать файл-ключ вместо пароля и носить его с собой на флешке.
Создание ключа
dd if=/dev/random of=/media/flashka/data1.key bs=1 count=256
Создание с указание ключа вместо пароля
cryptsetup luksFormat /dev/sda5 /media/flashka/data1.key
Добавление ключа к существующему разделу
cryptsetup luksAddKey /dev/sda5 /media/flashka/data1.key
Открытие колючем
cryptsetup luksOpen /dev/sda5 data1 --key-file=/media/flashka/data1.key
Подключение при загрузке
Ручной ввод пароля
/etc/fstab
... /dev/mapper/data1 /mnt/tmp ext3 noatime 0 1
/etc/conf.d/dmcrypt
... target=data1 source='/dev/sda5'
Добавить в автозагрузку
rc-update add dmcrypt boot
Этот вариант предполагает ручной ввод пароля при загрузке компьютера
Обсуждение
luksDelKey заменено на luksKillSlot