Дешевые облачные бекапы с шифрованием для дома

    Приветствую тебя, Хабраюзер! Я собираюсь тебе поведать об облачном хранилище C14 и о маленькой утилитке, облегчающей рутинную работу при работе с особенностями этого хранилища.
    image

    Забегая вперед скажу, что стоимость хранения 1 Тб составляет 2 евро в месяц. Это хранилище уже упоминалась ранее на Хабре: Ядерный бункер в Париже переоборудуют в дата-центр компании online.net

    Хранилище C14


    Если вы знакомы с C14, можете эту часть пропустить и перейти к следующей.

    В online.net есть множество разнообразных услуг и несколько хранилищ. Нас интересует только C14. Берут деньги за хранение, удаление, открытие архива. Приблизительно оценить свои траты можете у них на сайте Под операциями подразумевается архивирование, удаление и открытие архива с файлами.

    Предлагается следующая схема работы с хранилищем:

    Мы можем в C14 создавать довольно много хранилищ (здесь, и далее по тексту это safe в их терминологии). У каждого хранилища может быть несколько архивов. Архив (archive) — это ос с ограниченным доступом. Подключиться можно через sshfs, rsync, scp, ftp, webdav. Архив доступен для подключения в течении 2, 5 или 7 дней, после этого он будет автоматически заархивирован и помещен очень глубоко в бункер. Если нужно будет восстановить данные — создастся новая ос и в папке /buffer окажутся все ваши ранее сохраненные файлы. При попытке изменить восстановленный архив — произойдет копирование содержимого и архив будет дополнен.

    C14 Backup Tool


    Пара слов о BackInTime
    Так как BackInTime не работает в таких условиях (из-за того, что копирование жестких ссылок на файлы идет через удаленный сервер путем выполнения rsync через ssh), а автоматизации и сохранности данных в случае пожара хочется, я написал программку.

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

    Что утилитка умеет:

    • Шифровать данные на стороне клиента.
    • Не бекапить указанные папки. Регулярные выражения rsync в этом случае доступны только в режиме без шифрования.
    • Автоматически создавать safe, архивы, помещать туда ключи доступа и удалять устаревшие архивы.
    • А также, создавать инкрементные бекапы в рамках одного архива для уменьшения стоимости хранения.
    • Каждый архив представляет собой полностью рабочий бекап. Поэтому их можно удалять без опасений (если в описании к архиву прописана хотя бы одна строка с датой успешного архивирования).
    • Писать большие и не очень логи по xmpp.
    • Не требует composer, если вам не нужны логи по xmpp.
    • Несколько профилей для копирования разного рода данных.
    • Не использует официальную программу для обращений к API
    • Сохраняет конфиг encfs в каждый архив с данными

    Что она не умеет:

    • Досконально проверять конфиг и необходимые зависимости
    • Работать, если у вас больше 100 safe или больше 100 архивов в одном safe.

    Установка


    Для использования вам потребуется

    rsync
    encfs
    sshfs
    ssh


    Для логов по xmpp вам потребуется composer (опционально)

    Загрузка скрипта для тех у кого нет composer и ему не нужны логи по xmpp:

    git clone https://github.com/TheSaturn/C14BackupTool.git
    cd C14BackupTool
    cp config.example.php config.php


    Иначе:

    composer create-project thesaturn/c14-backup-tool
    cp config.example.php config.php


    Настройка:


    Зарегистрируйтесь в online.net. Добавьте платежные данные. Сгенерируйте ключи ssh (если у вас их еще нет) через ssh-keygen. Отредактируйте config.php: вам потребуется ввести API ключ, выбрать папки и т.д. Запустите скрипт (php /path/to/main.php profileName) и ждите сообщения об успешном завершении бекапа. Добавьте скрипт в cron по желанию

    Шишки:


    Запросы к API применяются не всегда мгновенно. Поэтому в коде есть принудительный sleep(). Монтирование по sshfs и подключение rsync тоже не всегда происходит с первого раза. Саппорт разводит руками и утверждает, что все нормально. Поэтому происходит несколько попыток соединиться с хранилищем.

    Краткая версия алгоритма для тех кому хочется разобраться получше
    1. Отправка сообщения о начале процесса
    2. Нахождение safe с заданным именем
    3. Поиск архива в safe куда складывать бекапы, если последний открывался 6 дней назад, то создается новый на 7 дней
    4. Создание необходимых папок
    5. Монтирование encfs (зашифрованного представления фс)
    6. Имена файлов включенных и исключенных из бекапа, шифруются (иначе rsync не поймет)
    7. Монтирование хранилища
    8. Копирование конфига encfs
    9. Очистка папки для временного бекапа (в случае неудачного бекапа там могут находиться файлы)
    10. Создание жесткие ссылок из прошлого бекапа
    11. Отправка сообщения о начале настоящего бекапирования
    12. Rsync
    13. Переименование временной папки
    14. Запись информации о дате успешного создания бекапа в описание архива C14
    15. Отправка сообщения что все прошло удачно
    16. Размонтирование sshfs и encfs


    Буду рад ответить на ваши вопросы. Ссылка на репозиторий.

    Средняя зарплата в IT

    113 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 5 572 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 9

      0
      «Дешевые облачные бекапы с шифрованием для дома»
      Тема вводит в заблуждение, что статья будет о сравнении различных «дешёвых облачных бэкапов», а не о конкретном субъективном бэкапе.
        0
        Согласен, зашел с мыслью посмотреть список, а тут реклама какого-то C14
        0
        Спасибо за C14, недавно искал что-то подобное.
          0
          Главное понимать, что облако в любой момент может потерять ВСЕ ваши данные и вы НИКАК на это не сможете повлиять, поэтому облаку можно доверить только 2-3+ бэкап, но никак не единственный.

          А так — бэкапы надо не только делать, но и проверять.

          Я тут не буду уже повторять, вот тут в соседней статье я в комментах уже привёл примеры что бывает если делать бэкапы на тот же носитель что и основные данные или хранить их в той же квартире:
          https://habrahabr.ru/company/acronis/blog/325362/

          Плюс возможная утеря ключа от шифрования(а если он хранится только в одном месте с данными? смысл тогда делать бэкапы то?) или сбой ПО при создании криптоконтейнеров…

          В общем много всего, можно не одну статью написать как правильно сделать бэкап даже для домашнего пользователя…
            0
            Главное понимать, что облако в любой момент может потерять ВСЕ ваши данные и вы НИКАК на это не сможете повлиять, поэтому облаку можно доверить только 2-3+ бэкап, но никак не единственный.

            поддерживаю
            А так — бэкапы надо не только делать, но и проверять.

            Поддерживаю. К счастью после архивации архива в C14 виден размер архива. Чир позволяет делать кое какие выводы
            Плюс возможная утеря ключа от шифрования(а если он хранится только в одном месте с данными? смысл тогда делать бэкапы то?)

            Encfs конфиг тоже копируется в архив с данными. Забыл упоминуть
            В общем много всего, можно не одну статью написать как правильно сделать бэкап даже для домашнего пользователя…

            По-моему можно запросто уместиться в одну. Если не вдаваться в реализацию. Ваших комментариев почти хватает на статью, а рассмотренно очень много
              0
              >осле архивации архива в C14 виден размер архива.
              наиболее частая проблема при сбоях файловой системы — файл есть, его размер совпадает, но внутри месиво.
              Причем иногда видны куски файлов явно другого формата.

              У меня TrueCrypt раз глюканул — в текстовых файлах появились символы, явно далекие от текста…

              В общем надо задумываться о проверке как минимум контрольной суммы файлов, желательно хоть пару файлов открыть и посмотреть открываются ли, не забывать делать резервную копию ключа шифрования…
              Причём на достаточно надёжные носители и не забывать об их хранении территориально в разных местах…
            0
            По ссылке достаточно большой вес цены добавляет «operation». А он никак не упомянут в этой статье.
              0
              Упомянут. В развернутом виде.
              Приблизительно оценить свои траты можете у них на сайте. Под операциями подразумевается архивирование, удаление и открытие архива с файлами.
                0
                Наверно я неверно выразился, сам процесс действительно упомнят и развернуто Но вот его стоимость. Получается далеко не 2 евро за 1ТБ, как красиво заявлено и здесь и там. Ценообразование в лучших современных маркетинговых традициях.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое