Любое решение, которое не включает шифрование на стороне клиента с ключами, хранящимися у владельца, не будет соответствовать первому заявленному требованию (защита / безопасность IP) - любой взлом на стороне сервера раскрывает незашифрованные данные. Это исключает системы облачной синхронизации, такие как Dropbox, которым принадлежат ключи.
Чтобы не размещать все важные ключи шифрования на сервере веб-сайта, который также может быть взломан в какой-то момент, я бы сделал следующее:
- Внутренний сервер резервного копирования на собственном сайте клиента - имеет ключи шифрования и ключи SSH для обоих других серверов
- Сервер, на котором размещен сайт - может быть хостом
- Облачный резервный сервер или сервис
Шаг 1: Сервер (1) извлекает резервную копию из (2), поэтому большинство взломов сервера веб-сайта не скомпрометируют резервные копии. Шифрование происходит в этой точке.
- Я бы использовал rsnapshot через SSH, используя основанный на ключах вход в систему, поскольку это требует минимальных требований к веб-хосту и внутреннему серверу резервного копирования - если у вас нет большой базы данных для резервного копирования, она очень эффективна в полосе пропускания и хранит несколько версий сайта, а также занимается очисткой старых резервных копий.
- Шифрование может быть выполнено любым инструментом «файл-файл», таким как GPG, копируя дерево rsnapshot в другое дерево, или вы можете использовать двуличие для шага 2, экономя место на диске.
- Важное значение имеет «извлечение» с сервера резервного копирования - если на главном сервере (2) есть пароли / ключи для сервера резервного копирования, хакеры могут, а иногда и удаляют резервные копии после взлома основного сервера (см. Ниже). Действительно продвинутые хаки могут установить троянские двоичные файлы SSH, которые могут затем скомпрометировать сервер резервного копирования, но это менее вероятно для большинства компаний.
Шаг 2: сервер (1) помещает зашифрованные резервные копии в (3) для создания резервной копии за пределами площадки. Если резервные копии были зашифрованы на шаге 1, вы можете просто использовать rsync-зеркало локального дерева rsnapshot для удаленной системы.
- Duplicity - это хороший вариант для прямого шифрования и резервного копирования незашифрованного дерева rsnapshot на удаленный сервер. Функции Duplicity немного отличаются от rsnapshot, использующего архивы tar с GPG-шифрованием, но он обеспечивает резервное шифрование на удаленном хосте и требует только SSH на этом хосте (или он может использовать Amazon S3). Duplicity не поддерживает жесткие ссылки , поэтому, если это требуется (например, для полной резервной копии сервера), лучше всего, если скрипт преобразует дерево rsnapshot (которое поддерживает жесткие ссылки) в файл tar (может быть, только в файлы, которые имеют> 1 жесткая ссылка, которая будет довольно маленькой), так что двуличие может создать резервную копию файла tar.
- Поскольку удаленный сервер является просто хостом SSH, возможно, с rsync, он может быть веб-хостом (но от другого хостинг-провайдера и в другой части страны) или облачной службой, которая предоставляет rsync и / или SSH - см. этот ответ о резервном копировании rsync в облако для рекомендации bqbackup и rsync.net, хотя я не согласен с упомянутой настройкой резервного копирования.
- Вы можете использовать Amazon S3 в качестве удаленного сервера с дублированием, что обеспечит вам действительно хорошую доступность, хотя, возможно, это будет стоить дороже для больших резервных копий.
- Другими вариантами удаленного зашифрованного резервного копирования являются Boxbackup (не совсем зрелый, некоторые приятные функции) и Tarsnap (коммерческий облачный сервис на основе Amazon S3 с простым интерфейсом командной строки, хорошей дедупликацией и очень тщательным шифрованием).
Безопасность всех различных хостов важна, поэтому ее следует настроить в соответствии с профилем безопасности клиента, т. Е. Проанализировать угрозы, риски, векторы атак и т. Д. Ubuntu Server - неплохой старт, поскольку он часто обновляет систему безопасности в течение 5 лет. лет, но внимание к безопасности требуется на всех серверах.
Эта установка предоставляет 2 независимых резервных копии, одна из которых может быть высокодоступной службой облачного хранилища, работает в режиме извлечения, поэтому большинство атак на веб-сайт не могут уничтожить резервные копии одновременно, и она использует хорошо зарекомендовавшие себя инструменты с открытым исходным кодом, которые не требует много администрации.
- Независимые резервные копии имеют решающее значение, поскольку хакеры действительно иногда удаляют все резервные копии одновременно со взломом сайта - в самом последнем случае хакеры уничтожили 4800 веб-сайтов, включая резервные копии , взломав среду веб-хостинга, а не сайты. Смотрите также этот ответ и этот .
- Восстановить с rsnapshot очень просто - в каждом дереве снимков есть по одному файлу для каждого файла, для которого выполняется резервное копирование, поэтому просто найдите файлы с помощью инструментов Linux и rsync или отправьте их обратно на веб-сайт. Если по какой-либо причине локальный сервер резервного копирования недоступен, просто используйте двуличность для восстановления их с облачного сервера резервного копирования - или вы можете использовать стандартные инструменты, такие как GPG, rdiff и tar, для восстановления резервных копий.
Поскольку в этой настройке используются стандартные SSH и rsync, проще выбрать подходящего провайдера с правильными гарантиями времени безотказной работы, надежной защитой и т. Д. Вам не нужно привязываться к длинному контракту, и если служба резервного копирования имеет катастрофические последствия. В случае сбоя у вас все еще есть локальная резервная копия, и вы можете легко переключиться на другую службу резервного копирования.