Это старая версия документа.


Описание руководства

Данная статья рассказывает, как создать надёжно зашифрованное хранилище данных на жестом диске компьютера и при этом не сломать спящий и ждущий режимы. Особенно актуально это для владельцев ноутбуков, т. к. в отличие от стационарных компьютеров шанс кражи/утери ноутбука выше и возникает обоснованное желание хранить информацию в зашифрованном виде. Однако, предлагаемая по-умолчанию опция шифрования домашней папки при помощи ecryptfs во-первых не шифрует корневой раздел системы 1), а во-вторых ecryptfs шифрует раздел swap с применением случайно сгенерированного ключа, таким образом, перестает работать такая нужная в ноутбуках опция как спящий режим2).

Предлагается же создать один большой зашифрованный раздел размером с весь диск компьютера3), поверх которого развернуть виртуальную группу LVM, в которой создать обычные (не шифрованные с точки зрения ОС) разделы /, /home и swap. При этом, пользователю придётся вводить пароль при каждом включении компьютера (даже при выходе из спящего режима), однако, за счёт смещения шифрования на более низкий уровень, ОС «не заметит» этого и все функции будут работать.

Установка

Итак, для установки нам потребуется диск альтернативной установки системы, который можно скачать тут. Ищите образ с alternate в названии.

Подразумевается, что вы выполняете новую установку системы, если это не так — предварительно сохраните все свои данные и настройки, т. к. описанный ниже процесс подразумевает потерю всех данных на жёстком диске компьютера.

Загрузите систему с alternate — диска, выберите язык и приступите у установке:

Загрузите систему с alternate — диска, выберите язык и приступите у установке.

Выберите ручной режим разметки диска:

Выберите ручной режим разметки диска.

Если у вас новый диск или, если вы хотите очистить на нем таблицу разделов, выберите строку с названием диска:

Если у вас новый диск...

и создайте на нем новую таблицу разделов:

...создайте на нем новую таблицу разделов

После этого, создайте на диске раздел /boot, выбрав указателем свободное место на диске:

создайте раздел

создайте раздел

Укажите небольшой объем, от 300 МБ до 1ГБ, т.к. для /boot этого будет вполне достаточно:

от 300 до 1000 МБ лучше сделать раздел первичным и расположить в начале диска

В списке «использовать как» укажите /boot, не забудьте сделать раздел загрузочным:

не забудьте сделать его загрузочным

Далее, не размечая оставшееся место, переходим в пункт «Настроить шифрование для томов»:

переходим в пункт "Настроить шифрование для томов"

Соглашаемся записать изменения:

соглашаемся на запись изменений

Выбираем «Create encrypted volumes»:

Выбираем "Create encrypted volumes"

Далее выбираем (при помощи кнопки Space) свободное место на диске и жмём «Продолжить»:

выбираем свободное место

Если у вас нет паранойи, можете просто нажать «Настройка раздела закончена», если есть - установите параметр «Стереть данные» в «Да»:

Снова соглашаемся на запись изменений на диск:

Соглашаемся на запись изменений

Далее выбираем «Finish»:

Выбираем "Finish"

Далее установщик попросит вас ввести парольную фразу, которой он «закроет» диск:

введите пароль

После этого подтвердите пароль:

подтвердите пароль

Если вы используете слишком простой пароль4), установщик попросит подтверждения:

используйте сильный пароль

После создания шифрованного тома, нужно настроить LVM:

теперь настраиваем LVM

Снова соглашаемся на запись изменений:

ну да, опять

Создаем группу томов:

создаем группу томов

Даем ей имя:

даем ей имя

И указываем в качестве устройств для группы только что созданный шифрованный диск:

тот, что crypt

После этого создаем логические тома:

создаем логические тома

Пример для swap:

для swap для swap

Аналогично создаем диски для root и home, выделяя им желаемый объем. Если у вас большой диск - можете оставить некоторый его объем свободным, позднее вы сможете добавить его к любому логическому тому5).

После этого выбирайте «Закончить»:

Закончить

Теперь нужно назначить файловые системы и точки монтирования для созданных дисков:

Выбирайте разделы, находящиеся в блоках, начинающихся на LVM, они названы, согласно именам, данным им вами при создании логических томов, например, в данном случае, это LV home, LV swap и LV root. Стоит заметить, что раздел root6) не нужно делать загрузочным, т.к. роль загрузочного у нас выполняет отдельный раздел /boot.

По окончании, выбирайте «Закончить разметку и записать изменения на диск»:

Закончить...

И снова соглашаемся с записью изменений на диск (заодно можно ещё раз проверить все ли вы правильно разметили):

Проверяем и жмём "Да"

Далее продолжайте установку системы как обычно. Когда установщик спросит вас, зашифровать ли домашний каталог — откажитесь, ведь ваш диск уже зашифрован.

После завершения установки и перезагрузки система предложит вам ввести пароль для разблокировки шифрованного диска. Введите пароль и нажмите Enter.

Изменение пароля

Рекомендуется предварительно размонтировать все разделы, лежащие на зашифрованном диске, что в нашем случае означает, что для смены пароля на диске понадобится live-cd. Если вы не боитесь возможных последствий — можете пропустить этап с загрузкой live-cd и установкой необходимых программ, и сразу перейти к смене пароля.

Загрузитесь с live-cd, выберите «Попробовать» и дождитесь полной загрузки системы. После этого, настройте подключение к интернету. Затем откройте терминал и выполните: sudo apt-get update sudo apt-get install lvm2 cryptsetup После успешной установки, переходите к этапу «Смена пароля».

