В данной статье описывается метод создания загрузочной флешки с системой Kali Linux, функционал которой позволяет создать зашифрованный раздел, где будут храниться все её параметры, установленные программы и данные. Шифрование производится посредством алгоритма aes c ключом 256 бит (настроить шифрование вы можете на свой вкус, изучив команду cryptsetup).
Для записи образа используйте программу Rufus. Выберите устройство, на которое будет распакован образ, далее выберите iso-образ системы и из выпадающего списка выберите DD-образ.

После развертывания образа структура разделов флешки примет следующий вид:

Структура разделов:
— 2.80 ГБ – образ системы Kali Linux;
— 102 Мб – загрузчик;
— 11,42 Гб – нераспределённая область, которая будет использоваться для шифрования.
Выполните загрузку с флешки и выберите пункт меню Live(686-pae).

Запустите терминал и выполните команду gparted для запуска редактора разделов.

В открывшемся окне из выпадающего списка выберите флешку, с которой вы загрузились.

Далее выберите нераспределённое место на диске и создайте новый раздел(ext4).

После создания раздела откройте терминал и выполните команду fdisk –l | grep /dev/ для отображения доступных устройств. Нас интересует устройство /dev/sdb3.

Для шифрования раздела введите команду cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb3, далее введите YES.

После этого программа потребует ввести пароль, под которым осуществится шифрование раздела и предложит его подтвердить.
Подключите зашифрованный раздел командой cryptsetup luksOpen /dev/sdb3 usb_part_open, введите пароль. Раздел инициализируется, как устройство с именем usb_part_open.

Выполните команду fdisk –l | grep /dev/ и убедитесь, что устройство /dev/mapper/usb_part_open подключено.

Заполните устройство случайными, псевдослучайными числами либо нулями выполнив одну из команд на ваше усмотрение:
— dd if=/dev/random of=/dev/mapper/usb_part_open — данная команда заполнит устройство случайными числами. Операция будет выполняться продолжительное время(считать в днях);
— dd if=/dev/urandom of=/dev/mapper/usb_part_open — данная команда заполнит устройство псевдослучайными числами. Операция будет выполняться продолжительное время(считать в часах);
— dd if=/dev/zero of=/dev/mapper/usb_part_open — заполнение нулями.

Выполните форматирование заполненного случайными числами раздела командой mkfs.ext4 /dev/mapper/usb_part_open.

Присвойте разделу название “persistence” командой e2label /dev/mapper/usb_part_open persistence.

Монтируйте данный раздел к заранее созданной папке, к примеру, /mnt/usb_part командой mount /dev/mapper/usb_part_open /mnt/usb_part (обычно в новых версиях системы данная команда не требуется, раздел автоматически подключается после форматирования и определяется в проводнике).

Создайте конфигурационный файл в корне зашифрованного раздела командой echo “/ union” > /mnt/usb_part/persistence.conf.

Закройте зашифрованный раздел командой cryptsetup luksClose /dev/mapper/usb_part_open.

Перезагрузите систему и выполните вход под Live USB Encrypted Persistence.

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

Создание зашифрованной системы завершено.
При первой загрузке ОС в режиме Encrypted Persistence на зашифрованном разделе создаются системные файлы и папки, для их просмотра выполните следующие действия:
— Перезагрузите систему в незашифрованном режиме Live(686-pae).

— подключите зашифрованный раздел как устройство командой cryptsetup luksOpen /dev/sdb3 usb_part_open.

— Откройте проводник и выберите подключенное устройство persistence. Вы увидите созданный ранее конфигурационный файл persistence.conf и системные папки. В папке rw находится наша зашифрованная система, под которой мы загружаемся. Следовательно, в папке rw сохраняются все изменения произведённые в системе загруженной в зашифрованном режиме.
Если вы загружаетесь в обычном(незашифрованном) режиме, то после перезагрузки все изменения и файлы удаляются.

Спасибо за внимание!
1. Создание загрузочной флешки
Для записи образа используйте программу Rufus. Выберите устройство, на которое будет распакован образ, далее выберите iso-образ системы и из выпадающего списка выберите DD-образ.

После развертывания образа структура разделов флешки примет следующий вид:

Структура разделов:
— 2.80 ГБ – образ системы Kali Linux;
— 102 Мб – загрузчик;
— 11,42 Гб – нераспределённая область, которая будет использоваться для шифрования.
2. Создание зашифрованного раздела и установка его параметров
Выполните загрузку с флешки и выберите пункт меню Live(686-pae).

Запустите терминал и выполните команду gparted для запуска редактора разделов.

В открывшемся окне из выпадающего списка выберите флешку, с которой вы загрузились.

Далее выберите нераспределённое место на диске и создайте новый раздел(ext4).

После создания раздела откройте терминал и выполните команду fdisk –l | grep /dev/ для отображения доступных устройств. Нас интересует устройство /dev/sdb3.

Для шифрования раздела введите команду cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb3, далее введите YES.

После этого программа потребует ввести пароль, под которым осуществится шифрование раздела и предложит его подтвердить.
Подключите зашифрованный раздел командой cryptsetup luksOpen /dev/sdb3 usb_part_open, введите пароль. Раздел инициализируется, как устройство с именем usb_part_open.

Выполните команду fdisk –l | grep /dev/ и убедитесь, что устройство /dev/mapper/usb_part_open подключено.

Заполните устройство случайными, псевдослучайными числами либо нулями выполнив одну из команд на ваше усмотрение:
— dd if=/dev/random of=/dev/mapper/usb_part_open — данная команда заполнит устройство случайными числами. Операция будет выполняться продолжительное время(считать в днях);
— dd if=/dev/urandom of=/dev/mapper/usb_part_open — данная команда заполнит устройство псевдослучайными числами. Операция будет выполняться продолжительное время(считать в часах);
— dd if=/dev/zero of=/dev/mapper/usb_part_open — заполнение нулями.

Выполните форматирование заполненного случайными числами раздела командой mkfs.ext4 /dev/mapper/usb_part_open.

Присвойте разделу название “persistence” командой e2label /dev/mapper/usb_part_open persistence.

Монтируйте данный раздел к заранее созданной папке, к примеру, /mnt/usb_part командой mount /dev/mapper/usb_part_open /mnt/usb_part (обычно в новых версиях системы данная команда не требуется, раздел автоматически подключается после форматирования и определяется в проводнике).

Создайте конфигурационный файл в корне зашифрованного раздела командой echo “/ union” > /mnt/usb_part/persistence.conf.

Закройте зашифрованный раздел командой cryptsetup luksClose /dev/mapper/usb_part_open.

Перезагрузите систему и выполните вход под Live USB Encrypted Persistence.

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

Создание зашифрованной системы завершено.
3. Проверка работоспособности
При первой загрузке ОС в режиме Encrypted Persistence на зашифрованном разделе создаются системные файлы и папки, для их просмотра выполните следующие действия:
— Перезагрузите систему в незашифрованном режиме Live(686-pae).

— подключите зашифрованный раздел как устройство командой cryptsetup luksOpen /dev/sdb3 usb_part_open.

— Откройте проводник и выберите подключенное устройство persistence. Вы увидите созданный ранее конфигурационный файл persistence.conf и системные папки. В папке rw находится наша зашифрованная система, под которой мы загружаемся. Следовательно, в папке rw сохраняются все изменения произведённые в системе загруженной в зашифрованном режиме.
Если вы загружаетесь в обычном(незашифрованном) режиме, то после перезагрузки все изменения и файлы удаляются.

Спасибо за внимание!