Функция шифрования на уровне файловой системы Btrfs по-прежнему недоступна. Но вы можете использовать сторонний инструмент шифрования, например dm-crypt для шифрования всех устройств хранения вашей файловой системы Btrfs.
В этой статье я покажу вам, как зашифровать устройства хранения, добавленные в файловую систему Btrfs, с помощью dm-crypt. Итак, приступим.
Сокращения
- LUKS - Настройка единого ключа Linux
- HDD - Привод жесткого диска
- SSD - Твердотельный накопитель
Предпосылки
Чтобы подписаться на эту статью:
- Вы должны использовать Fedora 33 Workstation или Ubuntu 20.04 Дистрибутив LTS Linux на вашем компьютере.
- У вас должен быть бесплатный HDD / SSD на вашем компьютере.
Как видите, у меня есть HDD SDB на моем Ubuntu 20.04 LTS машина. Я зашифрую его и отформатирую в файловой системе Btrfs.
$ sudo lsblk -e7
Установка необходимых пакетов в Ubuntu 20.04 LTS
Чтобы зашифровать устройства хранения и отформатировать их с помощью файловой системы Btrfs, вам потребуется btrfs-progs а также cryptsetup пакеты, установленные на вашем Ubuntu 20.04 LTS машина. К счастью, эти пакеты доступны в официальном репозитории пакетов Ubuntu 20.04 LTS.
Сначала обновите кеш репозитория пакетов APT с помощью следующей команды:
$ sudo подходящее обновление
Установить btrfs-progs а также cryptsetup, выполните следующую команду:
Для подтверждения установки нажмите Y а затем нажмите <Входить>.
В btrfs-progs а также cryptsetup пакеты и их зависимости устанавливаются.
В btrfs-progs а также cryptsetup пакеты должны быть установлены на этом этапе.
Установка необходимых пакетов в Fedora 33
Чтобы зашифровать устройства хранения и отформатировать их с помощью файловой системы Btrfs, вам потребуется btrfs-progs а также cryptsetup пакеты, установленные на вашем компьютере с Fedora 33 Workstation. К счастью, эти пакеты доступны в официальном репозитории пакетов Fedora 33 Workstation.
Сначала обновите кеш репозитория пакетов DNF с помощью следующей команды:
$ sudo dnf makecache
Установить btrfs-progs а также cryptsetup, выполните следующую команду:
Fedora 33 Workstation по умолчанию использует файловую систему Btrfs. Таким образом, более вероятно, что у вас уже будут установлены эти пакеты, как вы можете видеть на скриншоте ниже. Если по какой-то причине они не установлены, они будут установлены.
Создание ключа шифрования
Прежде чем вы сможете зашифровать свои устройства хранения с помощью cryptsetup, вам нужно сгенерировать случайный ключ длиной 64 байта.
Вы можете сгенерировать свой ключ шифрования и сохранить его в / etc / cryptkey файл с помощью следующей команды:
$ sudo dd if = / dev / urandom of = / etc / cryptkey bs = 64 count = 1
Новый ключ шифрования должен быть сгенерирован и сохранен в / etc / cryptkey файл.
Файл ключа шифрования / etc / cryptkey могут быть прочитаны всеми по умолчанию, как вы можете видеть на скриншоте ниже. Это угроза безопасности. Мы хотим только корень пользователь, чтобы иметь возможность читать / писать в / etc / cryptkey файл.
Чтобы разрешить только пользователю root читать / писать в / etc / cryptkey файл, измените права доступа к файлу следующим образом:
Как видите, только корень пользователь имеет разрешение на чтение / запись (rw) в / etc / cryptkey файл. Таким образом, никто другой не может видеть, что находится в / etc / cryptkey файл.
Шифрование запоминающих устройств с помощью dm-crypt
Теперь, когда вы сгенерировали ключ шифрования, вы можете зашифровать свое запоминающее устройство. скажем, SDB, с технологией шифрования дисков LUKS v2 (версия 2) следующим образом:
$ sudo cryptsetup -v --type luks2 luksFormat / dev / sdb / etc / cryptkey
cryptsetup предложит вам подтвердить операцию шифрования.
ПРИМЕЧАНИЕ: Все данные вашего HDD / SSD должны быть удалены. Итак, не забудьте переместить все ваши важные данные, прежде чем пытаться зашифровать свой жесткий диск / твердотельный накопитель.
Чтобы подтвердить операцию шифрования диска, введите ДА (в верхнем регистре) и нажмите
На этом этапе запоминающее устройство / dev / sdb должен быть зашифрован ключом шифрования / etc / cryptkey.
Открытие зашифрованных запоминающих устройств
После того, как вы зашифруете запоминающее устройство с помощью cryptsetup, вам нужно открыть его с помощью cryptsetup инструмент, чтобы иметь возможность его использовать.
Вы можете открыть зашифрованное запоминающее устройство SDB и сопоставьте его со своим компьютером как данные запоминающее устройство следующим образом:
$ sudo cryptsetup open --key-file = / etc / cryptkey --type luks2 / dev / sdb data
Теперь расшифрованное устройство хранения будет доступно в пути / dev / mapper / данные. Вы должны создать желаемую файловую систему в / dev / mapper / устройство данных и смонтировать / dev / mapper / устройство данных вместо / dev / sdb впредь.
Создание файловой системы Btrfs на зашифрованных устройствах:
Чтобы создать файловую систему Btrfs на расшифрованном запоминающем устройстве / dev / mapper / данные с данными метки выполните следующую команду:
$ sudo mkfs.btrfs -L данные / dev / mapper / data
Файловая система Btrfs должна быть создана на / dev / mapper / устройство хранения данных, который расшифровывается с запоминающего устройства / dev / sdb (зашифровано LUKS 2).
Монтирование зашифрованной файловой системы Btrfs
Вы также можете смонтировать файловую систему Btrfs, которую вы создали ранее.
Допустим, вы хотите смонтировать файловую систему Btrfs, созданную ранее в /данные каталог.
Итак, создайте /данные каталог следующим образом:
$ sudo mkdir -v / данные
Чтобы смонтировать файловую систему Btrfs, созданную на / dev / mapper / устройство хранения данных в /данные каталог, выполните следующую команду:
Как видите, файловая система Btrfs, созданная на зашифрованном запоминающем устройстве SDB установлен в /данные каталог.
Автоматическое монтирование зашифрованной файловой системы Btrfs во время загрузки
Вы также можете смонтировать зашифрованную файловую систему Btrfs во время загрузки.
Чтобы смонтировать зашифрованную файловую систему Btrfs во время загрузки, вам необходимо:
- расшифровать запоминающее устройство / dev / sdb во время загрузки с помощью / etc / cryptkey файл ключа шифрования
- смонтировать расшифрованное запоминающее устройство / dev / mapper / данные к /данные каталог
Сначала найдите UUID SDB зашифрованное устройство хранения с помощью следующей команды:
$ sudo blkid / dev / sdb
Как видите, UUID SDB зашифрованное запоминающее устройство 1c66b0de-b2a3-4d28-81c5-81950434f972. Для тебя будет иначе. Так что не забудьте сменить его на свой с этого момента.
Чтобы автоматически расшифровать SDB запоминающее устройство во время загрузки, вы должны добавить запись для него на / и т.д. / crypttab файл.
Открой / и т.д. / crypttab файл с нано текстовый редактор следующим образом:
$ sudo nano / etc / crypttab
Добавьте следующую строку в конец / etc / crypttab файл, если вы используете жесткий диск.
Добавьте следующую строку в конец / etc / crypttab файл, если вы используете SSD.
data UUID = 1c66b0de-b2a3-4d28-81c5-81950434f972 / etc / cryptkey luks, noearly, discardКогда вы закончите, нажмите <Ctrl> + Икс, с последующим Y, а также <Входить> чтобы сохранить / etc / crypttab файл.
Теперь найдите UUID расшифрованного / dev / mapper / данные запоминающее устройство с помощью следующей команды:
Как видите, UUID / dev / mapper / данные расшифрованное запоминающее устройство dafd9d61-bdc9-446a-8b0c-aa209bfab98d. Для тебя будет иначе. Так что не забудьте сменить его на свой с этого момента.
Чтобы автоматически смонтировать расшифрованное запоминающее устройство / dev / mapper / данные в каталоге / data во время загрузки, вы должны добавить запись для него в / etc / fstab файл.
Открой / etc / fstab файл с нано текстовый редактор следующим образом:
$ sudo nano / etc / fstab
Теперь добавьте следующую строку в конец / etc / fstab файл:
Когда вы закончите, нажмите <Ctrl> + Икс, с последующим Y, а также <Входить> чтобы сохранить / etc / fstab файл.
Наконец, перезагрузите компьютер, чтобы изменения вступили в силу.
Зашифрованное запоминающее устройство SDB расшифровывается в данные запоминающее устройство и данные запоминающее устройство установлено в /данные каталог.
Как видите, файловая система Btrfs, созданная на расшифрованном / dev / mapper / данные запоминающее устройство установлено в /данные каталог.
Заключение
В этой статье я показал вам, как зашифровать устройство хранения с помощью технологии шифрования LUKS 2 с cryptsetup. Вы также узнаете, как расшифровать зашифрованное запоминающее устройство и отформатировать его с помощью файловой системы Btrfs. А также как автоматически расшифровать зашифрованное запоминающее устройство и смонтировать его во время загрузки. Эта статья должна помочь вам начать работу с шифрованием файловой системы Btrfs.