1. Есть NAS QNAP, осуществляющий репликацию в режиме реального времени (RTRR) по расписанию (15 мин в день, остальное время - выключен).
2. Есть папка на сервере, куда по расписанию кладется бэкап sql и копия сетевой шары.
Как избежать ситуации, когда файлы бэкапов на сервере окажутся зашифрованы, и на NASе, соответственно, тоже?
Какое ПО можно использовать? Или можно обойтись powershell? Или же просто подключать NAS как сетевую шару и новые бэкапы копировать туда, без использования репликации?
а1) Простите, а кто собирается шифровать файлы? Вы сами или вирус?
а2) Против вируса есть много средств. Например, можно не дать ему доступ, используя права доступа к файлу. Или можно удерживать файл, открыв его в режиме "только чтение" - тогда его нельзя будет открыть на запись (но в Unix - его можно будет удалить после создания зашифрованной копии).
а3) Предпочтительно использовать операционку, для которой нет вирусов. Например, FreeBSD.
б) Как тут уже сказали - надо хранить несколько бэкапов; но не только инкрементальные, а несколько полных. Для каждого бэкапа - проверять его исправность ПОСЛЕ того, как он скопирован в безопасное место.
в) Нормальный бэкап делается иначе. Не сам SQL-сервер делает бэкап в виде файла, а бэкап-сервер делает себе копию средствами SQL. Хотя тут возможны тонкости.
к примеру вирус-шифровальщик. или, как произошло, забрутфорсили админку извне и зашифровали что попало. суть в том чтобы на NAS не получить вместо целых файлов зашифрованные, после синхронизации. хотя, по сути если включить одностороннюю синхронизацию то такого не должно произойти, так ведь?
за теорию бэкапов спасибо, буду изучать.
а по пункту "в" можете направить что почитать? и в чем будет разница?
В вашем варианте - SQL-сервер делает дамп отдельных записей в файл. Файл, скорее всего, не в формате БД, а более компактный - например, не содержит индексов (при восстановлении из бэкапа - индексы строятся по данным).
Бэкап средствами SQL-протокола - это фактически репликация. Т.е. на бэкап-сервере оказывается практически готовая к применению БД. Для получения состояний на разное время - БД можно снэпшотить.
Но обратите внимание на то, что бэкап не может обходиться синхронизацией. Ибо надо хранить не одну копию, а много - на разные моменты времени. Это нужно для того, чтобы при появлении шифровальщика (или вируса-вандала, который просто портит данные), если его не сразу заметят - можно было бы найти версию бэкапа, которая ещё не повреждена.
И вот ещё один важный момент: БД можно испортить (зашифровать или просто написать туда ахинею) на разных уровнях, в т.ч.:
Можно зашифровать архив - файл с именем типа "data.zip"; тогда при распаковке будет выдана ошибка.
Можно зашифровать файл дампа до архивации - "data" или "data.dump"; тогда при распаковке всё будет нормально, а при восстановлении данных будет выдана ошибка.
Но если вирус получит доступ к SQL или к Web-интерфейсу, имея достаточные права - то он испортит данные внутри БД (отдельный вопрос - существуют ли такие вирусы). Тогда и при распаковке архива, и при восстановлении данных - всё будет нормально, но вместо данных будет "каша". Я не знаю, что там в Вашей БД; но если брать в пример форум, то вместо сообщений/текста будет что-то нечитаемое и бессмысленное.
Причём это дело может случиться независимо от того, односторонняя эта синхронизация или пятисторонняя. Если данные испорчены - то синхронизация перенесёт испорченные данные на NAS.
1. Копировать нужно с сервера на NAS.
2. Как можно проверить, зашифрованы ли файлы или нет? Предполагается автоматизированное, а не ручное копирование.
3. В таком случае как я понимаю не подойдет RTRR, и придется подключать NAS как сетевую шару. Тогда возвращаемся к вопросу 2.
vreitech, А если файл будет зашифрован сразу после проверки?
Pavel Semenchukov,
1) Программа, которая копирует - перед копированием может что-то там проверить. Или после копирования.
2) А это к Вам вопрос. В каком виде предполагается шифрование?
3) Я не понял рассуждений.
Pavel Semenchukov, полный, дифференциальный и инкрементальный бэкапы - все три типа прекрасно можно делать автоматически. Что вам мешает почитать хоть немного теории про бэкапы? Всё это практикуется уже не одно десятилетие.
Как избежать ситуации, когда файлы бэкапов на сервере окажутся зашифрованы, и на NASе, соответственно, тоже?
- никогда не монтировать полки с бэкапами как сетевые шары. Вирус туда непременно проберется.
- использовать технику "дед-отец-сын"
- запускать копирование с полки. Это по крайней мере отсечет шифрование файлов на самой полке
- проверять файлы перед копированием. Конечно, все шифровальщики не проверишь, но нормальный-то файл точно известно как выглядит!