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

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

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

Начиная с версии 12.10 возможность зашифровать весь диск целиком добавлена в варианты установки Ubuntu в стандартном инсталляторе.

Установка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выбираем "Finish"

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

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

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

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

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

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

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

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

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

ну да, опять

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

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

Даем ей имя:

даем ей имя

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

тот, что crypt

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

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

Пример для swap:

для swap для swap

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

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

Закончить

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

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

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

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

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

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

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

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

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

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

Работа с live-cd

Загрузитесь с live-cd8), выберите «Попробовать Ubuntu» и дождитесь полной загрузки системы. После этого, настройте подключение к интернету. Затем откройте терминал и выполните:

sudo apt-get update
sudo apt-get install lvm2 cryptsetup

После успешной установки, переходите к этапу «Смена пароля».

Смена пароля

Описание

При установке диск шифруется при помощи связки LUKS и dm-crypt. 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 стоит теперь уже у двух слотов:

sudo cryptsetup luksDump /dev/sda5
...

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 (т. е. Из любого оставшегося слота)

Смотрим слоты:

sudo cryptsetup luksDump /dev/sda5
...
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)
т. е. режим приостановки работы компьютера, при котором все содержимое оперативной памяти сбрасывается на диск, а питание компьютера отключается
4)
за исключением небольшого не шифруемого раздела /boot
5)
существует неплохой генератор паролей, pwgen, создающий сложные, но легко запоминающиеся пароли
6)
что, однако, потребует изменения размера файловой системы на нем, так что если не знаете как лучше поступить - добавьте этот объем сразу к разделу home
7)
имеется ввиду корневой раздел /
8)
т.е. с обычного установочного диска Ubuntu