Это старая версия документа.


Облачные хранилища становятся всё доступней, однако многие справедливо опасаются держать в них приватные данные. Описываемый в статье способ шифрует данные не только в облаке, но и расположенные локально. Для разблокировки шифрованных данных будет использоваться пароль пользователя операционной системы. Это нужно учитывать при смене пароля, а также для обеспечения возможной синхронизации с другими своими компьютерами. Для решения нашей задачи используем программу EncFS (Шифрованная виртуальная файловая система) и пакет libpam-encfs (модуль для автоматического монтирования файловых систем EncFS использущий механизм модуля PAM)

Всё описанное ниже тестировалось на ОБЛАКО@mail.ru

Установка

sudo apt-get install encfs libpam-encfs

Создание необходимых каталогов

Создадим в каталоге пользователя директорию ~/<cloud>/.private, в которой будут храниться данные в зашифрованном виде, и точку монтирования шифрованной файловой системы ~/private:

mkdir -p ~/<cloud>/.private ~/private

где <cloud> - ваше название каталога который настроен для синхронизации облака. Названия каталогов конечно могут быть своими, но для простоты последующей настройки советую назвать их именно так.

Создаем шифрованную файловую систему EncFS

Создаем шифрованную файловую систему EncFS для уже созданных нами каталогов:

encfs ~/<code>/.private ~/private

в процессе создания выбираем режим эксперта: «x» - это для того что бы иметь возможность выбрать алгоритм шифрования имен «Null» - таким образом, файлы в облаке будут иметь привычные имена и не будут пересинхронизироваться при использовании на разных компьютерах.(?) FIXME

Остальные параметры по умолчанию. При вводе пароля не забудьте выбрать его равным паролю логина юзера в системе.

Настройка автоматического монтирования EncFS при входе пользователя в систему (логине)

1. Редактируем файл «/etc/security/pam_encfs.conf»:

sudo nano /etc/security/pam_encfs.conf

для того что бы отключить автоматическое размонтирование при простое закоментируем строку:

# encfs_default --idle=1

раскомментируем строку:

* .private private -v allow_other

отредактируем её таким образом что бы указать созданные нами ранее каталоги:

* <cloud>/.private private -v allow_other

Именно эта строка указывает на автоматическое монтирование EncFS при входе пользователя в систему. Пути могут быть как относительно домашнего каталога, так и полные.

Если синхронизируемые папки находятся вне домашнего каталога, то придётся вместо «*» прописать имя (логин) пользователя:

example_user	/mnt/<cloud>/.private /home/example_user/private -v allow_other

2. Редактируем файл «/etc/fuse.conf»:

sudo nano /etc/fuse.conf

где раскомментируем строку позволяющую опции монтирования не-root пользователям:

user_allow_other

3. Добавляем пользователя в группу fuse:

sudo usermod -a -G fuse $USER

Использование

Теперь, всякий раз при запуске системы, данные из ~/<cloud>/.private будут монтироваться в ~/private в расшифрованном виде. Пользователь должен работать с файлами расположенными именно в каталоге ~/private. Каталог c шифрованными данными сознательно сделан скрытым (в названии впереди добавлена точка) что бы случайно не ввести туда данные.

Настройка синхронизации с другими компьютерами

При настройке синхронизации с другим компьютером сначала настраиваем синхронизацию с облаком, синхронизируем все файлы и только затем настраиваем EncFS. По скольку, файл «.encfs6.xml» уже будет на месте, программа EncFS, при правильном указании каталогов, должна спросить у вас только пароль.

При будьте готовы к тому, что при неправильных действиях вновь созданный пустой каталог может привести к опустошению содержимого соответствующего каталога в облаке и на всех связанных с ним компьютерах.

Замечания

  1. Если включен автологин в систему в файле «/etc/lightdm/lightdm.conf», то монтирование шифрованного каталога в «~/private» автоматически осуществляться не будет. Оно и понятно. Но не сразу ;-)
  2. В ОС Xubuntu 13.04 при монтировании EncFS в файловом менеджере Thunar появляется съемное устройство «private». А, допустим в Debian 7 XFCE, смонтированная система никак себя не обнаруживает. Об успешном монтировании можно судить или по наличию файла «.encfs6.xml» в точке монтирования, или командами
    df -h | grep encfs

    или

    cat /etc/mtab | grep encfs

  3. В процессе настройки и эксплуатации может потребоваться отмонтировать шифрованную систему. Выполняется командой:

    fusermount -u ~/private

  4. При настройке синхронизации с другим компьютером сначала настраиваем синхронизацию с облаком, синхронизируем все файлы и только затем настраиваем EncFS. По скольку, файл «.encfs6.xml» уже будет на месте, программа EncFS, при правильном указании каталогов, должна спросить у вас только пароль.

При будьте готовы к тому, что при неправильных действиях вновь созданный пустой каталог может привести к опустошению содержимого соответствующего каталога в облаке и на всех связанных с ним компьютерах.

Ссылки