🐧 Как зашифровать каталоги с помощью eCryptfs на Linux — Information Security Squad
🐧 Как зашифровать каталоги с помощью eCryptfs на Linux

В этом руководстве объясняется, что такое eCryptfs и как шифровать каталоги с помощью eCryptfs на Linux.

eCryptfs — это POSIX-совместимая криптографическая «стековая» файловая система для Linux.

Обратите внимание, что eCryptfs не является подсистемой полного шифрования диска на уровне ядра, такой как «dm-crypt».

В механизме полного дискового шифрования весь раздел или диск, на котором находится файловая система, шифруется.

Но eCryptfs — это сложенная файловая система, которая может быть смонтирована в любом каталоге и поверх основной файловой системы.

Используя eCryptfs, мы можем легко создать зашифрованный каталог для хранения конфиденциальных данных и смонтировать его в любом каталоге.

Никакого отдельного раздела или предварительно выделенного пространства на самом деле не потребуется!

eCryptfs должен хорошо работать на локальных файловых системах, таких как EXT3, EXT4, XFS, JFS, ReiserFS и т. д.

Инструмент также поддерживает сетевые файловые системы, такие как NFS, CIFS, Samba и WebDAV, но не с полным функционалом, поскольку работает на локальных файловых системах.

eCryptfs хранит криптографические метаданные в заголовках файлов, поэтому зашифрованные данные могут быть легко перемещены между различными пользователями и даже системами.

eCryptfs был включен в ядро ​​Linux с версии 2.6.19.

eCryptfs является производной от Cryptfs Эреза Задока и инфраструктуры FiST для стековых файловых систем.

Первоначально его автором был Майкл Хэлкроу и IBM Linux Technology Center.

Теперь его активно поддерживают Дастин Киркланд и Тайлер Хикс из Canonical, дочерней компании Ubuntu.

Установка eCryptfs на Linux

eCryptfs был упакован для многих операционных систем Linux и доступен в репозиториях по умолчанию.

Чтобы установить eCryptfs в Arch Linux и его вариантах, таких как Manjaro Linux, выполните:

$ sudo pacman -S ecryptfs-utils

На Debian, Ubuntu, Linux Mint:

$ sudo apt-get install ecryptfs-utils

На Fedora:

$ sudo dnf install ecryptfs-utils

На openSUSE:

$ sudo zypper --install ecryptfs-utils

Шифрование каталогов с помощью eCryptfs на Linux

В целях данного руководства я собираюсь зашифровать каталог с именем «itsecforu»

Обратите внимание, что вы не должны шифровать непустую директорию.

Если вы это сделаете, существующие данные по-прежнему останутся незашифрованными, или данные не будут доступны.

Поэтому, если каталог содержит какие-либо данные, переместите их в другое место, а затем зашифруйте их.

Как только каталог зашифрован, переместите резервную копию в зашифрованный каталог.

Чтобы зашифровать каталог itsecforu с файловой системой ecryptfs, выполните следующую команду от имени пользователя sudo или root:

$ sudo mount -t ecryptfs ~/itsecforu/ ~/itsecforu/

При первом шифровании каталога вам будет предложено ответить на несколько вопросов, таких как выбор шифра, ключа, включить / отключить передачу открытого текста, включить / отключить шифрование имени файла и т. д.

Внимательно прочитайте и ответьте на них соответствующим образом.

Я выполню со значениями по умолчанию.

[sudo] password for itsecforu: 
Passphrase: <----- Enter your 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]: <----- 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

Теперь каталог «itsecforu» был зашифрован с помощью eCryptfs и автоматически смонтирован.

Пожалуйста, обратите внимание на парольную фразу, которую вы ввели на первом шаге.

Файл подписи с именем «sig-cache.txt» будет создан в каталоге «/root/.ecryptfs/».

Этот файл используется для идентификации парольной фразы в связке ключей ядра.

Вы также можете проверить, действительно ли каталог смонтирован из командной строки, используя команду «mount»:
$ mount

В конце вы увидите вывод, как показано ниже:

/home/itsecforu/itsecforu on /home/itsecforu/itsecforu type ecryptfs (rw,relatime,ecryptfs_sig=8567ee2ae5880f2d,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)

Мы успешно зашифровали каталог с помощью eCryptfs.

Теперь переместите все ваши важные файлы и папки в зашифрованный каталог.

Вы можете читать и записывать данные, сохраненные в этом каталоге, если каталог монтируется с помощью eCryptfs.

После размонтирования каталога вы можете просматривать то, что сохранено в каталоге, но не можете читать эти файлы.

Как смонтировать / размонтировать зашифрованные каталоги

Чтобы размонтировать каталог eCryptfs, просто запустите:

$ sudo umount ~/itsecforu

Чтобы смонтировать его снова, запустите:

$ sudo mount -t ecryptfs ~/itsecforu/ ~/itsecforu/
Введите парольную фразу для монтирования и затем выберите шифр и т.д.
Обратите внимание, что вы должны ввести те же значения, которые вы ввели при создании зашифрованного каталога.
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 ~/itsecforu/encrypt.txt
Добавьте в него некоторое содержимое.
Я собираюсь добавить следующую строку:
This is an encrypted file saved in itsecforu.ru

Сохраните и закройте файл.

А затем размонтируйте зашифрованный каталог:

$ sudo umount ~/itsecforu

Теперь попробуйте просмотреть файл, используя любой текстовый редактор или команду «cat»:

$ cat ~/itsecforu/encrypt.txt
Вы увидите несколько искаженных и странных символов
Чтобы просмотреть содержимое файла, необходимо снова подмонтировать каталог.
$ sudo mount -t ecryptfs ~/itsecforu/ ~/itsecforu/
Теперь вы можете просмотреть фактическое содержимое файла, хранящегося в зашифрованном каталоге.

Как изменить парольную фразу

Если вы хотите изменить пароль для монтирования, просто удалите файл «/root/.ecryptfs/sig-cache.txt».

Он создается при первом шифровании каталога.

Этот файл используется для идентификации парольной фразы монтирования в связке ключей ядра.

$ sudo rm /root/.ecryptfs/sig-cache.txt
Теперь запустите ту же команду, которую мы используем для шифрования каталога для создания новой парольной фразы:
$ sudo mount -t ecryptfs ~/itsecforu/ ~/itsecforu/

Как смонтировать зашифрованный каталог автоматически при перезагрузке

Возможно, вам не понравится монтировать зашифрованный каталог вручную при каждой перезагрузке.

Если это так, есть простой способ автоматически смонтировать зашифрованный каталог.

Нам нужен 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/itsecforu/itsecforu /home/itsecforu/itsecforu ecryptfs defaults 0 0
USB-накопитель следует монтировать перед зашифрованным разделом, поскольку он содержит ключевую фразу для монтирования зашифрованного каталога.
Поэтому вам следует поместить строку usb перед строкой каталога в вашем файле /etc/fstab.
Наконец, перезагрузите вашу систему
С этого момента папка /home/itsecforu/itsecforu должна быть автоматически смонтирована.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *