Зашифрованные резервные копии Linux-сервера с restic: по шагам

Быстрое, зашифрованное резервное копирование с дедупликацией на NAS или в облако, с автоматическим сроком хранения и проверкой восстановления.

restic — бесплатный инструмент резервного копирования с открытым кодом. Он шифрует всё до отправки с сервера, сохраняет только изменённые данные и умеет отправлять копии на NAS по SFTP, в S3-совместимые хранилища и другие места. Хорошо подходит для веб-, файловых серверов и серверов приложений.

Перед началом: нужно место для копий — в примере SFTP-учётная запись backup на NAS 192.168.88.20 со входом по SSH-ключу. Храните пароль репозитория вне сервера (например, в менеджере паролей): без него восстановить копии невозможно. Для серверов баз данных перед копированием выгружайте базу в файл (например, pg_dump или mysqldump).

Шаг 1. Установите restic и создайте репозиторий

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

sudo apt install restic
sudo sh -c 'openssl rand -base64 32 > /root/.restic-pass && chmod 600 /root/.restic-pass'
export RESTIC_PASSWORD_FILE=/root/.restic-pass
export RESTIC_REPOSITORY=sftp:backup@192.168.88.20:/volume1/restic/web01
restic init

Шаг 2. Сделайте первую копию

Скопируйте конфигурацию, файлы сайтов и домашние каталоги. Укажите пути, важные именно для вашего сервера.

restic backup /etc /var/www /home --exclude-caches
restic snapshots

Шаг 3. Задайте срок хранения и проверьте репозиторий

Храните 7 ежедневных, 4 еженедельных и 6 ежемесячных снимков и удаляйте более старые. restic check проверяет целостность репозитория.

restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
restic check

Шаг 4. Автоматизируйте

Создайте скрипт и запускайте его каждую ночь через cron. Добавьте мониторинг, чтобы получать оповещение, если копирование не удалось или журнал перестал обновляться.

#!/bin/sh
# /usr/local/bin/backup.sh
export RESTIC_PASSWORD_FILE=/root/.restic-pass
export RESTIC_REPOSITORY=sftp:backup@192.168.88.20:/volume1/restic/web01
restic backup /etc /var/www /home --exclude-caches || exit 1
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
# /etc/cron.d/backup
30 2 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Шаг 5. Проверьте восстановление

Копию подтверждает только восстановление. Хотя бы раз в месяц восстанавливайте последний снимок в тестовую папку и открывайте несколько файлов.

restic restore latest --target /tmp/restore-test
ls /tmp/restore-test

Защита от шифровальщиков

  • Используйте отдельную учётную запись для копий, доступную только серверу копий.
  • Защитите хранилище снимками, которые нельзя удалить с сервера (неизменяемые снимки на NAS или object lock в облаке).
  • Держите одну копию вне офиса — правило 3-2-1.

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

Нужна помощь? Свяжитесь с CySec — первая консультация бесплатно.


Все статьи

Нужна помощь с этим?

Наши инженеры проанализируют вашу текущую инфраструктуру и предложат конкретные улучшения.