Полезные статьи

Статьи по тегам: bash (1) C++ (1) debian (2) linux (7) LVM (1) mediatomb (1) openvpn (1) rj45 (1) ubuntu (2) vpn (1) xen (1) диск (1) заметки (1) настройка (4) обжимка (1) обозначение (1) схема (1) установка (3) учебник (1) шифрование (1)

Шифрование разделов диска в Ubuntu

Для начала необходимо установить пакет 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
Эта команда может выполняться достаточно долго. Все зависит от размера создаваемого файла. Подробнее обо всех опциях команды 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: 
На экране появится предупреждение. Необходимо ввести 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 
Время выполнения команды зависит от размера файла-образа.

Теперь в системе появится новый зашифрованный диск. Далее можно сменить владельца файлов на жестком диске, иначе есть шанс, что вы не сможете ничего туда записать.

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 и тогда, по идее, консолью пользоваться не придется. Пароль будет запрашиваться при необходимости.


Ссылки по теме