Опубликовано 9 октября 2026 г. · Обновлено 9 октября 2026 г.
Стратегия резервного копирования VPS: правило 3-2-1, неизменяемые копии и проверка восстановления
Бэкап, который вы ни разу не восстанавливали, это надежда, а не бэкап. На небольшом VPS обычная схема такая: ночное задание куда-то копирует файлы, и ломается она предсказуемо: копия лежит на том же сервере, учётные данные, которыми она пишется, могут её и удалить, никто не пробовал восстановиться, либо задание месяцами тихо падает. Это руководство строит план, который переживёт отказ диска, ошибочную команду, инцидент у провайдера и атакующего, который целенаправленно ищет ваши бэкапы. Последний случай не редкость: руководство CISA #StopRansomware предупреждает, что многие вариации ransomware пытаются найти и удалить или зашифровать доступные резервные копии, чтобы восстановление стало невозможным без выкупа. Правило 3-2-1 это отправная точка, а разделы ниже добавляют то, что оно не покрывает.
В этой статье
Что копировать, а что пропустить Правило 3-2-1 и то, чего оно не учитывает Почему снимки провайдера не стратегия Зашифрованные бэкапы с restic или Borg Сделайте одну копию неудаляемой Проверяйте восстановление, иначе бэкапов нет Хранение, расписание и мониторинг Часто задаваемые вопросыБыстрый результат (10 минут)
- Запишите, где на самом деле лежит ваш последний бэкап и когда он выполнялся. Если вы не можете ответить за минуту, это первое, что нужно исправить.
- Проверьте, лежит ли бэкап на том же сервере или в том же аккаунте провайдера, что и VPS. Если да, это единая точка отказа.
- Проверьте, хранит ли сервер учётные данные, которыми можно удалить бэкап. Если хранит, атакующий, захвативший сервер, удалит и его.
- Выберите один неважный файл и восстановите его из бэкапа по другому пути. Замерьте время и отметьте, чего не хватало.
- Поставьте в календарь напоминание о полной проверке восстановления в следующем квартале.
Что копировать, а что пропустить
Копируйте то, что нельзя воссоздать скриптом или менеджером пакетов. Для большинства небольших серверов это:
- Данные приложения: загрузки, пользовательские файлы и всё, что приложение пишет во время работы.
- Базы данных в виде корректных дампов, а не копий живых файлов данных. Используйте
pg_dumpдля PostgreSQL илиmysqldump --single-transactionдля MySQL, чтобы дамп был согласованным, пока база продолжает работать. - Конфигурация:
/etc, конфиги приложений, unit-файлы systemd, crontab, а также compose-файлы и тома Docker. - Секреты и ключи, которые нельзя сгенерировать заново, в зашифрованном виде, а также сама парольная фраза шифрования бэкапов, хранимая не на сервере.
Пропускайте пакеты операционной системы, кэши и временные файлы: их можно переустановить. Журналы необязательны, но копию журналов аутентификации и приложения стоит держать в другом месте, если вам нужны доказательства после инцидента, как описано в руководстве по реагированию на взлом.
Правило 3-2-1 и то, чего оно не учитывает
Правило гласит: храните три копии данных, на двух разных типах носителей, причём одну копию вне площадки. Его обычно приписывают фотографу Питеру Крогу, который описал его в книге The DAM Book. Смысл в устранении единых точек отказа: умерший диск, удалённый том или потеря дата-центра не должны забирать с собой все копии.
Чего правило не говорит, так это может ли атакующий добраться до этих копий. Некоторые вендоры расширяют его до 3-2-1-1-0: ещё одна копия, неизменяемая или изолированная от сети, и ноль ошибок после автоматической проверки. Названия в разных источниках различаются, но оба дополнения именно те, что нужны для сервера, который могут скомпрометировать. Следуйте правилу, затем убедитесь, что хотя бы одну копию нельзя изменить или удалить с рабочего сервера, и что вы проверяете записанное.
Почему снимки провайдера не стратегия
Снимки VPS удобны, быстро создаются и полезны перед рискованным изменением. Но как основной бэкап они плохи по трём причинам. Они обычно лежат в том же аккаунте провайдера, что и сервер, поэтому один взломанный аккаунт, одна блокировка по оплате или один инцидент у провайдера могут убрать сервер и его снимки вместе. Они захватывают весь диск, включая вредоносное ПО, которое на нём уже было. И восстановление обычно означает замену всей машины, что грубый инструмент, если вам нужна лишь прошлая версия одного каталога.
Оставьте снимки как удобство, а независимые бэкапы на уровне файлов храните там, куда ваш аккаунт VPS не дотянется.
Зашифрованные бэкапы с restic или Borg
Два open-source инструмента закрывают почти всё, что нужно небольшому серверу: оба дедуплицируют, сжимают, поддерживают политики хранения и шифруют данные до того, как они покинут сервер. Согласно документации restic, для доступа к репозиторию нужен пароль, поэтому защитите его и храните копию офлайн: без него бэкапы нечитаемы. Минимальная процедура restic выглядит так:
export RESTIC_REPOSITORY=sftp:backup@backup-host:/srv/restic/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init
restic backup /etc /var/www /srv/data
restic check
Borg даёт важное дополнение: режим append-only. В документации Borg объясняется, что в этом режиме Borg никогда не перезаписывает и не удаляет зафиксированные данные, и что он предназначен прежде всего для защиты бэкапов при компрометации клиентской машины. Включается он ограничением ключа клиента на хосте бэкапов:
# ~/.ssh/authorized_keys на хосте бэкапов
command="borg serve --append-only --restrict-to-path /srv/backups/vps1",restrict ssh-ed25519 AAAA... vps1-backup
# на VPS
borg init --encryption=repokey ssh://backup@backup-host/srv/backups/vps1
borg create --stats ssh://backup@backup-host/srv/backups/vps1::{hostname}-{now} /etc /var/www /srv/data
Прочитайте оговорки в документации: append-only защищает только низкоуровневую структуру репозитория, очистка и удаление из обычной сессии всё равно могут навсегда стереть данные, обычный rm на хосте бэкапов его обходит, а атакующий всё равно может повредить несколько чанков. Авторы Borg рекомендуют запускать borg check --verify-data перед очисткой.
Хотите второе мнение о вашей текущей схеме?
Бесплатная проверка в режиме только чтения оценивает свежесть бэкапов, открытые сервисы и статус обновлений без каких-либо изменений.
Получить бесплатную проверку сервера Связаться с инженером по безопасностиСделайте одну копию неудаляемой
Хотя бы для одной копии уберите возможность удаления. В объектных хранилищах это называется Object Lock. По описанию Amazon, S3 Object Lock помогает предотвратить удаление или перезапись объектов на фиксированный или переменный срок либо бессрочно по модели write-once-read-many и работает только на бакетах с включённым версионированием. В режиме compliance ни один пользователь, включая root-пользователя аккаунта, не может удалить защищённую версию в период хранения; режим governance позволяет переопределить защиту пользователям со специальными правами. Другие провайдеры предлагают похожие функции под названиями вроде неизменяемых бакетов.
CISA даёт тот же совет в терминах безопасности: включать защиту от удаления или object lock на хранилищах, которые часто становятся целью ransomware. Относитесь к этому с оговорками. То же руководство предупреждает, что неизменяемое хранилище может не соответствовать критериям некоторых регуляторных требований, а блокировка защищает только те версии, которые вы заблокировали, поэтому задайте срок хранения, превышающий время, за которое вы заметите проблему. Помогает и схема pull: пусть отдельный хост бэкапов забирает данные с VPS, чтобы на VPS не было учётных данных, способных стереть историю. Руководство по защите от ransomware объясняет, почему это разделение важно.
Проверяйте восстановление, иначе бэкапов нет
Совет CISA: регулярно проверять доступность и целостность бэкапов в сценарии аварийного восстановления. Делайте два вида проверок. Лёгкую раз в месяц: восстановите один файл и дамп базы во временный каталог и убедитесь, что они открываются. Полную не реже раза в квартал и после крупных изменений: разверните чистый VPS, восстановитесь на него, запустите приложение и проверьте, что оно работает.
Используйте полную проверку, чтобы замерить два числа, которые стоит знать до инцидента. Допустимая потеря данных (RPO) показывает, сколько свежих данных вы можете позволить себе потерять, и определяет частоту бэкапов. Допустимое время простоя (RTO) показывает, как долго вы можете не работать, и подсказывает, достаточно ли быстр ваш процесс восстановления. Запускайте и проверки целостности, restic check или borg check --verify-data, чтобы повреждения обнаруживались на учениях, а не во время сбоя. Храните несколько поколений: CISA предупреждает, что перед восстановлением нужно найти дроппер, а более старая чистая копия даст вам запасной вариант, если новейшая уже заражена.
Хранение, расписание и мониторинг
Разумная отправная точка для небольшого сервера: ночной бэкап с хранением примерно семи ежедневных, четырёх еженедельных и шести ежемесячных копий, с поправкой на то, как быстро меняются данные и как долго проблема может оставаться незамеченной. Запускайте задание из таймера systemd или cron и сохраняйте его вывод. Важнее всего оповещать, когда задание падает или не запускается: молчаливо сломанный бэкап самая частая причина обнаружить в худший момент, что восстанавливать нечего. Руководство по мониторингу показывает, как это настроить.
Наконец, запишите процедуру восстановления, включая место хранения парольной фразы, хост с репозиторием и точные команды. В инциденте вы будете уставшими и ограниченными во времени, и проверенный чек-лист стоит гораздо больше добрых намерений. Это также часть общего плана защиты: см. чек-лист безопасности VPS.
Свежее напоминание, почему копия должна лежать вне провайдера: сбои дата-центров Яндекса в октябре 2026 года.
Термины из этого руководства: RPO и RTO (допустимая потеря данных и время восстановления) и Object Lock (неизменяемое хранение объектов).
Часто задаваемые вопросы
Что такое правило резервного копирования 3-2-1?
Храните три копии данных (оригинал и две резервные), на двух разных типах носителей, причём одну копию вне площадки. Правило обычно приписывают Питеру Крогу. Некоторые вендоры расширяют его до 3-2-1-1-0, добавляя неизменяемую или изолированную копию и ноль ошибок после проверки.
Достаточно ли снимков провайдера VPS в качестве бэкапа?
Нет. Снимки обычно лежат в том же аккаунте провайдера, что и сервер, захватывают весь диск вместе с возможным вредоносным ПО и плохо подходят для восстановления отдельных файлов. Используйте их как удобство, а независимые бэкапы на уровне файлов храните там, куда ваш аккаунт VPS не дотянется.
Как часто нужно делать бэкап VPS?
Настолько часто, сколько свежих данных вы можете позволить себе потерять. Для небольшого сервера обычной отправной точкой служит ночной бэкап, а дампы баз делают чаще, если данные быстро меняются. Решать должна допустимая потеря данных (RPO), а не удобство.
Что такое неизменяемый бэкап?
Копия, которую нельзя изменить или удалить в течение заданного срока хранения, даже администратору или атакующему, укравшему ваши учётные данные. Примеры: S3 Object Lock в режиме compliance и репозитории Borg в режиме append-only.
Как проверить, что бэкап действительно восстанавливается?
Каждый месяц восстанавливайте несколько файлов и дамп базы во временный каталог, а полную пересборку на чистом сервере делайте не реже раза в квартал. Запускайте также restic check или borg check --verify-data и записывайте, сколько заняло восстановление.
Нужно ли шифровать бэкапы?
Да, потому что копии вне сервера содержат все ваши данные. restic и Borg шифруют данные до того, как они покинут сервер. Храните парольную фразу не на VPS, потому что без неё бэкапы не прочитать.
Не уверены, в каком состоянии ваш сервер?
Получите бесплатную проверку безопасности в режиме только чтения или поговорите с инженером по безопасности об управляемой защите.
Получить бесплатную проверку сервера Связаться с инженером по безопасности