Шифрование каталога с помощью eCryptfs на Ubuntu 16.04
Кратко
Краткое пошаговое руководство по шифрованию обычного каталога (/home/secure) с помощью eCryptfs на Ubuntu 16.04. Показываю установку, монтирование, проверку, восстановление данных и рекомендации по безопасности.
Основная идея
eCryptfs — это POSIX-совместимая стековая криптосистема для Linux. Она позволяет шифровать содержимое каталога или директории, даже если эта директория не является отдельным разделом. Файлы шифруются на уровне файловой системы, а не раздела, поэтому решение удобно для шифрования отдельных папок пользователя.
1 Предварительное замечание
В этом руководстве будет зашифрован каталог /home/secure. Это обычный каталог, не отдельный раздел. Если вы собираетесь зашифровать существующий каталог с файлами, заранее создайте резервную копию — после монтирования как eCryptfs незашифрованные файлы в исходном каталоге станут недоступны, пока каталог смонтирован как eCryptfs или не восстановлены из бэкапа.
2 Установка eCryptfs
Установите утилиты eCryptfs:
apt-get -y install ecryptfs-utilsВажно: команда требует прав root или sudo.
3 Шифрование каталога с помощью eCryptfs
Создайте (или подготовьте) каталог /home/secure:
mkdir /home/secureЕсли в каталоге уже есть файлы, сделайте их резервную копию перед монтированием:
cp -pfr /home/secure/ /tmp/Монтирование каталога с типом файловой системы ecryptfs:
mount -t ecryptfs /home/secure /home/secureПри первом запуске появится серия вопросов. Пример взаимодействия:
root@server1:~# mount -t ecryptfs /home/secure /home/secure
Passphrase: <-- Enter a secure password
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]: <-- 32
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=bd28c38da9fc938b
Mounted eCryptfs
root@server1:~#Пояснения:
- Passphrase — пароль/фраза доступа, используйте надёжную фразу.
- Cipher — шифр (например, aes).
- Key bytes — длина ключа (16/32 байта и т.д.).
- Plaintext passthrough — если включить, отдельные файлы могут оставаться в открытом виде; обычно оставляют «n» для безопасности.
- Filename encryption — шифрует имена файлов; по умолчанию отключено, но рекомендуется включить, если нужно защищать имена файлов.
После успешного монтирования проверьте вывод mount:
mountВ списке вы увидите строку, где /home/secure смонтирован как ecryptfs.
4 Работа с файлами после монтирования
Если вы создаёте или копируете файлы в /home/secure, пока каталог смонтирован как eCryptfs, вы сможете читать и записывать их как обычно:
cp /etc/hosts /home/secure
cat /home/secure/hosts
После отмонтирования файлы в каталоге будут храниться в зашифрованном виде и не будут читабельны обычными средствами:
umount /home/secure
cat /home/secure/hosts
Если вы заранее сделали бэкап существующих файлов, восстановите их в зашифрованный каталог после монтирования и затем удалите временную копию:
cp -pfr /tmp/secure/ /home/
rm -fr /tmp/secure/5 Проверки и приёмка
Критерии приёмки:
- Каталог /home/secure успешно монтируется с типом ecryptfs.
- При монтировании файлы доступны для чтения/записи.
- После отмонтирования данные на диске не читаемы в открытом виде.
Проверочные тесты:
- Скопировать тестовый файл, прочитать при монтировании, отмонтировать и убедиться, что файл «бинарный» на диске.
- Попробовать перезагрузить систему и повторно смонтировать (или настроить автосборку при загрузке, если нужно).
6 Безопасность и лучшие практики
Важно:
- Используйте длинную случайную passphrase или управляйте ключами через защищённый менеджер.
- Отключайте plaintext passthrough, если хотите, чтобы все файлы всегда хранились в зашифрованном виде.
- Включите шифрование имён файлов, если необходимо скрыть структуру данных.
- Не храните ключи и незашифрованные бэкапы рядом с зашифрованными данными.
- Убедитесь, что swap и временные каталоги не раскрывают содержимое файлов (настраивайте шифрование swap / tmp отдельно).
Рекомендации по правам доступа:
- Ограничьте доступ к каталогу и управляйте правами владельцев и групп.
- Используйте SELinux/AppArmor по необходимости для дополнительного контроля доступа.
7 Когда eCryptfs не подходит
Примеры, когда eCryptfs — не лучший выбор:
- Нужно шифровать весь диск целиком (используйте LUKS/dm-crypt для полного диска).
- Требуется защита данных «в покое» и при загрузке без необходимости монтирования пользователем с passphrase (требуется централизованная система управления ключами).
- Необходимо шифрование на уровне облачного хранилища с клиентской интеграцией (рассмотрите решения типа клиентского шифрования или контейнеры).
8 Альтернативные подходы
- LUKS/dm-crypt — для шифрования разделов и всего диска.
- EncFS — похожая стековая файловая система; имеет и преимущества, и ограничения по сравнению с eCryptfs.
- Инструменты уровня приложений (gpg, age) — для шифрования отдельных файлов вне файловой системы.
9 Методология быстрого развёртывания (минимальный чеклист)
- Создать резервную копию исходных данных.
- Установить ecryptfs-utils.
- Создать каталог и смонтировать с ecryptfs.
- Выбрать cipher, key length и включить filename encryption (если нужно).
- Проверить доступность файлов при монтировании и отсутствие читаемости после отмонтирования.
- Настроить автоматизацию/скрипты монтирования и резервного копирования ключей (по необходимости).
10 Роли и ответственность (короткий чеклист)
- Администратор: установка пакетов, настройка монтирования, управление ключами.
- Пользователь: создаёт passphrase, использует каталог в рамках предоставленных прав.
- Оператор бэкапов: хранит защищённые копии ключей и резервных данных вне целевого хоста.
11 Быстрый глоссарий (1 строка)
- eCryptfs — стековая криптосистема для шифрования файлов на уровне файловой системы.
- Passphrase — фраза-пароль, используемая для генерации ключей шифрования.
- Cipher — алгоритм шифрования (например, AES).
12 Ссылки
- eCryptfs: https://launchpad.net/ecryptfs
- Debian: http://www.debian.org/
Резюме
eCryptfs подходит для быстрого шифрования отдельных каталогов без переразбиения дисков. Он прост в установке и использовании, но требует внимания к ключам, настройкам plaintext passthrough и шифрованию имён файлов. Для полного шифрования диска рассматривайте LUKS/dm-crypt.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента