Содержание
Здесь пока описаны некоторые, наиболее часто интересующие пользователей аспекты работы.
При желании/необходимости можно дополнять.
Установка и миграция
Установка необходимого пакета:
sudo apt-get install ecryptfs-utils
Перед миграцией убедитесь, что на домашнем разделе доступно свободное место, по размеру равное, как минимум, домашней директории пользователя.
Миграцию настоятельно рекомендуется выполнять из текстового виртуального терминала, предварительно завершив графический сеанс.
Миграция домашнего каталога:
sudo ecryptfs-migrate-home -u "$USER"
После шифрования swap-раздела использование спящего режима (S4, Suspend to disk) станет невозможным, но ждущий режим (S3, Suspend to RAM) останется доступен.
Шифрование swap-раздела:
sudo ecryptfs-setup-swap
Монтирование
Способы монтирования
Варианты монтирования по степени детализации:
- Высокоуровневое:
# high level ecryptfs mount LOGIN="user" sudo -iu "$LOGIN" ecryptfs-mount-private
- Среднего уровня:
# middle level ecryptfs mount LOGIN="user" sudo -iu "$LOGIN" WRAPPED_PASSPHRASE_FILE="/home/$USER/.ecryptfs/wrapped-passphrase" PASSPHRASE="password" echo "$PASSPHRASE" | ecryptfs-insert-wrapped-passphrase-into-keyring "$WRAPPED_PASSPHRASE_FILE" mount.ecryptfs_private
- Низкоуровневое:
# low level ecryptfs mount sudo -i LOGIN="user" WRAPPED_PASSPHRASE_FILE="/home/$LOGIN/.ecryptfs/wrapped-passphrase" ecryptfs-unwrap-passphrase "$WRAPPED_PASSPHRASE_FILE" PASSPHRASE="password" printf "%s" "$PASSPHRASE" | ecryptfs-add-passphrase --fnek - MOUNT_PASSPHRASE_SIG_FILE="/home/.ecryptfs/$LOGIN/.ecryptfs/Private.sig" ECRYPTFS_SIG="$(sed -n 1p $MOUNT_PASSPHRASE_SIG_FILE)" ECRYPTFS_FNEK_SIG="$(sed -n 2p $MOUNT_PASSPHRASE_SIG_FILE)" mount.ecryptfs "/home/.ecryptfs/$LOGIN/.Private" "/mnt" \ -o ecryptfs_passthrough=n,\ ecryptfs_cipher=aes,\ ecryptfs_key_bytes=16,\ ecryptfs_enable_filename_crypto=y,\ ecryptfs_sig="$ECRYPTFS_SIG",\ ecryptfs_fnek_sig="$ECRYPTFS_FNEK_SIG",\ passphrase_passwd="$PASSPHRASE"
Пример монтирования
# Получаем права суперпользователя arcfi@arcfi-laptop:~$ sudo -i [sudo] password for arcfi: # Запоминаем логин пользователя, домашний каталог которого будем пытаться монтировать root@arcfi-laptop:~# LOGIN="arcfi" # Запоминаем путь к файлу с парольной фразой root@arcfi-laptop:~# WRAPPED_PASSPHRASE_FILE="/home/$LOGIN/.ecryptfs/wrapped-passphrase" # Расшифровываем фразу, используя пароль пользователя root@arcfi-laptop:~# ecryptfs-unwrap-passphrase $WRAPPED_PASSPHRASE_FILE Passphrase: 68b329da9893e34099c7d8ad5cb9c940 # Запоминаем полученную парольную фразу root@arcfi-laptop:~# PASSPHRASE="68b329da9893e34099c7d8ad5cb9c940" # Добавляем необходимые ключи на связку ключей root@arcfi-laptop:~# printf "%s" "$PASSPHRASE" | ecryptfs-add-passphrase --fnek - Inserted auth tok with sig [8cf8463b34caa8ac] into the user session keyring Inserted auth tok with sig [871a52d5dd7ad1ef] into the user session keyring # Запоминаем путь до файла с ключами root@arcfi-laptop:~# MOUNT_PASSPHRASE_SIG_FILE="/home/.ecryptfs/$LOGIN/.ecryptfs/Private.sig" # Извлекаем из файла имена ключей # Следует обратить внимание, что эти имена должны соответствовать # полученным ранее в результате команды ecryptfs-add-passphrase # Проверить это можно будет командой "echo $ECRYPTFS_SIG $ECRYPTFS_FNEK_SIG" root@arcfi-laptop:~# ECRYPTFS_SIG="$(sed -n 1p $MOUNT_PASSPHRASE_SIG_FILE)" root@arcfi-laptop:~# ECRYPTFS_FNEK_SIG="$(sed -n 2p $MOUNT_PASSPHRASE_SIG_FILE)" # Убеждаемся, что каталог /mnt доступен root@arcfi-laptop:~# ls /mnt/ # Монтируем зашифрованный каталог пользователя root@arcfi-laptop:~# mount.ecryptfs /home/.ecryptfs/$LOGIN/.Private /mnt \ > -o ecryptfs_passthrough=n,\ > ecryptfs_cipher=aes,\ > ecryptfs_key_bytes=16,\ > ecryptfs_enable_filename_crypto=y,\ > ecryptfs_sig=$ECRYPTFS_SIG,\ > ecryptfs_fnek_sig=$ECRYPTFS_FNEK_SIG,\ > passphrase_passwd=$PASSPHRASE Attempting to mount with the following options: ecryptfs_unlink_sigs ecryptfs_fnek_sig=871a52d5dd7ad1ef ecryptfs_key_bytes=16 ecryptfs_cipher=aes ecryptfs_sig=8cf8463b34caa8ac Mounted eCryptfs # Проверяем корректность монтирования root@arcfi-laptop:~# ls /mnt/ Dropbox examples.desktop PDF Видео Документы Загрузки Картинки Музыка Общедоступные Рабочий стол Шаблоны # Демонтируем root@arcfi-laptop:~# umount /mnt/ # Проверяем корректность демонтирования root@arcfi-laptop:~# ls /mnt/ # Завершаем сеанс суперпользователя root@arcfi-laptop:~# logout arcfi@arcfi-laptop:~$
Удалённое открытие/закрытие
# ecryptfs@ssh open ecryptfs_open(){ gvfs-mount "sftp://$SSH_USER@$SSH_HOST:$SSH_PORT" ssh "$SSH_USER@$SSH_HOST" -p "$SSH_PORT" -i "$SSH_KEY" \ "echo \"$ECR_PASS\" | ecryptfs-insert-wrapped-passphrase-into-keyring ; mount.ecryptfs_private" } # ecryptfs@ssh close ecryptfs_close(){ ssh "$SSH_USER@$SSH_HOST" -p "$SSH_PORT" -i "$SSH_KEY" \ "ecryptfs-umount-private" gvfs-mount -u "sftp://$SSH_USER@$SSH_HOST:$SSH_PORT" }