Гид по технологиям

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

• 5 min read • Linux • Обновлено 20 Nov 2025
Шифрование каталога с eCryptfs на Debian Squeeze
Шифрование каталога с eCryptfs на Debian Squeeze

О чём эта инструкция

eCryptfs — это POSIX-совместимая файловая система верхнего уровня для Linux, предназначенная для шифрования данных на уровне файлов и директорий независимо от базовой файловой системы. В этой инструкции показано, как зашифровать обычный каталог (не отдельный раздел) и автоматически монтировать его при загрузке с помощью файла с паролем на USB‑ключе.

Важно: автор исходной инструкции не даёт никаких гарантий работоспособности в вашей среде. Всегда делайте резервные копии перед изменениями.

1 Начальное замечание

В этом руководстве я шифрую домашний каталог /home/falko/, который находится на разделе / (то есть /home/falko/ — обычный каталог, а не отдельный раздел).

2 Установка eCryptfs

Установить eCryptfs можно стандартным способом:

apt-get install ecryptfs-utils

3 Шифрование каталога

Поскольку в каталоге уже есть незашифрованные файлы, сначала сделайте резервную копию, чтобы позже восстановить данные в зашифрованный каталог (иначе файлы станут нечитаемыми после монтирования eCryptfs):

cp -pfr /home/falko/ /tmp/

Затем смонтируйте каталог как ecryptfs:

mount -t ecryptfs /home/falko /home/falko

При первом монтировании система задаст несколько вопросов. Пример диалога показан ниже — отвечайте так, как требуется вашей политике безопасности и рекомендациям (в примере выбран AES, 16 байт ключа, включены некоторые опции по умолчанию):

root@server1:~# mount -t ecryptfs /home/falko /home/falko
Passphrase: <-- some_passphrase
Select cipher:
1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded)
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)
Selection [aes]: <-- ENTER
Select key bytes:
1) 16
2) 32
3) 24
Selection [16]: <-- ENTER
Enable plaintext passthrough (y/n) [n]: <-- ENTER
Enable filename encryption (y/n) [n]: <-- ENTER
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=bd28c38da9fc938b
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
Would you like to append sig [bd28c38da9fc938b] to
[/root/.ecryptfs/sig-cache.txt]
in order to avoid this warning in the future (yes/no)? : <-- yes
Successfully appended new sig to user sig cache file
Mounted eCryptfs
root@server1:~#

Проверьте вывод команды mount — в списке должен появиться /home/falko, смонтированный как ecryptfs:

root@server1:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/home/falko on /home/falko type ecryptfs (rw,ecryptfs_sig=bd28c38da9fc938b,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)
root@server1:~#

Восстановите резервную копию в зашифрованный каталог и удалите временную копию:

cp -pfr /tmp/falko/ /home/
rm -fr /tmp/falko/

Для проверки можно скопировать, например, /etc/hosts в /home/falko и убедиться, что при смонтированном eCryptfs содержимое читается:

cp /etc/hosts /home/falko
cat /home/falko/hosts

Теперь размонтируйте каталог:

umount /home/falko

И снова попробуйте просмотреть файл — вы увидите нечитабельные, криптированные данные:

cat /home/falko/hosts
?æËÊÀû5)í}Ó`§wʽ.ÂçµÔyiIezz°Ñd¦R,`Ëi,0ñ*úÐ%^-']YÑj÷#6÷¨Y-]«é²ùô

(Фрагмент зашифрованного содержимого показан выше — он не предназначен для чтения человеком.)

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

Чтобы каталог монтировался автоматически при загрузке, понадобится файл с паролем. Для безопасности этот файл можно хранить на USB‑ключе.

  1. Подключите USB‑флешку и определите её устройство и тип файловой системы:
fdisk -l

Пример вывода (в моём случае устройство /dev/sdb1, файловая система FAT32):

root@server1:~# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00035e35

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3793    30461952   83  Linux
/dev/sda2            3793        3917      992257    5  Extended
/dev/sda5            3793        3917      992256   82  Linux swap / Solaris

Disk /dev/sdb: 8086 MB, 8086617600 bytes
255 heads, 63 sectors/track, 983 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e439f

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         983     7895916    b  W95 FAT32
root@server1:~#
  1. Смонтируйте USB‑ключ, например, в /mnt/usb:
mkdir /mnt/usb
mount /dev/sdb1 /mnt/usb
  1. Посмотрите содержимое /root/.ecryptfs/sig-cache.txt — нам нужна подпись (signature):
cat /root/.ecryptfs/sig-cache.txt
bd28c38da9fc938b
  1. Создайте файл /root/.ecryptfsrc с параметрами монтирования, используя подпись из sig-cache.txt. Пример содержимого:
