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

в 8:21, , рубрики: backup, encfs, mac os x, бэкапы, информационная безопасность, Облако Mail.ru, хостинг, шифрование данных, метки: , , , , ,

In Clouds (c) Fotolia/dvarg, 18 KB В конце прошлого года Mail.Ru вновь (впервые с 1997 года ;) выпустила революционный продукт — облачное хранилище, первым активным пользователям которого бесплатно выдают 1 Тб. 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 (http://brew.sh/index_ru.html) предписывает выполнить в Терминале следующую команду:

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

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

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

Шаг 4

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

$ brew install openfuse

На англоязычных форумах пишут, что предыдущая реализация 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).

image

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

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

И последнее

О безопасности. Данное решение представляет собой лишь «защиту от чужих глаз» и достаточно для того, чтобы заархивировать домашний или даже коммерческий фотоархив. Тем не менее, на мой взгляд, было бы заблуждением использовать его для резервирования всяких действительно важных бизнес-данных, представляющих коммерческую тайну. Судя по официальному сайту, текущая версия EncFS была выпущена еще осенью 2010 года. Недавний (13 явнваря 2014 г.) внешний независимый аудит решения EncFS показал несоответствие этой технологии ряду современных требований к инструментам защиты конфиденциальных данных. Используйте EncFS с умом.

Автор: darii

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js