Duplicity — резервное копирование с шифрованием

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

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

Зачем нужно шифрование?

Резервное копирование, как известно, нужно для того, чтобы обеспечить сохранность наиболее ценной и важной информации. Само по себе сохранение резервной копии в удаленном хранилище (пусть даже в самом надежном) не является достаточной мерой для ее защиты. О том, что абсолютно вся наша информация уязвима и может быть использована против нас, сегодня не говорит только ленивый. В новостях то и дело появляются сообщения об ухищрениях, которые киберпреступники используют для получения доступа к секретным документам. Полгода назад никому ранее не известный американский гражданин Эдвард Сноуден вызвал немалый переполох во всем мире, рассказав о том, как спецслужбы используют информационные технологии для слежки за людьми.

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

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

Но если он не знает кодового слова, открыть этот файл у него не получится. На подбор кодового слова может уйти не один год.

Duplicity поддерживает различные протоколы для соединения с файловым сервером: SSH/SCP, FTP, HSI, WebDAV, Tahoe-LAFS и Amazon S3. С поддержкой OpenStack Swift дело обстоит несколько сложнее.

На официальной man-странице указано, что для этого нужны дополнительные модули и плагины, но не дано подробных рекомендацией по их установке и настройке. Ниже мы расскажем о том, как «подружить» Duplicity с нашим хранилищем.

Установка и настройка

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

sudo apt-get install duplicity

Для работы с облачным хранилищем на клиентской машине должны быть обязательно установлены пакеты python-swiftclient и librsync:

sudo apt-get install python-swiftclient
sudo apt-get install librsync-dev

Теперь нужно установить плагин swiftbackend. Сначала клонируем с launchpad соответствующий репозиторий (для этого на клиентскую машину потребуется также установить систему контроля версий Bazaar — Launchpad использует именно ее):

sudo apt-get install bzr
bzr branch lp:~mhu-s/duplicity/swiftbackend

Затем выполним следующую команду:

cd swiftbackend && sudo python dist/setup.py install

По завершении установки Duplicity будет готова к работе с облачным хранилищем.

Настройка резервного копирования

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

# Авторизационые данные для подключения к хранилищу
export SWIFT_USERNAME="имя пользователя"
export SWIFT_PASSWORD="пароль для входа в хранилище"
export SWIFT_AUTHURL="https://auth.selcdn.ru"

# Выполнение архивирования 
duplicity /путь к папке/на клиентской машине swift://имя контейнера в хранилище

# Очистка авторизационных данных для безопасности
unset SWIFT_USERNAME
unset SWIFT_USERNAME
unset SWIFT_AUTHURL

Сохраним этот файл под именем, например, backup.sh и сделаем его исполняемым (chmod +x backup.sh). После этого выполним следующую команду:

$ ./backup.sh

Далее GnuPG попросит кодовое слово для доступа к файлам.
После этого начнется резервное копирование. Статистка будет отображена в консоли:

--------------[ Статистика резервного копирования ]--------------
StartTime 1391068911.00 (Thu Jan 30 12:01:51 2014)
EndTime 1391068911.02 (Thu Jan 30 12:01:51 2014)
ElapsedTime 0.02 (0.02 seconds)
SourceFiles 5
SourceFileSize 190210 (186 KB)
NewFiles 5
NewFileSize 190210 (186 KB)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 5
RawDeltaSize 186114 (182 KB)
TotalDestinationSizeChange 185217 (181 KB)
Errors 0
-----------------------------------------------------------------

В указанный контейнер облачного хранилища будут добавлены новые файлы:

duplicity-full-signatures.20140130T073550Z.sigtar.gpg
duplicity-full.20140130T073550Z.manifest.gpg
duplicity-full.20140130T073550Z.vol1.difftar.gpg

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

duplicity swift://имя контейнера /путь/к папке/на локальной/машине

Сохраним этот скрипт под именем restore.sh и сделаем соответствующий файл исполняемым.

При выполнении команды ./restore.sh GnuPG запросит кодовое слово. После ввода кодового слова все файлы из резервной копии будут загружены в указанную директорию на локальной машине.

Что еще почитать по теме

T-Rex 30 марта 2021

Что такое SMTP-протокол и как он устроен?

SMTP (Simple Mail Transfer Protocol) — протокол передачи почты. Он был представлен еще в 1982 году, но не теряет актуальности до сих пор. В статье разбираемся, какие задачи решает протокол и как он ра…
T-Rex 30 марта 2021
Владимир Туров 1 сентября 2020

Дело совершенно секретного iPod

Это был обычный серый день в конце 2005 года. Я сидел на рабочем месте и писал код для следующей версии iPod. Вдруг без стука ворвался директор ПО для iPod, начальник моего начальника, и закрыл дверь.
Владимир Туров 1 сентября 2020
T-Rex 21 августа 2020

TrendForce: цены на SSD упадут

Эксперты DRAMeXchange предсказывают значительное падение цен на оперативную память и твердотельные накопители в ближайшее время. Причина — сокращение спроса на чипы для NAND и DRAM.
T-Rex 21 августа 2020

Новое в блоге

Михаил Фомин 24 июня 2022

Docker Swarm VS Kubernetes — как бизнес выбирает оркестраторы

Рассказываем, для каких задач бизнесу больше подойдет Docker Swarm, а когда следует выбрать Kubernetes.
Михаил Фомин 24 июня 2022
Ульяна Малышева 30 сентября 2022

«Нулевой» локальный диск. Как мы запустили облако только с сетевыми дисками и приручили Ceph

Чем хороши сетевые диски и почему именно Ceph, рассказал директор по развитию ядра облачной платформы Иван Романько.
Ульяна Малышева 30 сентября 2022
Валентин Тимофеев 30 сентября 2022

Как проходит онбординг сотрудников ИТО? Что нужно, чтобы выйти на смену в дата-центр

Рассказываем, как обучаем новых сотрудников, какие задачи и испытания проходят инженеры прежде, чем выйти на свою первую смену.
Валентин Тимофеев 30 сентября 2022
T-Rex 28 сентября 2022

Книги по SQL: что почитать новичкам и специалистам

Собрали 6 книг, которые помогут на старте изучения SQL и при углублении в тему.
T-Rex 28 сентября 2022