key=passphrase:passphrase_passwd_file=/mnt/usb/passwd_file.txt
ecryptfs_sig=bd28c38da9fc938b
ecryptfs_cipher=aes
ecryptfs_key_bytes=16
ecryptfs_passthrough=n
ecryptfs_enable_filename_crypto=n
  1. Создайте файл с паролем на USB‑ключе:
vi /mnt/usb/passwd_file.txt

Содержимое файла (используйте ваш реальный passphrase):

passphrase_passwd=some_passphrase
  1. Добавьте в /etc/fstab две строки: сначала для USB‑ключа (важно — USB должен быть смонтирован перед шифрованным каталогом), затем для зашифрованного каталога. Пример:
[...]
/dev/sdb1       /mnt/usb        vfat    ro      0 0
/home/falko /home/falko ecryptfs defaults 0 0
  1. Перезагрузите систему:
reboot

Если во время загрузки USB‑ключа не удаётся примонтировать (например, из‑за порядка инициализации), можно добавить строку /bin/mount -a в конец /etc/rc.local перед exit 0, чтобы повторно попытаться примонтировать все записи из fstab в конце загрузки:

/bin/mount -a
exit 0

Это обеспечит попытку монтирования USB и зашифрованного каталога в конце процесса загрузки.

5 Тестирование и проверка

  • Убедитесь, что после перезагрузки каталог /home/falko доступен и содержимое читаемо (при вставленной флешке).
  • Проверьте логи (dmesg, /var/log/syslog) на ошибки ecryptfs при монтировании.
  • Попробуйте вынуть USB‑ключ и перезагрузиться — система должна не иметь доступа к зашифрованному каталогу.

Типичные проблемы и их решение

  • Проблема: USB‑ключ монтируется слишком поздно, и ecryptfs не может найти passwd_file. Решение: убедитесь, что строка для USB в /etc/fstab идёт перед ecryptfs; при необходимости добавьте /bin/mount -a в /etc/rc.local.
  • Проблема: Неправильный passphrase — монтирование завершается ошибкой. Решение: проверьте содержимое файла passwd_file.txt и соответствие passphrase при ручном монтировании.
  • Проблема: Файлы после монтирования выглядят некорректно. Решение: не восстанавливайте резервную копию поверх замонтированного каталога до тех пор, пока eCryptfs не смонтирован корректно и не доступен как расшифрованный.

Безопасность — рекомендации

  • Храните файл с паролем на физически защищённом USB‑ключе; используйте аппаратное шифрование USB, если доступно.
  • Ограничьте права доступа на passwd_file.txt (chmod 600) и на /root/.ecryptfsrc.
  • Регулярно делайте резервные копии (лучше — зашифрованные резервные копии).
  • Рассмотрите использование TPM или LUKS для более надёжной интеграции с системой и автоматического монтирования.

Альтернативные подходы

  • LUKS/dm‑crypt — лучше подходит для шифрования целых разделов и предоставляет сильную криптографию на уровне блочного устройства.
  • EncFS или gocryptfs — современные пользовательские файловые системы шифрования с пользовательским пространством; удобны для синхронизации с облаком, но имеют свои ограничения в безопасности.
  • eCryptfs удобен, когда нужно шифровать отдельные каталоги поверх существующей файловой системы.

Контрольный список перед внедрением

  • Сделана полная резервная копия каталога
  • Установлен пакет ecryptfs-utils
  • Сформирован и проверен passphrase
  • Создан файл passwd_file.txt на USB и защищён правами доступа
  • Добавлены корректные записи в /root/.ecryptfsrc и /etc/fstab
  • Проверено монтирование вручную
  • Перезагрузка и проверка автоматического монтирования

Критерии приёмки

  • После перезагрузки и при вставленном USB ключе каталог /home/falko монтируется как ecryptfs и файлы доступны пользователю.
  • При вынутом USB‑ключе файлы в каталоге /home/falko не читаемы.
  • Нет сообщений об ошибках в журналах, связанных с ecryptfs.

Короткий глоссарий

  • Passphrase — секретный пароль, используемый для генерации ключа шифрования.
  • eCryptfs — стековая файловая система для шифрования на уровне файлов.
  • sig — подпись (signature) ключа, необходимая для автоматического распознавания ключа при монтировании.

Заключение

eCryptfs предоставляет удобный способ шифрования отдельных каталогов без переразметки диска. Для автоматизации монтирования при загрузке разумно хранить файл с паролем на защищённом USB‑ключе и правильно настраивать /etc/fstab и /root/.ecryptfsrc. Всегда тестируйте процедуру восстановления и имейте рабочие резервные копии данных.

Дополнительные ссылки

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро