Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:encfs_cloud [2013/12/01 20:40] [Настройка автоматического монтирования EncFS при входе пользователя в систему (логине)] |
wiki:encfs_cloud [2017/11/09 17:03] (текущий) [Теперь о реверсе] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Используем EncFS для "прозрачного" шифрования данных в облаках ====== | ====== Используем EncFS для "прозрачного" шифрования данных в облаках ====== | ||
{{:wiki:angel_penguin.png?200 |}}Облачные хранилища становятся всё доступней, однако многие справедливо опасаются держать в них приватные данные. Описываемый в статье способ шифрует данные не только в облаке, но и расположенные локально. Для разблокировки шифрованных данных будет использоваться пароль пользователя операционной системы. Это нужно учитывать при смене пароля, а также для обеспечения возможной синхронизации с другими своими компьютерами. | {{:wiki:angel_penguin.png?200 |}}Облачные хранилища становятся всё доступней, однако многие справедливо опасаются держать в них приватные данные. Описываемый в статье способ шифрует данные не только в облаке, но и расположенные локально. Для разблокировки шифрованных данных будет использоваться пароль пользователя операционной системы. Это нужно учитывать при смене пароля, а также для обеспечения возможной синхронизации с другими своими компьютерами. | ||
- | Для решения нашей задачи используем программу EncFS (Шифрованная виртуальная файловая система) и пакет libpam-encfs (модуль для автоматического монтирования файловых систем EncFS использущий механизм модуля PAM) | + | Для решения нашей задачи используем программу EncFS (Шифрованная виртуальная файловая система) и пакет libpam-encfs (модуль для автоматического монтирования файловых систем EncFS использующий механизм модуля PAM) |
+ | |||
+ | Всё описанное ниже тестировалось на ОБЛАКО@mail.ru | ||
======Установка ====== | ======Установка ====== | ||
<code bash>sudo apt-get install encfs libpam-encfs</code> | <code bash>sudo apt-get install encfs libpam-encfs</code> | ||
======Создание необходимых каталогов===== | ======Создание необходимых каталогов===== | ||
Создадим в каталоге пользователя директорию ~/<cloud>/.private, в которой будут храниться данные в зашифрованном виде, и точку монтирования шифрованной файловой системы ~/private: | Создадим в каталоге пользователя директорию ~/<cloud>/.private, в которой будут храниться данные в зашифрованном виде, и точку монтирования шифрованной файловой системы ~/private: | ||
- | <code bash>mkdir ~/<cloud>/.private ~/private</code> | + | <code bash>mkdir -p ~/<cloud>/.private ~/private</code> |
где <cloud> - ваше название каталога который настроен для синхронизации облака. | где <cloud> - ваше название каталога который настроен для синхронизации облака. | ||
Названия каталогов конечно могут быть своими, но для простоты последующей настройки советую назвать их именно так. | Названия каталогов конечно могут быть своими, но для простоты последующей настройки советую назвать их именно так. | ||
======Создаем шифрованную файловую систему EncFS===== | ======Создаем шифрованную файловую систему EncFS===== | ||
Создаем шифрованную файловую систему EncFS для уже созданных нами каталогов: | Создаем шифрованную файловую систему EncFS для уже созданных нами каталогов: | ||
- | <code bash>encfs ~/<code>/.private ~/private</code> | + | <code bash>encfs ~/<cloud>/.private ~/private</code> |
в процессе создания выбираем режим эксперта: "x" - это для того что бы иметь возможность выбрать алгоритм шифрования имен "Null" - таким образом, файлы в облаке будут иметь привычные имена и не будут пересинхронизироваться при использовании на разных компьютерах.(?) FIXME | в процессе создания выбираем режим эксперта: "x" - это для того что бы иметь возможность выбрать алгоритм шифрования имен "Null" - таким образом, файлы в облаке будут иметь привычные имена и не будут пересинхронизироваться при использовании на разных компьютерах.(?) FIXME | ||
Строка 27: | Строка 29: | ||
Пути могут быть как относительно домашнего каталога, так и полные. | Пути могут быть как относительно домашнего каталога, так и полные. | ||
+ | Если синхронизируемые папки находятся вне домашнего каталога, то придётся вместо <<*>> прописать имя (логин) пользователя: | ||
+ | <code bash>example_user /mnt/<cloud>/.private /home/example_user/private -v allow_other</code> | ||
2. Редактируем файл <</etc/fuse.conf>>: | 2. Редактируем файл <</etc/fuse.conf>>: | ||
<code bash>sudo nano /etc/fuse.conf</code> | <code bash>sudo nano /etc/fuse.conf</code> | ||
Строка 34: | Строка 38: | ||
<code bash>sudo usermod -a -G fuse $USER</code> | <code bash>sudo usermod -a -G fuse $USER</code> | ||
======Использование===== | ======Использование===== | ||
- | Теперь, всякий раз при запуске системы, данные из ~/.private должны монтироваться в ~/private в расшифрованном виде. | + | Теперь, всякий раз при запуске системы, данные из ~/<cloud>/.private будут монтироваться в ~/private в расшифрованном виде. Пользователь должен работать с файлами расположенными именно в каталоге ~/private. Каталог c шифрованными данными сознательно сделан скрытым (в названии впереди добавлена точка) что бы случайно не ввести туда данные. |
- | Остается только симлинком связать ~/.private c приватным каталогом облачного хранилища. Например: | + | ======Настройка синхронизации с другими компьютерами===== |
- | <code bash>ln -s ~/.private ~/<cloud>/.private</code> | + | При настройке синхронизации с другим компьютером сначала настраиваем синхронизацию с облаком, синхронизируем все файлы и только затем настраиваем EncFS. Поскольку, файл <<.encfs6.xml>> уже будет на месте, программа EncFS, при правильном указании каталогов, должна спросить у вас только пароль. |
+ | <note warning>Будьте готовы к тому, что при неправильных действиях вновь созданный пустой каталог может привести к опустошению содержимого соответствующего каталога в облаке и на всех связанных с ним компьютерах.</note> | ||
======Замечания===== | ======Замечания===== | ||
- | 1. Если включен автологин в систему в файле <</etc/lightdm/lightdm.conf>>, то монтирование шифрованного каталога в <<~/private>> автоматически осуществляться не будет. Оно и понятно. Но не сразу ;-) | + | - Если включен автологин в систему в файле <</etc/lightdm/lightdm.conf>>, то монтирование шифрованного каталога в <<~/private>> автоматически осуществляться не будет. Оно и понятно. Но не сразу ;-) |
+ | - В ubuntu при монтировании EncFS в файловом менеджере появляется съемное устройство <<private>>. А, допустим в Debian 7 XFCE, смонтированная система никак себя не обнаруживает. Об успешном монтировании можно судить или по наличию файла <<.encfs6.xml>> в точке монтирования, или командами <code bash>df -h | grep encfs</code> или <code bash>cat /etc/mtab | grep encfs</code> | ||
+ | - В процессе настройки и эксплуатации может потребоваться отмонтировать шифрованную систему. Выполняется командой: <code bash>fusermount -u ~/private</code> | ||
+ | |||
+ | ======Теперь о реверсе===== | ||
+ | Хранение локальных файлов в шифрованном виде может быть нецелесообразным, например, если домашний каталог и так шифруется, или, как у меня, зашифрован весь корень, или же вы вообще не собираетесь шифровать данные локально. Для такого случая есть интересная опция --reverse. Что бы её использовать меняем местами как в настройках, так и в голове понятия SOURCE и TARGET. Теперь источником будут обычные нешифрованные данные, а в точке монтирования TARGET PATH будут шифрованные данные. | ||
+ | |||
+ | Таким образом меняется команда создания шифрованной файловой системы: | ||
+ | |||
+ | <code bash>encfs --reverse ~/private ~/<cloud>/.private</code> | ||
+ | |||
+ | И строка в файле «/etc/security/pam_encfs.conf» меняется соответственно: | ||
+ | |||
+ | <code bash>* private <cloud>/.private -v allow_other</code> | ||
+ | <note important>Для расшифровки синхронизированных данных на другом (новом) компьютере необходимо хранить файл encfs6.xml из каталога с нешифрованными данными.</note> После окончания синхронизации - загрузки всех шифрованных данных на новый компьютер, приостанавливаем синхронизацию. Расшифровываем данные с помощью файла encfs6.xml и пароля во временный каталог: | ||
+ | <code bash>ENCFS6_CONFIG=~/temp_dir/.encfs6.xml encfs ~/<cloud>/.private ~/temp_dir/private</code> | ||
+ | Копируем расшифрованные данные из временного каталога на своё постоянное место хранения: | ||
+ | <code bash>cp -r ~/temp_dir/private ~/private</code> | ||
+ | Очищаем каталог ~/<cloud>/.private от шифрованных данных любым известным вам способом. И создаем новую шифрованную файловую систему с использованием сохраненного файла encfs6.xml: | ||
+ | <code bash>ENCFS6_CONFIG=~/temp_dir/.encfs6.xml encfs --reverse ~/private ~/<cloud>/.private</code> | ||
+ | Проверяем наличие шифрованных данных в нужном каталоге и возобновляем синхронизацию с облаком. | ||
+ | ======Сведения о безопасности encfs===== | ||
+ | <note warning>Согласно аудиту безопасности, выполненному Taylor Hornby (Defuse Security), текущая реализация Encfs уязвима или потенциально уязвима нескольким типам атак. Например, атакующий с правами чтения/записи шифрованных данных может понизить стойкость шифрования последующих данных без уведомления законного пользователя, или может использовать временной анализ для получения информации. | ||
+ | |||
+ | Пока эти проблемы не будут устранены, encfs не должна рассматриваться безопасной для важных данных в случаях, где эти атаки возможны.</note> | ||
- | 2. В ОС Xubuntu 13.04 при монтировании EncFS в файловом менеджере Thunar появляется съемное устройство <<private>>. А, допустим в Debian 7 XFCE, смонтированная система никак себя не обнаруживает. Об успешном монтировании можно судить или по наличию файла <<.encfs6.xml>> в точке монтирования, или командами | ||
- | <code bash>df -h | grep encfs</code> | ||
- | или | ||
- | <code bash>cat /etc/mtab | grep encfs</code> | ||
- | 3. В процессе настройки и эксплуатации может потребоваться отмонтировать шифрованную систему. Выполняется командой: | ||
- | <code bash>fusermount -u ~/private</code> | ||
- | 4. При настройке синхронизации с другим компьютером скачиваем с облака файл <<encfs6.xml>>, добавляем к названию файла точку: <<.encfs6.xml>> и заменяем им аналогичный файл в каталоге <<~/.private>>, предварительно отмонтировав шифрованную файловую систему. Или же, если облако уже синхронизировано с локальным компьютером, останавливаем синхронизацию, отмонтируем EncFS, каталог <<~/<cloud>/.private>> переносим в <<~/>> и делаем символьную ссылку | ||
- | <code bash>ln -s ~/.private ~/<cloud>/.private</code> | ||
- | В случае с mail.ru придётся ещё удалить служебные файлы <<.Mail.Ru_Cloud>> и <<Mail.Ru_Cloud_$USER>> и перенастроить синхронизацию с облаком. Поэтому при настройке нового компьютера саму синхронизацию файлов следует запускать в последнюю очередь. | ||
===== Ссылки ===== | ===== Ссылки ===== | ||