Как зашифровать каталоги с помощью eCryptfs в Linux
В этом руководстве объясняется, что такое eCryptfs, как шифровать каталоги с помощью eCryptfs в Linux, а также как монтировать и отключать зашифрованные каталоги.
Что такое eCryptfs?
eCryptfs — это корпоративная криптографическая составная файловая система, совместимая с POSIX, для Linux. Обратите внимание, что eCryptfs не является подсистемой полного шифрования диска на уровне ядра, такой как "dm-crypt".
В механизме полного шифрования диска шифруется весь раздел или диск, на котором находится файловая система. Но eCryptfs — это многоуровневая файловая система, которую можно смонтировать в любом каталоге поверх основной файловой системы.
Используя eCryptfs, мы можем легко создать зашифрованный каталог для хранения конфиденциальных данных и смонтировать его в любом каталоге.
Никакого отдельного раздела или заранее выделенного пространства на самом деле не требуется! eCryptfs должен хорошо работать в локальных файловых системах, таких как EXT3
, EXT4
, XFS
, JFS
и ReiserFS
и т. д.
eCryptfs также поддерживает сетевые файловые системы, такие как NFS
, CIFS
, Samba
и WebDAV
, но не полностью функционален, поскольку работает. в локальных файловых системах.
Он хранит криптографические метаданные в заголовках файлов, поэтому зашифрованные данные можно легко перемещать между разными пользователями и даже системами. eCryptfs включен в ядро Linux начиная с версии 2.6.19.
eCryptfs является производным от Cryptfs Эреза Садока и платформы FiST для многоуровневых файловых систем.
eCryptfs изначально создан Майклом Халкроу и Технологическим центром IBM Linux. Сейчас его поддерживают Дастин Киркланд и Тайлер Хикс из Canonical, материнской компании Ubuntu.
Установите eCryptfs в Linux
eCryptfs упакован для многих операционных систем Linux и доступен в репозиториях по умолчанию.
Чтобы установить eCryptfs в Arch Linux и его вариантах, таких как EndeavourOS и Manjaro Linux, запустите:
sudo pacman -S ecryptfs-utils
В Debian, Ubuntu, Linux Mint:
sudo apt-get install ecryptfs-utils
В Федоре:
sudo dnf install ecryptfs-utils
В openSUSE:
sudo zypper --install ecryptfs-utils
Шифрование каталогов с помощью eCryptfs в Linux
Для целей данного руководства я собираюсь зашифровать каталог с именем "ostechnix"
.
Обратите внимание, что не следует шифровать непустой каталог. Если вы это сделаете, существующие данные все равно останутся незашифрованными или к ним будет невозможно получить доступ.
Поэтому, если каталог содержит какие-либо данные, переместите их в другое место, а затем зашифруйте. После того как каталог зашифрован, переместите резервную копию в зашифрованный каталог.
Чтобы зашифровать каталог ostechnix
с помощью файловой системы ecryptfs, выполните следующую команду от имени пользователя sudo
или root
:
sudo mount -t ecryptfs ~/ostechnix/ ~/ostechnix/
При первом шифровании каталога вам будет предложено ответить на несколько вопросов, таких как выбор шифра, ключевых байтов, включение/отключение передачи открытого текста, включение/отключение шифрования имени файла и т. д. Внимательно прочитайте и ответьте на них соответствующим образом. Я использую значения по умолчанию.
[sudo] password for sk:
Passphrase: <----- Enter your passphrase here
Select cipher:
1) aes: blocksize = 16; min keysize = 16; max keysize = 32
2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
Selection [aes]: <----- Press ENTER
Select key bytes:
1) 16
2) 32
3) 24
Selection [16]: <----- Press ENTER
Enable plaintext passthrough (y/n) [n]: <----- Press ENTER
Enable filename encryption (y/n) [n]: <----- Press ENTER
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=8567ee2ae5880f2d
WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt],
it looks like you have never mounted with this key
before. This could mean that you have typed your
passphrase wrong.
Would you like to proceed with the mount (yes/no)? : yes <----- Type "yes" and press ENTER
Would you like to append sig [8567ee2ae5880f2d] to
[/root/.ecryptfs/sig-cache.txt]
in order to avoid this warning in the future (yes/no)? : yes <----- Type "yes" and press ENTER
Successfully appended new sig to user sig cache file
Mounted eCryptfs
Шифрование каталогов с помощью eCryptfs в системах Linux
Вот и все! Каталог "ostechnix"
зашифрован с помощью eCryptfs и автоматически смонтирован.
Пожалуйста, запишите парольную фразу для монтирования, которую вы указали на первом шаге. Он понадобится вам, чтобы разблокировать зашифрованный каталог в следующий раз.
Файл подписи с именем "sig-cache.txt" будет создан в каталоге "/root/.ecryptfs/". Этот файл используется для идентификации парольной фразы монтирования в связке ключей ядра.
Теперь откройте файловый менеджер и вы увидите, что зашифрованный каталог смонтирован.
Просмотр смонтированных файловых систем eCryptfs в файловом менеджере
Вы также можете проверить, действительно ли он смонтирован из командной строки, используя команду «mount»:
mount
В конце вы увидите вывод, как показано ниже:
/home/sk/ostechnix on /home/sk/ostechnix type ecryptfs (rw,relatime,ecryptfs_sig=8567ee2ae5880f2d,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)
Просмотр смонтированных файловых систем eCryptfs с помощью команды монтирования
Поздравляем! Мы успешно зашифровали каталог с помощью eCryptfs. Теперь переместите все важные файлы и папки в зашифрованный каталог.
Вы можете читать и записывать данные, сохраненные в этом каталоге, если каталог смонтирован с помощью eCryptfs. После размонтирования каталога вы можете просматривать все, что в нем сохранено, но не можете читать.
Монтировать и размонтировать зашифрованные каталоги
Чтобы отключить каталог eCryptfs, просто запустите:
sudo umount ~/ostechnix
Чтобы смонтировать его снова, запустите:
sudo mount -t ecryptfs ~/ostechnix/ ~/ostechnix/
Введите парольную фразу для монтирования, а затем выберите шифр, ключевой байт. Обратите внимание, что вам следует ввести те же значения, которые вы вводили при создании зашифрованного каталога.
Passphrase:
Select cipher:
1) aes: blocksize = 16; min keysize = 16; max keysize = 32
2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
Selection [aes]:
Select key bytes:
1) 16
2) 32
3) 24
Selection [16]:
Enable plaintext passthrough (y/n) [n]:
Enable filename encryption (y/n) [n]:
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=8567ee2ae5880f2d
Mounted eCryptfs
Теперь зашифрованный каталог будет перемонтирован.
Тестовый зашифрованный каталог
Создайте новый текстовый файл с именем "encrypt.txt"
в зашифрованном каталоге:
nano ~/ostechnix/encrypt.txt
Добавьте в него некоторое содержимое. Я собираюсь добавить следующую строку:
This is an encrypted file saved in ostechnix.com.
Сохраните и закройте файл.
А затем размонтируйте зашифрованный каталог:
sudo umount ~/ostechnix
Теперь попробуйте просмотреть файл с помощью любого текстового редактора или команды «cat»:
cat ~/ostechnix/encrypt.txt
Вы увидите некоторых искаженных и мусорных персонажей.
Просмотр содержимого файлов без монтирования зашифрованного каталога
Чтобы просмотреть содержимое файла, необходимо снова перемонтировать каталог.
sudo mount -t ecryptfs ~/ostechnix/ ~/ostechnix/
Теперь вы можете просмотреть фактическое содержимое файла, хранящегося в зашифрованном каталоге.
просмотреть содержимое файла после перемонтирования зашифрованного каталога
Изменить парольную фразу для монтирования
Если вы хотите изменить парольную фразу для монтирования, просто удалите файл "/root/.ecryptfs/sig-cache.txt" . Он создается при первом шифровании каталога. Этот файл используется для идентификации парольной фразы монтирования в связке ключей ядра.
sudo rm /root/.ecryptfs/sig-cache.txt
Теперь запустите ту же команду, которую мы использовали для шифрования каталога, чтобы создать новую парольную фразу:
sudo mount -t ecryptfs ~/ostechnix/ ~/ostechnix/
Автоматическое монтирование зашифрованного каталога при перезагрузке
Возможно, вам не понравится вручную монтировать зашифрованный каталог при каждой перезагрузке. Если да, то есть простой способ автоматически смонтировать зашифрованный каталог. Нам понадобится USB-накопитель для хранения подписи и пути к файлу паролей.
Подключите USB-накопитель. Создайте точку монтирования и подключите USB-накопитель к ней, как показано ниже:
sudo mkdir /mnt/usb
sudo mount /dev/sdb1 /mnt/usb/
Здесь /dev/sdb1
— мой USB-накопитель. Вы можете найти информацию о своем диске, как показано по этой ссылке.
Далее нам нужны данные файла подписи. Помните, что текстовый файл с именем "/root/.ecryptfs/sig-cache.txt"
создается при первом шифровании каталога. ? Откройте его и запишите подпись:
sudo cat /root/.ecryptfs/sig-cache.txt
Пример вывода:
8567ee2ae5880f2d
Создайте новый текстовый файл с именем "password.txt"
в каталоге точки монтирования USB, чтобы сохранить парольную фразу монтирования.
sudo nano /mnt/usb/password.txt
Введите свою парольную фразу в этот файл. Я использую следующую парольную фразу:
P@ssw0rd123#@!
Сохраните и закройте файл.
Создайте файл с именем "/root/.ecryptfsrc"
, чтобы сохранить все необходимые параметры для монтирования зашифрованного каталога:
sudo nano /root/.ecryptfsrc
Добавьте следующие строки:
key=passphrase:passphrase_passwd_file=/mnt/usb/password.txt
ecryptfs_sig=8567ee2ae5880f2d
ecryptfs_cipher=aes
ecryptfs_key_bytes=16
ecryptfs_passthrough=n
ecryptfs_enable_filename_crypto=n
Обратите внимание, что вам необходимы те же значения, которые вы указали при создании зашифрованного каталога. Сохраните и закройте файл.
Затем откройте файл /etc/fstab
и добавьте следующие строки:
/dev/sdb1 /mnt/usb ext3 ro 0 0
/home/sk/ostechnix /home/sk/ostechnix ecryptfs defaults 0 0
USB-накопитель следует монтировать перед зашифрованным разделом, поскольку он содержит парольную фразу для монтирования зашифрованного каталога. Поэтому вам следует поместить строку USB перед строкой зашифрованного каталога в вашем файле /etc/fstab
.
Наконец, перезагрузите систему. С этого момента /home/sk/ostechnix
должен монтироваться автоматически.
Заключение
Как видите, создавать зашифрованные каталоги с помощью eCryptfs невероятно просто! Если вы когда-нибудь хотели реализовать шифрование на уровне файловой системы, шифрование на основе файлов или шифрование файлов/папок без особых усилий, eCryptfs может быть хорошим выбором!
Ресурс:
- Веб-сайт eCryptfs