LUKS использует в качестве идентификаторов доступа key slots, которые в данном случае выступают в виде пароля, однако могут быть и ключом. Всего доступно 8 слотов. По умолчанию (при создании шифрованного диска) используется слот №0.

Если вам нужно использовать компьютер совместно с другим человеком — вы можете создать для него отдельный пароль разблокировки диска.

Для операций со слотами — сначала нужно определиться с диском, на котором установлено шифрование. Выполните в терминале команду sudo fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000882b1

 Device Boot      Start         End      Blocks   Id  System

/dev/sda1 * 2048 1953791 975872 83 Linux /dev/sda2 1955838 16775167 7409665 5 Extended /dev/sda5 1955840 16775167 7409664 83 Linux

Disk /dev/mapper/sda5_crypt: 7586 MB, 7586443264 bytes

Она даст вам список разделов на диске. Нужно найти тот раздел, на котором присутствует зашифрованный раздел. В данном случае это sda5.

Теперь можно просмотреть состояние слотов на этом разделе: sudo cryptsetup luksDump /dev/sda5 testuser@ubuntu:~$ sudo cryptsetup luksDump /dev/sda5 [sudo] password for testuser: LUKS header information for /dev/sda5

Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 2056 MK bits: 256 MK digest: cd 6d 79 1b 55 11 e9 04 2f ae 51 7d d5 02 8d ec 40 38 3f ef MK salt: c2 b3 1a 4f e7 ed 13 16 40 0b 45 af 43 10 de 24

             	f8 fe bd d8 09 be 71 e6 e0 6f bd ea b9 33 78 c7 

MK iterations: 22250 UUID: 358a958b-c2ce-4626-8cd3-58124ddc15eb

Key Slot 0: ENABLED

Iterations:         	89495
Salt:               	ad 0b 83 b8 08 cc 6c 13 51 d3 23 39 9f ab a2 32 
                      	c6 3f 28 1c e2 de 10 3f f1 5d 30 f3 38 b0 9c 57 
Key material offset:	8
AF stripes:            	4000

Key Slot 1: DISABLED Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED Видим, что слот 0 содержит пароль, а слоты 1-7 имеют статус DISABLED.

Устанавливаем новый ключ. sudo cryptsetup luksAddKey /dev/sda5 Enter any passphrase: любой из существующих паролей (т. е. В нашем случае из слота 0) Enter new passphrase for key slot: Новый пароль Verify passphrase: Подтверждение нового пароля Если теперь посмотреть слоты, то станет видно, что статус ENABLED стоит теперь уже у двух слотов: testuser@ubuntu:~$ sudo cryptsetup luksDump /dev/sda5 LUKS header information for /dev/sda5

Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 2056 MK bits: 256 MK digest: cd 6d 79 1b 55 11 e9 04 2f ae 51 7d d5 02 8d ec 40 38 3f ef MK salt: c2 b3 1a 4f e7 ed 13 16 40 0b 45 af 43 10 de 24

             	f8 fe bd d8 09 be 71 e6 e0 6f bd ea b9 33 78 c7 

MK iterations: 22250 UUID: 358a958b-c2ce-4626-8cd3-58124ddc15eb

Key Slot 0: ENABLED

Iterations:         	89495
Salt:               	ad 0b 83 b8 08 cc 6c 13 51 d3 23 39 9f ab a2 32 
                      	c6 3f 28 1c e2 de 10 3f f1 5d 30 f3 38 b0 9c 57 
Key material offset:	8
AF stripes:            	4000

Key Slot 1: ENABLED

Iterations:         	84916
Salt:               	54 af 0f 9a 38 80 d6 52 c2 e2 ec 12 5b 3b 11 cd 
                      	fb 4d 21 ea 98 66 25 d9 24 c5 91 f3 16 11 b6 72 
Key material offset:	264
AF stripes:            	4000

Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED

Теперь можно удалить старый пароль, находящийся в слоте 0: sudo cryptsetup luksKillSlot /dev/sda5 0 Enter any remaining LUKS passphrase:Пароль из слота 1 (т. е. Из любого оставшегося слота) Смотрим слоты: testuser@ubuntu:~$ sudo cryptsetup luksDump /dev/sda5 LUKS header information for /dev/sda5

Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 2056 MK bits: 256 MK digest: cd 6d 79 1b 55 11 e9 04 2f ae 51 7d d5 02 8d ec 40 38 3f ef MK salt: c2 b3 1a 4f e7 ed 13 16 40 0b 45 af 43 10 de 24

             	f8 fe bd d8 09 be 71 e6 e0 6f bd ea b9 33 78 c7 

MK iterations: 22250 UUID: 358a958b-c2ce-4626-8cd3-58124ddc15eb

Key Slot 0: DISABLED Key Slot 1: ENABLED

Iterations:         	84916
Salt:               	54 af 0f 9a 38 80 d6 52 c2 e2 ec 12 5b 3b 11 cd 
                      	fb 4d 21 ea 98 66 25 d9 24 c5 91 f3 16 11 b6 72 
Key material offset:	264
AF stripes:            	4000

Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED

И видим, что слот 0 стал DISABLED.

1)
имея доступ к корневому разделу можно, например, получить список файлов в домашнем разделе, несмотря на то, что тот зашифрован
2)
т. е. режим приостановки работы компьютера, при котором все содержимое оперативной памяти сбрасывается на диск, а питание компьютера отключается
3)
за исключением небольшого не шифруемого раздела /boot
4)
существует неплохой генератор паролей, pwgen, создающий сложные, но легко запоминающиеся пароли
5)
что, однако, потребует изменения размера файловой системы на нем, так что если не знаете как лучше поступить - добавьте этот объем сразу к разделу home
6)
имеется ввиду корневой раздел /