Pull to refresh

Облако.Mail.Ru + EncFS для резервного копирования домашнего фотоархива

Information Security *
Tutorial
In Clouds (c) Fotolia/dvarg, 18 KB В конце декабря Mail.Ru вновь (впервые с 1997 года ;) выпустила революционный продукт — облачное хранилище, первым активным пользователям которого бесплатно выдают один терабайт. 1 Тб — по меркам начала 2014-го года это совершенно эпический объем, по крайней мере в масштабе национальной отрасли ИТ. Ради справедливости можно отметить, что некоторые китайские компании дают и больше, однако практическая применимость таких предложений для большинства читателей Хабрахабра выглядит сомнительной.

Небольшим изъяном актуальной версии Облака по мнению многих моих друзей и коллег выглядит то, что Облако (по крайней мере официально) не поддерживает WebDAV. Это не позволяет «из коробки» использовать шифрование с помощью простых и популярных в народе средств вроде Boxcryptor. Поскольку сам по себе Boxcryptor — это всего лишь удобная графическая надстройка над encfs+fuse, я решил для себя и для друзей составить короткую и простую инструкцию, как эффективно шифровать данные бэкапов в Облаке.Mail.Ru

Постановка задачи


Я продвинутый фотолюбитель. Мой фотоархив насчитывает примерно 600Гб данных, причем примерно половина из них — это выполненные в высоком разрешении сканы родительских слайдов, начиная с 1957 года. Почти все хранится в NEF+CR2 (это raw-форматы Canon и Nikon), каждая фотокарточка занимает от 15 до 60 мб. Иными словами, бесплатный терабайт от Flickr меня совсем не устраивал в частности из-за невозможности хранить необработанные исходники фото. Начиная с 2008-го года, резервирование архива выглядит так: раз в году я покупаю современный жесткий диск стоимостью 100 евро и копирую на него все содержимое предыдущего диска, а старый HDD отправляется «на пенсию» в медиа-сервер, который включается 3-4 раза в год. У этого подхода много достоинств (несмотря на смертность жестких дисков, данные еще ни разу не пропадали), но есть огромный недостаток — физическое расположение хранилища.

Я много путешествую по миру, и за последние 10 лет суммарно провел в России (где находится медиа-сервер и стопка «отставных» HDD) не более 4-х лет. Иногда случаются казусы, связанные с потерей внешних винчестеров — так я потерял значительную часть архива фотографий 2012-го года, которые банально не довез до своего дома на родине. На словах решение простое — «go cloud», а вот на деле тарифы всех мало-мальски удобных сервисов, позволявших заархивировать 1Тб оригиналов фотоизображений, были долгое время прямо-таки заоблачными.

И вот 20 декабря 2013 года нам было объявлено о том, что все желающие обладатели ящика на mail.ru могут получить в подарок 1 терабайт. Бесплатно. Для любых файлов. Но только у многих возникают вопросы, как хранить свои данные в облаке в зашифрованном виде.

Пошаговое решение

Шаг 1
Зарегистрировать новый ящик на mail.ru, если у вас нет старого. Трудностей не должно возникнуть ни у кого.

Шаг 2
Установить на компьютер, на телефон или на планшет родной клиент cloud.mail.ru и залогиниться, приняв предложение. Пока до 20 января действует акция, вместо принятых по умолчанию 100 Гб (что тоже немало), вам дадут сразу 1024 Гб. Profit.

Примечание для владельцев *nix систем. Облако Mail.Ru по сравнению с другими облачными хостингами прекрасно тем, что позволяет задать произвольное имя для папки, в которой будут храниться синхронизирующие с облаком файлы. Рекомендую воспользоваться этим и назвать папку не по дефолту, а примерно так:

$  mkdir ~/.Encrypted 

Для новичков отдельной строкой упомяну, в никсах если перед названием файла поставить точку, он будет скрытым — соответственно это позволит не засорять пользовательскую директорию визуальным мусором.

Далее все зависит от используемой операционной системы. Лично я использую Mac OS X версии 10.9.x Mavericks, однако все то же самое можно сделать в Linux или Windows. К сожалению, ранним утром субботы у меня не оказалось под рукой лишнего Windows-ПК, однако ближе к вечеру я попробую заехать к родителям и дополнить эту инструкцию, рассмотрев случай с Windows 8.1. Для нетерпеливых замечу, что ключевые компоненты называются fuse4win и encfs4win — с их установкой теоретически не должно быть никаких подводных камней.

Шаг 3
Если у вас нет менеджера портов или пакетов — ставим его. На этом шаге меня ждало некоторое разочарование, т.к. я по старинке использовал MacPorts, а после обновления до 10.9, порт encfs напрочь сломался. Поэтому я решил радикально обновить менеджер пакетов, и вместо морально устаревающего MacPorts поставил себе несколько более модный и популярный Homebrew. Для этой цели официальная страница Homebrew предписывает выполнить в Терминале следующую команду:

$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

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

