Как установить и настроить бэкап с шифрованием на VPS
Данные на сервере рано или поздно теряются: сбой диска, ошибочная команда, взлом или отказ провайдера. Единственная настоящая защита — регулярный бэкап, а если данные чувствительны, то бэкап с шифрованием, чтобы копии нельзя было прочитать при утечке. Разберём, как установить и настроить бэкап с шифрованием на VPS через restic: инициализировать зашифрованный репозиторий, автоматизировать копии по расписанию, настроить ротацию и, главное, проверять восстановление.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Почему бэкап нужно шифровать
Обычный бэкап это копия ваших данных, и если она попадёт не в те руки — при утечке из облачного хранилища, доступе к чужому диску, перехвате при передаче — все ваши файлы окажутся открыты. Особенно это касается бэкапов, которые вы храните на стороннем хранилище или другом сервере: вы доверяете свои данные третьей стороне. Шифрование снимает эту проблему: даже получив файлы бэкапа, без ключа их невозможно прочитать.
Современные инструменты вроде restic шифруют данные на стороне клиента, то есть на вашем сервере, ещё до отправки в хранилище. Провайдер хранилища видит только зашифрованный набор блоков и не может извлечь из него ничего. Это правильная модель: доверять хранение можно кому угодно, а доверять содержимое — никому. Плата за это — ответственность за ключ: потеряете пароль от репозитория, и восстановить данные будет невозможно даже вам. Поэтому пароль хранят надёжно и отдельно от сервера.
Почему restic
Для зашифрованных бэкапов есть несколько хороших инструментов, и restic один из самых удобных. Он шифрует всё по умолчанию, дедуплицирует данные, экономя место, умеет работать с множеством хранилищ — локальный диск, другой сервер по SSH, объектные хранилища S3 и совместимые — и делает инкрементальные копии, сохраняя только изменения. Всё это одной программой без сложной настройки.
Альтернатива — borg, тоже отличный инструмент с похожими возможностями, но restic проще в работе с облачными хранилищами. Выбор между ними во многом дело вкуса. Мы разберём restic как более универсальный для VPS. Установить его можно из репозитория или скачать готовый бинарник, программа не требует зависимостей и работает как единый исполняемый файл.
Прежде чем настраивать бэкап, стоит определиться с тремя вещами: что копировать, куда и как часто. Копировать нужно данные, которые вы не сможете легко воссоздать, — конфигурации сервисов, базы данных, пользовательские файлы, а не систему целиком, которую проще переустановить. Куда — на независимое хранилище, отдельное от сервера, об этом подробно ниже. А частота зависит от того, сколько данных вы готовы потерять: если за сутки на сервере накапливается важная работа, бэкап нужен ежедневный, а для активной базы — и несколько раз в день. Ответив на эти вопросы заранее, вы избежите двух крайностей: копирования всего подряд, раздувающего хранилище, и пропуска действительно важных данных.
apt update
apt install -y restic
restic version
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPSИнициализация зашифрованного репозитория
Бэкапы restic хранит в репозитории — это каталог или удалённое хранилище со специальной структурой. При инициализации задаётся пароль, которым шифруется весь репозиторий. Начнём с простого случая — репозиторий на локальном или примонтированном диске, лучше отдельном от основного.
export RESTIC_REPOSITORY=/mnt/backup/restic-repo
export RESTIC_PASSWORD_FILE=/root/.restic-pass
echo "СИЛЬНЫЙ_ПАРОЛЬ" > /root/.restic-pass
chmod 600 /root/.restic-pass
restic init
Команда init создаёт зашифрованный репозиторий. Пароль мы вынесли в защищённый файл с правами 600, чтобы не светить его в командах и переменных окружения. Критически важно: сохраните этот пароль в надёжном месте вне сервера — в менеджере паролей, например. Если сервер погибнет вместе с файлом пароля, а копия пароля есть только на нём, вы не расшифруете бэкап. Пароль и данные должны храниться раздельно.
Первый бэкап и проверка
Теперь создайте первую резервную копию нужных каталогов. Restic сам определит, что копировать, зашифрует и сохранит в репозиторий. Укажите каталоги с важными данными — конфигурации, базы, файлы приложений.
restic backup /etc /var/www /home
restic snapshots
Команда backup создаёт снимок указанных путей, а snapshots показывает список всех сделанных копий с датами и идентификаторами. Первый бэкап полный, последующие инкрементальные — restic сохранит только изменившиеся данные, поэтому они быстрые и занимают мало места благодаря дедупликации. Для баз данных не копируйте файлы БД напрямую во время работы — сначала сделайте дамп, например через mysqldump или pg_dump, и бэкапьте уже его, иначе копия может оказаться несогласованной.
Автоматизация по расписанию
Бэкап полезен, только если делается регулярно, а значит, автоматически. Оформите скрипт бэкапа и запускайте его по расписанию через cron или systemd timer. Скрипт задаёт переменные окружения, делает дампы баз при необходимости и запускает restic.
#!/bin/bash
export RESTIC_REPOSITORY=/mnt/backup/restic-repo
export RESTIC_PASSWORD_FILE=/root/.restic-pass
mysqldump --all-databases > /var/backups/db.sql
restic backup /etc /var/www /home /var/backups/db.sql
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
Добавьте вызов этого скрипта в cron на ежедневный ночной запуск. Последняя строка с forget и параметрами keep реализует ротацию — политику хранения: держать семь ежедневных копий, четыре еженедельных и шесть ежемесячных, удаляя остальные. Флаг prune физически освобождает место от удалённых данных. Без ротации репозиторий будет расти бесконечно, поэтому она обязательна.
Хранение копий и проверка восстановления
Ключевое правило бэкапов: копия на том же сервере, что и данные, — это не бэкап. Если сервер выйдет из строя или будет взломан, погибнут и данные, и копия. Поэтому храните репозиторий на отдельном хранилище: другом сервере по SSH, объектном хранилище S3 или совместимом. Restic отправит туда уже зашифрованные данные, так что хранилищу не нужно доверять содержимое.
И самое важное, о чём забывают чаще всего: бэкап без проверенного восстановления — это иллюзия защиты. Регулярно проверяйте, что из копии реально можно восстановить данные.
restic restore latest --target /tmp/restore-test
restic check
Команда restore извлекает последний снимок в отдельный каталог, где вы убеждаетесь, что файлы на месте и целы. Команда check проверяет целостность самого репозитория. Делайте такую проверку периодически — только так вы будете уверены, что в критический момент бэкап сработает. Настроить надёжный зашифрованный бэкап удобно на VPS у MAATRIX: возьмите отдельный сервер под хранилище копий в другой локации, чтобы данные и бэкап были географически разнесены, с оплатой из России картой, СБП или криптой. Тогда потеря основного сервера перестанет быть катастрофой.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPSОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Что будет, если потерять пароль от репозитория restic?
Данные восстановить не удастся — шифрование надёжное, и без пароля репозиторий не открыть даже вам. Поэтому храните пароль в надёжном месте отдельно от сервера, например в менеджере паролей.
Можно ли хранить бэкап на том же сервере?
Нет, это не бэкап. При сбое или взломе сервера погибнут и данные, и копия. Храните репозиторий на отдельном хранилище — другом сервере или объектном хранилище, лучше в другой локации.
Как бэкапить базу данных правильно?
Не копируйте файлы БД во время работы — сделайте дамп через mysqldump или pg_dump и бэкапьте его. Иначе копия файлов активной базы может оказаться несогласованной и непригодной для восстановления.
Зачем проверять восстановление, если бэкапы делаются?
Бэкап без проверенного восстановления — иллюзия защиты. Регулярно извлекайте данные командой restic restore в тестовый каталог и запускайте restic check, чтобы убедиться, что в нужный момент копия сработает.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.