Быстрое шифрование файлов в Linux и синхронизация их через Dropbox

Работаете в Ubuntu и хотите иметь у себя на диске зашифрованную папку, доступ к файлам в которой имеете только вы? Возможно, вы еще хотите, чтобы файлы в этой папке автоматически расшифровывались, когда вы входите в систему под своими именем? А может быть, вы хотите синхронизировать файлы через Dropbox, но опасаетесь, что они станут кому-то доступны, и хотите автоматически шифровать их перед отправкой и так же автоматически расшифровывать у себя на компьютере при синхронизации? Во всех описанных случаях вам пригодится эта статья.

Быстрое шифрование файлов в Linux (на примере 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;

Вот и все, система настроена и работает.


Оставить комментарий

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

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