Пользователи Windows могут с чистой душой пропустить этот шаг.

Шаг 4
Устанавливаем OSXFUSE командой

$ brew install osxfuse

На англоязычных форумах пишут, что предыдущая реализация fuse под Мак — MacFuse давно уже не поддерживается. В принципе, чисто теоретически можно установить OPENFUSE отсюда в виде обычного пакета с графическим с пошаговым мастером, но поскольку для установки encfs нам в любом случае понадобится Homebrew, будем действовать идеологически правильно. Надеюсь, что это обстоятельство не отпугнет для новичков и чайников.

Пользователи Windows на этом шаге ставят себе библиотеку Dokan и fuse4win. Если ничего не работает, а хочется эксперимента — смотрите здесь. Внимание. Работоспособность fuse4win мной пока не проверялась — darii.

Шаг 5
Устанавливаем encfs. К сожалению, по аналогии с предыдущим пунктом сделать это у нас не получится (как я уже упоминал выше, пакет encfs еще не допилен под Maverics, и команда brew install encfs не сработает. На форумах и в блогах я нашел несколько корявое, по моему мнению, решение:

$ brew install https://gist.github.com/defunctzombie/7324625/raw/8c791a397767b7f9e7f725e49a45151885e3c1cb/encfs.rb 

С автором патча (defunctzombie aka Roman Shtylman) я не знаком, но при беглом анализе вышеприведенного файла, это действительно официальный патч, исправляющий ошибку, связанную с sys/endian.h в encfs 1.7.x. Почему мантейнер не включил его в порт — неизвестно.

Шаг 6 (опциональный)
В принципе, все уже может работать, но для красоты можно поставить в систему генератор паролей apg и сгенерировать красивый 34-символьный пароль на зашифрованную партицию.

$ brew install apg
$ apg -M SNcL -m 34

Шаг 7
Первый запуск зашифрованной файловой системы. Убедимся, что в каталоге Облака нет никаких файлов (и удалим их, если они есть):

$ rm -rfv ~/.Encrypted/*

Затем создадим файловую систему:

$ encfs ~/.Encrypted ~/Backup

Выберем «pre-configured paranoia mode» (рекомендуемые базовые настройки для параноиков), нажав на клавиатуре латинскую букву «p». Введем пароль — и все готово.

image

Теперь у вас в пользовательской директории появилась папка Backup, в которую можно скинуть буквально все, что угодно — и в зашифрованном виде это появится в Облаке Mail.Ru. Можно это легко проверить, скопировав любой файл в папку Backup.

Как должно все выглядеть, 114 KB

Дополнение


В принципе, если вам неудобно хранить терабайт резервных копий домашней папке, никто не мешает создать папку .Encrypted, например, на внешнем диске. С другой стороны, конкретно описанный случай оптимален именно для регулярных, но нечастых бэкапов. Как только очередные 50Гб за очередной год благополучно оседают в недрах mail.ru, я захожу в меню выбора папок для синхронизации и снимаю галку. Единственный недостаток данного метода — необходимость где-нибудь хранить таблицу соответствий зашифрованных и нормальных имён этих папок (например, 1Gdea8rfaYDzyVjj4PJHo0a2 = 1999PHOTO). Слабые духом нелюбители отдельных блокнотиков могут на шаге 7 прочитать man encfs и отключить шифрование имен файлов (как это делается в бесплатной версии boxcryptor). Я же предпочитаю олдскулл |-)

image

Что можно сделать дальше?


В принципе вышеописанные действия уже достаточны для того, чтобы бэкапить фотографии раз в несколько месяцев, запуская синхронизацию вручную и монтируя зашифрованную файловую систему командой в консоли. Тем не менее, существует ряд графических (и не только) утилит под линукс и под мак, позволяющий осуществлять всякие более продвинутые вещи вроде автоматического монтирования зашифрованной партиции, работу по расписанию и так далее. Мне кажется, что я и так написал достаточно много текста, и поэтому прошу всех желающих проследовать за рецептами в любимую поисковую систему или в комментарии. Я также буду признателен, если кто-нибудь попробует воспроизвести озвученные шаги на windows-машине и отпишется в комментариях.

И последнее


О безопасности. Данное решение представляет собой лишь «защиту от чужих глаз» и достаточно для того, чтобы заархивировать домашний или даже коммерческий фотоархив. Тем не менее, на мой взгляд, было бы заблуждением использовать его для резервирования всяких действительно важных бизнес-данных, представляющих коммерческую тайну. Судя по официальному сайту, сам алгоритм EncFS не менялся аж с 2005-го года, а последняя актуальная версия была выпущена осенью 2010-го. Недавний (13 явнваря 2014 г.) внешний независимый аудит решения EncFS показал несоответствие этой технологии ряду современных требований к инструментам защиты конфиденциальных данных. Используйте EncFS с умом.
Tags:
Hubs:
Total votes 88: ↑77 and ↓11 +66
Views 112K
Comments Comments 74