Сейчас я ежедневно делаю резервную копию своего сайта / сервера, используя rsync с cron. Меня беспокоит то, что кто-то взломает мой сервер, а затем получит доступ к моей учетной записи rsync и удалит все. Как мне защитить себя от этого?
Насколько я понимаю, основная проблема в том, что вы настроили запуск процесса rsync с «неправильной стороны». Ваш резервный сервер должен инициировать соединение и иметь учетную запись на рабочем сервере, а не наоборот.
Таким образом, вам не понадобится учетная запись на сервере резервного копирования, доступная с (и на котором хранятся учетные данные или токены доступа) более открытого производственного сервера.
Конечно, это поднимает вопрос о возможном влиянии взлома на сервер резервного копирования, но там вы можете просто ограничить способность пользователя резервного копирования ломать вещи - используя демон rsync на производственном сервере с общим доступом только для чтения для вещей. сделать резервную копию - это простой вариант.
Вы можете встроить несколько уровней безопасности.
Не разрешать доступ с уязвимых серверов к защищенным серверам
Веб-сервер следует считать уязвимым, поэтому вам следует ограничить возможность исходящего доступа с вашего веб-сервера на резервный сервер. Получение данных должно быть инициировано с сервера резервного копирования с использованием ограниченной учетной записи только для чтения.
Ограничьте поверхность атаки
Вы хотите, чтобы на вашем веб-сервере было как можно меньше сервисов и точек доступа. Один из подходов - создать промежуточную точку: отправить данные с веб-сервера на промежуточный сервер (который также следует считать уязвимым), а затем передать эти данные на резервный сервер для их защиты.
Я не знаю, какое оборудование у вас есть, но есть несколько вариантов. Первый - поместить данные на ленту или другой носитель, который можно отключить в автономном режиме. Это не всегда может вернуть вам самую последнюю версию, но у вас будут данные где-то в автономном режиме в случае атаки. Второй вариант - это вторичная «резервная» система, в которой хранятся копии данных. Вы можете удаленно выполнить rsync данных «вниз» к этому ящику, чтобы, если кто-то проникнет, он не сможет легко добраться до вашей резервной копии (пароли, ключи и т. Д. Должны быть разными в обеих системах и не отставать от исправлений). Оба из них предполагают, что вы можете получить дополнительное оборудование (или даже виртуальный сервер в варианте 2). Все, что находится в той же системе, должно считаться подозрительным, если оно было скомпрометировано.