Цель: покормить свою паранойю.
Цель развернуто: если и когда вирус шифровальщик проникнет на Synology, а прецеденты были, то не дать ему зашифровать последнюю линию обороны - бэкап самых важных данных на внешний HDD.
Да у нас есть защита от перебора, 2FA, собственно сам рейд как защита от потери данных, но можно же упороться еще.
По хорошему бэкап мало того, что нужно делать периодически, но и хранить копию в отдельном бункере в несгораемом сейфе на случай пожара в основном бункере.
Лично я делаю три бэкапа:
1. Бэкап бэкапов. HomeAssistant делает бэкап на synology, audiobookshelf делает бэкап, бэкап vaulvalden и еще куча всяких моих сервисов бэкапится. Бэкапы при обновлении версии роутеров уже делается в ручную и тоже скаладывается в папку бэкапов. Бэкап рабочей станции, папку home (выборочно) бэкапит pika backup (под капотом borg), настройки kde бэкапит save desktop и т.п.
2. Бэкап настроек самой synology, именно настроек dsm
3. И самое главное бэкап мультимедиа семейного архива, это видео как дети пошли (в принципе пошли), дет. сад, школа, выпускные, первое фото дочери в ротдоме и вообще все фото с телефонов семьи на автомате льются на synology, потерять это - потерять воспоминания не одного десятка лет.
По железу Synology у меня отдельно, Home Assistan отдельно, это довольно мощный miniPС на рязани и занимается он только Home Assistant, никаких виртуализаций, ничего лишнего на нем, Home Assistant занимается задачами автоматизации дома, он управляет домом и задачами связанными с автоматизациями, фиг меня кто переубедит, что должно быть по другому и на него нужно повесить скажем виртуалку для других задач. В холодном резерве лежит его собрат та N5105, который в случае чего встанет на его замену.
Для решения именно данной задачи был куплен Sonoff ZBMicro
Обзор есть У Павла единственное что он не сказал в своем обзоре, что девайсина не только может ток передавать, но еще и данные, затем по моей просьбе перепроверил и да, USB2.0 и это минус, но оно годится как нельзя лучше.
Первое что я сделал, это выровнял все три бэкапа по времени на пять часов утра, но развел их по дням недели, т.е. бэкап мультимедиа - пн, ср, пт, бэкап бэкапов - вт, чт, сб, ну и на вс - бэкап настроек syno, он маленький поэтому отдыхаем.
По итогу первая автоматизация это в 4:55 каждый день у нас включается zb micro, подает питание на внешний HDD, он на автомате монтируется в dsm и готов чтобы на него бэкапили.
Интересней задача выключить zb micro и отключить внешний HDD. Размер бэкапов не равномерный, да там инкремент, и если не стартовать с нуля то это не долго, но выключать тоже по времени как то не то.
Поэтому я на всех задачах бэкапа включил вот эти две настройки
1. Будет размонтировать внешний диск при завершении бэкапирования, во первых это правильно, а во вторых сама dsm не будет материться как сапожник, что у него неправильно отключили диск.
2. Нам понадобится для уведомления Home Assistant, что задача бэкапирования завершена и можно отключать диск.
Для того, чтобы сказать HA что все, горшочек не вари, идем в dsm в Панель управления → Уведомления → Веб-перехватчики они же web hooks и создаем свой кастомный
В идеале я хотел зацепиться на событие размонтирование внешнего диска, но за неимением гербовой пишем на туалетной.
В разделе Hyper Backup выбираю два события
Даем имя набору событий, далее в поставщиках говорим “Пользовательский”
Заполняем имя, тему, она тут не важна, нам нужен сам факт возникновения события, но в теории можно упороться и заточиться еще и на текст.
А вот URL-адрес Webhook заполняем согласно документации Home Assistant в моем случае это http://192.168.1.47:8123//api/webhook/<webhook_id>
где webhook_id
- это длинный идентификатор, если вдумчиво почитать про веб хуки, то станет понятно, что по умолчанию если ничего не трогать, то они работают только по локальной сети, для их вызова через большой тырнет нужно станцевать и дать на это разрешение. Ну и в документации дается несколько советов:
- относитесь к идентификатору веб хука как к паролю, т.е. длинный и держим в относительном секрете, не стоит о нём кричать на каждом углу и раздавать листовки с его url
- ну и самое главное не вешайте на него ничего деструктивного типа открытие замка входной двери, отключение/включение отопления дома и т.п.
Переключаем метод в POST и тыкаем в Применить
В теории все у нас теперь есть и при завершении задач бэкапа через Hyper Backup наш synology будет по web hook дергать Home Assistant, дело за малым выключать zb micro по этому событию.
У меня в Node-Red автоматизация выглядит вот так, через автоматизации HA то же самое, но вид сбоку
По скрину видно, что в 4:55 диск был подключен, в 5:17 syno сообщило о завершении бэкапирования, в 5:32 диск был отключен. Итого 37 минут общего подключенного времени.
Я еще дал задержку в 15 мин. после получения сообщения от syno т.к. пока тестировал заметил, что сообщение о завершении он выслал, но еще не отключил диск, что-то делает, поэтому и говорил, что в идеале нужно событие размонтирования диска, но его в syno нет.
Ах да, еще раз напоминаю zb micro USB2.0, что дает теоретическую скорость передачи данных 480 mbit/s, против 5 gbit/s на USB3.0, скорости что я наблюдал от 25 до 42 мегабайта/с, что явно не дотягивает до заявленных 480 мегабит/с, так что учитывайте этот факт.
Ну и на закуску, я таким же образом перенаправил все системные сообщения syno с почты в matrix на локальном сервере, но это другая история.