Зашифрованные бэкапы на VPS: restic и borg на практике
Бэкап без шифрования — это утечка, ждущая своего часа: снапшот на чужом хранилище читает любой, кто до него добрался. restic и borg решают всё сразу — шифрование AES, дедупликация и инкрементальность. Разберём оба инструмента, автоматизацию и проверку восстановления.
Содержание
Почему restic и borg, а не tar + gpg
['Классический tar + gpg работает, но каждый бэкап — полная копия, а шифрование накладывается сверху и ломает дедупликацию. restic и borg делают это правильно:', '- Шифрование по умолчанию — данные шифруются до записи в репозиторий
- Дедупликация — одинаковые блоки хранятся один раз, экономия в разы
- Инкрементальность — каждый снапшот хранит только изменения
- Проверка целостности — встроенный check по хешам
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS с ежедневными бэкапамиrestic: настройка за 5 минут
['Ставим и инициализируем репозиторий. Пароль — ключ шифрования, без него данные не прочитать:', 'apt update && apt install -y restic\nexport RESTIC_REPOSITORY="/mnt/backup/repo"\nexport RESTIC_PASSWORD="длинный-случайный-пароль"\nrestic init', 'Первый бэкап и последующие — одна команда, restic сам делает инкремент:', 'restic backup /etc /var/www /home --exclude-caches\nrestic snapshots', 'Ротация — удаляем старьё, оставляя разумную глубину:', 'restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune']
Бэкап на удалённое хранилище через SFTP
['Держать бэкап на том же сервере — плохая идея: упадёт диск, потеряете всё. Пишем на второй VPS или в объектное хранилище. Пример через SFTP:', 'export RESTIC_REPOSITORY="sftp:backup@backup-host:/srv/restic"\nrestic backup /var/www', 'Для S3-совместимых хранилищ:', 'export RESTIC_REPOSITORY="s3:https://s3.endpoint.com/my-bucket"\nexport AWS_ACCESS_KEY_ID="..."\nexport AWS_SECRET_ACCESS_KEY="..."\nrestic backup /var/www']
Автоматизация и borg-альтернатива
['Заворачиваем в systemd timer или cron. Скрипт /usr/local/bin/backup.sh с секретами вне истории команд:', '#!/bin/bash\nset -euo pipefail\nexport RESTIC_REPOSITORY="sftp:backup@backup-host:/srv/restic"\nexport RESTIC_PASSWORD_FILE="/root/.restic-pass"\nrestic backup /etc /var/www /home --exclude-caches --tag auto\nrestic forget --keep-daily 7 --keep-weekly 4 --prune\nrestic check --read-data-subset=5%', 'chmod 700 /usr/local/bin/backup.sh\nchmod 600 /root/.restic-pass\n# cron: каждый день в 3:30\n30 3 * * * /usr/local/bin/backup.sh >> /var/log/restic.log 2>&1', 'borg по духу похож: borg init --encryption=repokey-blake2 /path/repo, затем borg create ::{hostname}-{now} /var/www. repokey хранит ключ в репозитории (защищён паролем), keyfile — отдельно.', 'Секрет храните в файле через RESTIC_PASSWORD_FILE, а не в переменной RESTIC_PASSWORD напрямую: переменные окружения видны в /proc/PID/environ и могут утечь в логи. Флаг --exclude-caches пропускает каталоги, помеченные тегом CACHEDIR.TAG — это отсекает мусор вроде node_modules и кэшей сборки. Команда restic check --read-data-subset=5% в конце скрипта выборочно перечитывает данные и проверяет, что репозиторий не бьётся — дешёвая страховка от тихого повреждения на хранилище.']
Проверка восстановления — обязательна
['Бэкап, который не пробовали восстановить, не существует. Регулярно проверяйте:', 'restic restore latest --target /tmp/restore-test --include /etc/nginx\ndiff -r /etc/nginx /tmp/restore-test/etc/nginx', 'Схема надёжна: рабочий сервер шлёт зашифрованные снапшоты на второй VPS. У MAATRIX сервера на AMD EPYC + NVMe от $8/мес, а на всех тарифах есть ещё и ежедневные бэкапы на стороне провайдера — второй пояс безопасности. Локации UK и США, root-доступ, оплата картой РФ, СБП, криптой или токеном MAAT. Второй дешёвый VPS под restic-репозиторий — самый спокойный сон админа.']
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS с ежедневными бэкапамиЧастые вопросы
Что будет, если потерять пароль restic?
Данные восстановить невозможно — это стойкое шифрование. Храните пароль в менеджере секретов и держите резервную копию отдельно от репозитория.
restic или borg — что выбрать?
restic — если нужны облачные бэкенды (S3/B2) и простота. borg — если храните на SSH/локально и важна максимальная экономия места и скорость.
Достаточно ли бэкапов провайдера?
Провайдерские бэкапы — это защита от аппаратных сбоев. Свои зашифрованные снапшоты на отдельном хосте защищают ещё и от компрометации самого сервера и ошибок.