Шифруем USB-накопитель с помощью Linux

Во многих дистрибутивах Linux пакет cryptsetup уже установлен по умолчанию.
Если в вашем дистрибутиве его нет, вы можете использовать соответствующую команду, показанную ниже, чтобы установить программу с помощью менеджера пакетов вашей системы.
Чтобы установить cryptsetup на Ubuntu, Debian, Linux Mint:
$ sudo apt install cryptsetup
Для установки cryptsetup на CentOS, Fedora, AlmaLinux и Red Hat:
$ sudo dnf install cryptsetup
Чтобы установить cryptsetup на Arch Linux и Manjaro:
$ sudo pacman -S cryptsetup
После установки программного обеспечения идем дальше!
Разметка USB-накопителя
Давайте начнем с разметки нашего USB-накопителя.
Вставьте USB-накопитель в USB-разъем компьютера и от имени пользователя root выполните команду :
# fdisk -l
Просмотрите вывод команды fdisk и найдите имя файла диска вашего USB-накопителя.
В нашем случае это устройство – /dev/sdc.
Получив имя нашего USB-накопителя, мы можем создать разделы, которые будут использоваться для шифрования и хранения неприватных данных.
В данном примере мы разделим USB-накопитель на два раздела, первый из которых будет иметь размер 2 ГБ, а оставшееся пространство будет использовано для создания второго раздела, в результате чего получатся /dev/sdX1 и /dev/sdX2 соответственно.
Для этого используйте любой инструмент для создания разделов, который вы считаете подходящим; в этой статье мы будем использовать fdisk.
# fdisk /dev/sdX
Выполните следующие команды в интерактивном режиме fdisk:
Command (m for help): n
[Press enter twice]
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-31703005, default 31703005): +2GB
Command (m for help): n
[Press enter three times]
Command (m for help): w
Теперь у нас есть два раздела, первый из которых имеет размер 2 ГБ и будет содержать наши зашифрованные файлы.
Другой раздел занимает остальную часть USB-накопителя и будет содержать нечувствительную информацию.
Эти два раздела представлены как /dev/sdX1 и /dev/sdX2, но ваши могут быть другими.
Теперь мы разместим файловую систему на разделах.
Мы используем FAT32, но вы можете использовать любую другую.
# mkfs.fat /dev/sdX1 # mkfs.fat /dev/sdX2
Чтобы избежать атак шифрования по шаблону, рекомендуется записать в раздел несколько случайных данных, прежде чем приступать к шифрованию.
Для записи таких данных в раздел можно использовать следующую команду dd.
Это может занять некоторое время.
Время зависит от энтропии данных, генерируемых вашей системой:
# dd bs=4K if=/dev/urandom of=/dev/sdX1
Шифрование раздела USB-накопителя
Теперь пришло время зашифровать только что созданный раздел.
Для этого мы будем использовать инструмент cryptsetup.
Если команда cryptsetup недоступна в вашей системе, убедитесь, что пакет cryptsetup установлен.
Следующая команда Linux зашифрует раздел /dev/sdX1 256-битным алгоритмом AES XTS.
# cryptsetup -h sha256 -c aes-xts-plain -s 256 luksFormat /dev/sdX1
Вам будет предложено задать парольную фразу для дешифровки устройства, которая будет использоваться для его разблокировки и просмотра конфиденциального содержимого на зашифрованном разделе.
Установка USB-раздела и расшифровка
На следующем этапе мы зададим имя нашего зашифрованного раздела, чтобы он был распознан системным маппером устройств.
Вы можете выбрать любое имя.
Например, мы можем использовать имя “private”:
# cryptsetup luksOpen /dev/sdX1 private
После выполнения этой команды ваш зашифрованный раздел будет доступен вашей системе как /dev/mapper/private.
Теперь мы можем создать точку монтирования и смонтировать раздел:
# mkdir /mnt/private # mount /dev/mapper/private /mnt/private # chown -R myusername.myusername /mnt/private
Теперь ваш зашифрованный раздел доступен в каталоге /mnt/private.
Если вы больше не хотите иметь доступ к зашифрованному разделу вашего USB-накопителя, вам нужно сначала отмонтировать его от системы, а затем использовать команду cryptsetup для закрытия подключенной защиты.
# umount /mnt/private # cryptsetup luksClose /dev/mapper/private
Монтирование зашифрованного USB-раздела на рабочем столе
Рабочий стол может отреагировать на зашифрованный раздел всплывающим диалоговым окном с предложением ввести пароль для зашифрованного раздела.
Однако некоторые системы Linux могут не предоставлять возможности монтирования зашифрованных разделов, и вам придется делать это вручную.
В любом случае, убедитесь, что у вас установлен пакет cryptsetup и, соответственно, загружен модуль md_crypt в работающее ядро, чтобы использовать ваш зашифрованный USB-накопитель.
Заключение
В этом руководстве мы рассмотрели, как создать зашифрованный раздел для защиты конфиденциальных файлов на USB-накопителе.
Это включало создание отдельного раздела на USB-устройстве, а затем использование cryptsetup для его шифрования.
Мы также узнали, как монтировать и размонтировать раздел.