Для начала необходимо установить пакет cryptsetup, который включается в стандартную сборку пакетов начиная с Ubuntu 10.04 Lucid.
Cryptsetup предоставляет интерфейс для конфигурации зашифрованных устройств и имеет интегрированную поддержку
LUKS (стандарт для упрощения использования шифрования дисков).
Cryptsetup включает поддержку автоматической настрой шифруемых устройств во
время загрузки посредством конфигурационного файла /etc/crypttab. Среди дополнительных возможностей - несколько поддерживаемых путей чтения секретной фразы или ключа.
Для установки этого пакета необходимо выполнить команду
user@host:~$ sudo apt-get install cryptsetup
Cryptsetup позволяет работать как с дисками и их разделами, так и с отдельными файлами. Во втором случае необходимо создать файл нужного размера, который будет представлять собой зашифрованный образ диска.
Я буду использовать второй способ. Создаём файл с помощью команды dd.
user@host:~$ sudo dd if=/dev/urandom of=/mnt/encrypted-image bs=1M count=5120
5120+0 записей считано
5120+0 записей написано
скопировано 5368709120 байт (5,4 GB), 700,007 c, 7,7 MB/c
if=/dev/urandom - файл, из которого будут браться данные для заполнения создаваемого файла. В данном случае он будет заполнен случайными значениями.
Если указать if=/dev/zero, то файл заполнится нулями;of=/mnt/encrypted-image - путь к создаваемому файлу образа зашифрованного диска;bs=1M - размер блока информации, который будет записан в файл за раз. В данном случае размер блока будет равным 1Мб;count=5120 - количество записываемых блоков. В данном случае получится файл размером 1Мб x 5120 = 5Гб;dd можно прочитать
здесь.
Теперь инициализируем наш файл-образ диска:
user@host:~$ sudo cryptsetup -y luksFormat /mnt/encrypted-image -c aes -s 256 -h sha256
WARNING!
========
Данные на /mnt/encrypted-image будут перезаписаны без возможности восстановления.
Are you sure? (Type uppercase yes): YES
Введите пароль для LUKS:
Verify passphrase:
-y - добавляет функцию подтверждения пароля во избежание его некорректного ввода;luksFormat - обеспечивает кроссплатформенное шифрование. Таким образом, к данным можно будет получить доступ и в Linux, и в MacOS, и в Windows;-c aes -s 256 - использует 256-битное AES шифрование;-h sha256 - использует 256-битный SHA алгоритм хеширования (для проверки целостности данных).YES в верхнем регистре. Далее вводим пароль для шифрования раздела (2 раза).
Вы всегда сможете узнать о дополнительных опциях cryptsetup, выполнив втерминале команду man cryptsetup.
Подключаем зашифрованный раздел предварительно введя пароль:
user@host:~$ sudo cryptsetup luksOpen /mnt/encrypted-image cryptimg
Введите пароль для /mnt/encrypted-image:
В результате раздел должен отобразиться в /dev/mapper/cryptimg. Вместо cryptimg можете набрать метку на свой вкус, например super_secret_image.
Создаем файловую систему на этом разделе:
user@host:~$ sudo mkfs -t ext4 -m 1 -O dir_index,filetype,sparse_super /dev/mapper/cryptimg
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310208 blocks
13102 blocks (1.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inod'ов в группе
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Сохранение таблицы inod'ов: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
-t ext4 - тип создаваемой файловой системы. В данном случае - ext4;
-m 1 - уменьшает размер места, зарезервированного для суперпользователя. Применим для крупных файловых систем;-O - дополнительные опции. dir_index - быстрая навигация по большим директориям, filetype - сохранять типы файлов в директориях, sparse_super - создает
суперблоки для резервных копий. Применим для крупных файловых систем;/dev/mapper/cryptimg - путь к файлу, в который отобразился наш зашифрованный раздел.Теперь в системе появится новый зашифрованный диск. Далее можно сменить владельца файлов на жестком диске, иначе есть шанс, что вы не сможете ничего туда записать.
user@host:~$ sudo chown -R <имя_пользователя>:<группа> /media/<имя_диска>
Вместо <имя_пользователя>, <группа> и <имя_диска> подставьте свои значения.
Например, у меня <имя_диска> получилось d50c14b7-e9c9-409c-86ab-b91966ba2f53.
Проще <имя_диска> посмотреть в файловом менеджере, но можно это сделать и с помощью команды
user@host:~$ ls -lh /media
итого 8,0K
drwxr-xr-x 3 <имя_пользователя> <группа> 4,0K сент. 11 20:52 d50c14b7-e9c9-409c-86ab-b91966ba2f53
drwxr-xr-x 2 root root 4,0K июля 22 17:46 iso
Главное - не запутаться, если у Вас много подключенных дисков.
В дальнейшем для подключения шифрованного раздела (после перезагрузки) Вам будет достаточно ввести в терминале команду
user@host:~$ sudo cryptsetup luksOpen /mnt/encrypted-image cryptimg
и пароль для дешифровки. Можно поставить из пакетов приложение GDecrypt и тогда, по идее, консолью пользоваться не придется. Пароль будет запрашиваться при необходимости.