Поиск по сайту:

Как зашифровать каталоги с помощью 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

Статьи по данной тематике