Работаете в Ubuntu и хотите иметь у себя на диске зашифрованную папку, доступ к файлам в которой имеете только вы? Возможно, вы еще хотите, чтобы файлы в этой папке автоматически расшифровывались, когда вы входите в систему под своими именем? А может быть, вы хотите синхронизировать файлы через Dropbox, но опасаетесь, что они станут кому-то доступны, и хотите автоматически шифровать их перед отправкой и так же автоматически расшифровывать у себя на компьютере при синхронизации? Во всех описанных случаях вам пригодится эта статья.
Вообще, я когда-то уже писал статью с подробными инструкциями ровно на эту же тему. Но с тех пор прошло уже почти 10 лет и многое изменилось. Например, для предлагаемой в той статье криптографической файловой системы EncFS в далеком 2014 году провели аудит безопасности, в результате которого выяснилось, что она имеет несколько критических уязвимостей, после чего ее несколько лет не рекомендовали к использованию все, включая ее автора. Потом самые критические уязвимости были исправлены, но что-то еще осталось, хотя на сайтах (типа википедии и обзорных), где раньше висели большие страшные плашки по поводу опасности использования EncFS, эти самые плашки уже поубирали.
Так или иначе, с тех пор появились и другие, более современные и безопасные решения. Среди них — молодая криптографическая файловая система gocryptfs, которая создавалась с оглядкой и по подобию EncFS, но которая при этом не содержит таких уязвимостей. Мало того, даже автор EncFS рекомендует эту систему в качестве замены. Оно и понятно, учитывая их схожесть и ориентированность на быструю работу с шифрованием каждого файла в отдельности, без дополнительных контейнеров (что очень подходит для синхронизации зашифрованных файлов через облачные сервисы типа Dropbox-а). Короче говоря, в этой статье — практически та же инструкция, что и в предыдущей, но с привязкой к gocryptfs.
Установка всех необходимых компонентов
Первым делом нужно установить собственно gocryptfs
. Если используется Ubuntu 18.04 и выше, то этот пакет содержится в стандартных репозиториях и устанавливается командой:
sudo apt install gocryptfs
Дальше нужно установить libpam-mount
(если не нужно автомонтирование при логине, то этот шаг можно пропустить):
sudo apt install libpam-mount
При желании (для собственного удобства) можно также установить GUI для монтирования шифрованных папок — sirikali. Кстати, эта утилита умеет работать не только с gocryptfs, но также и с encfs, cryfs, securefs, и с некоторыми другими системами шифрования. Но этот шаг необязательный, особенно если планируется настроить автомонтирование и не заморачиваться с ручным монтированием.
Настройка шифрования данных через gocryptfs
Создайте директорию, в которой будут лежать закодированные файлы:
mkdir -pv ~/Dropbox/Encrypted
Теперь необходимо инициализировать gocryptfs:
gocryptfs -init ~/Dropbox/Encrypted
В процессе нужно будет ввести мастер-пароль. Если нужно, чтобы происходило автомонтирование, то вводить нужно тот же пароль, который используется при логине. После этого будет выдано сообщение об успешном создании зашифрованной файловой системы:
The gocryptfs filesystem has been created successfully. You can now mount it using: gocryptfs Dropbox/Encrypted MOUNTPOINT
Теперь создайте директорию, в которой будут лежать декодированные файлы:
mkdir -pv ~/Unencrypted
Примонтируйте файловую систему:
gocryptfs ~/Dropbox/Encrypted ~/Unencrypted
На этом шаге будет запрошен мастер-пароль, после чего в случае успешности операции будет выдано сообщение с мастер-ключом. Там же будет сказано, что этот мастер-ключ нужно сохранить в укромном месте, чтобы иметь возможность восстановить данные в случае, если будет забыт мастер-пароль или случайно попортится конфигурационный файл gocryptfs.conf
. Заканчиваться сообщение должно фразой «Filesystem mounted and ready.
»
Вообще, этот самый мастер-ключ будет показываться в консоли при каждом монтировании. Для того, чтобы это не происходило, нужно запускать gocryptfs
с ключом «-q
«:gocryptfs -q ~/Dropbox/Encrypted ~/Unencrypted
Отмонтировать зашифрованную директорию при необходимости можно следующей командой:fusermount -u ~/Unencrypted
На этом с настройкой системы шифрования все, она готова к использованию.
Настройка автоматического монтирования при логине
Если же вы хотите вообще забыть о том, что что-то где-то шифруется, и просто работать со своими файлами, то имеет смысл настроить автоматическое монтирование и расшифровку при логине в систему (после ввода пароля пользователя).
Если вы задали для шифрования тот же пароль, что и для логина в систему, то необходимо открыть и подредактировать вот этот файл:
sudo gedit /etc/security/pam_mount.conf.xml
Прямо перед закрывающим тегом </pam_mount> необходимо вставить следующую строку (заменив username на имя своего пользователя):
<volume user="username" fstype="fuse" options="nodev,nosuid,quiet" path="gocryptfs#/home/%(USER)/Dropbox/Encrypted" mountpoint="/home/%(USER)/Unencrypted" /&rt;
Вот и все, система настроена и работает.
Оставить комментарий