В этой статье будет показано как зашифровать накопители с помощью LUKS в Linux. LUKS можно использовать для создания зашифрованных и защищенных паролем накопителей таких как HDD, SSD,USB. Во время шифрования LUKS резервирует место на накопителе и хранит на нем необходимую информацию. Которая необходима для шифрования и дешифрования. Этот метод шифрования на диске обеспечивает почти полную совместимость между дистрибутивами Linux. Если вы установили LUKS в своей системе Linux и знаете пароль, то вы легко сможете расшифровать любой диск зашифрованными LUKS в любом дистрибутиве Linux.
Установка LUKS в Linux
LUKS является частью пакета “cryptsetup”, вы можете установить его в Ubuntu, выполнив команду ниже:
$ sudo apt install cryptsetup
Для Fedora можно установить cryptsetup этой командой:
$ sudo dnf install cryptsetup-luks
Cryptsetup может быть установлен и на ArchLinux с помощью следующей команды:
$ sudo pacman -S cryptsetup
Вы также можете скомпилировать его из исходного кода, доступного здесь.
Поиск подключенных накопителей в системе Linux
Чтобы зашифровать диск с помощью LUKS, для начала нужно будет найти нужный диск (узнать его правильный путь). Вы можете выполнить приведенную ниже команду, чтобы просмотреть список всех накопителей (дисков), установленных в вашей системе Linux.
Команда lsblk (list block devices) используется для просмотра информации обо всех доступных блочных устройствах, таких как жесткий диск и флэш-накопители.
$ lsblk -o NAME,PATH,MODEL,VENDOR,SIZE,FSUSED,FSUSE%,TYPE,MOUNTPOINT
Вы увидите в терминале список аналогичный этому:
Если вы посмотрите на полученные данные и метаданные диска, тогда вы можете легко узнать путь подключенных дисков (указан в столбце “PATH”). Например, я подключил USB флешку, изготовленную компанией Transcend. Глядя на скриншот, можно сделать вывод, что путь к моей флешке (накопителю) — “/dev/sdb”.
Вы так же можете выполнить и такую команду, чтобы узнать правильный путь до накопителя.
$ sudo lshw -short -C disk
Вы получите результаты, подобные этим:
Каким бы ни был путь к диску в вашем случае, запишите его, так как он будет использоваться во время шифрования LUKS.
Шифрование диска с помощью LUKS в Linux
Прежде чем идти дальше, вы должны знать, что во время шифрование LUKS удалит все данные на диске.
Внимание: Если на диске есть важные файлы, перенесите их или сделайте резервную копию заранее.
Теперь, когда у вас есть путь к диску, полученный в предыдущем шаге. Вы можете зашифровать диск с помощью LUKS, для этого выполните команду ниже. Обязательно замените путь к диску, который вы узнали в предыдущем шаге “/dev/sdc”.
$ sudo cryptsetup --verbose luksFormat /dev/sdc
Следуйте инструкциям на экране и введите пароль суперпользователя.
В конце вы должны получить сообщение “Команда выполнена успешно” (Command successful), указывающее, что шифрование прошло успешно.
Вы также можете сбросить метаданные шифрования и убедиться, что диск успешно зашифрован. Выполните приведенную ниже команду (при необходимости замените “/dev/sdc”).:
$ sudo cryptsetup luksDump /dev/sdc
Расшифровка и подключение зашифрованного диска LUKS в Linux
Чтобы расшифровать диск, который был зашифрован с помощью LUKS. Требуется выполнить приведенную ниже команду, указав путь к зашифрованному диску, подключенному к вашей системе. Вы можете заменить “drivedata” любым другим именем, оно будет выступать в качестве идентификатора расшифрованного устройства.
$ sudo cryptsetup --verbose luksOpen /dev/sdc drivedata
Сообщение “Команда выполнена успешно” (Command successful) указывает, что диск был расшифрован. И сопоставлен в вашей системе как новое устройство хранения данных под названием “drivedata”. Если вы выполните команду “lsblk”, то подключенный диск будет отображаться как новый накопитель, который подключен к вашей системе Linux.
Зашифрованный диск LUKS был расшифрован и отображен как устройство, но пока не смонтирован. Вы можете проверить информацию о подключенном диске, выполнив приведенную ниже команду (при необходимости замените “drivedata”).:
$ sudo cryptsetup --verbose status drivedata
Подключенный диск действует как запоминающее устройство, подключенное к вашей системе. Но он еще не содержит разделов с файловыми системами. Для чтения и записи файлов на подключенном диске вам потребуется создать раздел. Чтобы создать раздел EXT4, выполните следующую команду, указав путь к подключенному диску.
$ sudo mkfs.ext4 /dev/mapper/drivedata
Дождитесь завершения процесса. Этот шаг необходимо выполнить только один раз или когда вам нужно отформатировать раздел.
Внимание: Не выполняйте этот шаг каждый раз при подключении зашифрованного диска, так как это приведет к удалению существующих данных.
Чтобы управлять файлами на подключенном диске, отформатированном как EXT4, вам потребуется его смонтировать. Для этого последовательно выполните следующие две команды.
$ sudo mkdir /media/mydrive
$ sudo mount /dev/mapper/drivedata /media/mydrive
Первая команда создает новую точку монтирования для подключенного диска. Вы можете указать любой путь к нему. Следующая команда монтирует подключенный диск, чтобы вы могли получить к нему доступ по пути, указанному в предыдущей команде.
После подключения вы сможете получить доступ к подключенному диску из графического файлового менеджера или из командной строки. Чтобы размонтировать, выполните следующую команду, указав полный путь к точке монтирования.
$ sudo umount /media/mydrive
Заключение
LUKS дает возможность шифрования всего накопителя, доступ к которому можно получить только с помощью пароля, созданного во время шифрования. Поскольку это система шифрования на диске, где информация о шифровании хранится на самом зашифрованном устройстве. Вы можете подключать зашифрованный диск к любой системе Linux и расшифровать его с помощью LUKS.