TgWitness / Документация

Что проверено →

Справочник / Доказательства

Резервные копии Telegram: S3, Object Lock и восстановление

Резервное копирование, перемещение старых файлов в облако, копии с защитой Object Lock и восстановление на новом компьютере.

TgWitness / Документация · Развертывание и восстановление

Развертывание и восстановление

Панель разделяет три задачи:

Задача Что он делает
Сохраняйте резервную копию Скопируйте подписанный журнал, контрольные точки, сохраненные файлы и экспортные задания в очереди в настроенное хранилище S3.
Бесплатное локальное хранилище Скопируйте выбранные старые вложения в S3 или на удалённый облачный сервер rclone, полностью загрузите их обратно, проверьте зашифрованные байты, а затем удалите проверенную локальную копию.
Сохраняйте копию доказательств Настройте S3 Object Lock и проверьте возвращаемый статус хранения. Сервис должен подтвердить запрошенный режим и дату.

Освобождение места никогда не приводит к удалению или перезаписи подписанного журнала. Каждое вложение сохраняет свой исходный SHA-256 и квитанцию восстановления. Опциональное сжатие gzip происходит до шифрования с аутентификацией. Имена файлов в облаке не содержат имен Telegram, идентификаторов чатов или исходных имен вложений. Размер одного вложения может достигать 32 GiB.

Сам по себе ответ на загрузку не является разрешением на удаление файла. TgWitness загружает полный зашифрованный объект, проверяет его размер и SHA-256, сохраняет квитанцию, а затем непосредственно перед удалением ещё раз проверяет локальные байты. Сбой загрузки, несоответствие при обратном считывании или отмена передачи оставляют локальный файл на месте. Если включённая резервная копия доказательств ещё не скопировала этот файл, удаление также откладывается до её завершения.

На этой странице

Когда заканчивается место на диске#

Загрузка вложений приостанавливается, когда свободного места становится меньше значения в Параметры → Вложения → свободное место на диске (по умолчанию 1 GiB); очередь сохраняется. Наблюдение за текстовыми сообщениями продолжается. Это не зависит от настроек уведомлений: их отключение не отменяет резерв для загрузок и защитные проверки хранилища.

Для более раннего вмешательства включите Запускать автоматически, выберите Удалять локальный файл для освобождения места и включите Запускать дополнительную выгрузку при нехватке места. По умолчанию правило запускается при свободном месте ниже 5120 MiB и обрабатывает файлы партиями, пока не освободится 10240 MiB. Оба порога настраиваются. Используются те же назначение, минимальный возраст файлов, размер партии, полная проверка обратным чтением и требования к резервной копии доказательств, что и при ручном запуске. Назначение само не включается. Проверка выполняется каждые 30 секунд; ошибка или отсутствие прогресса откладывает следующую попытку на пять минут. Состояние правила и время повтора переживают перезапуск. Когда правило неактивно, плановые проходы сохраняют обычный интервал.

Панель показывает свободное место, резерв для упаковки, готовность правила нехватки места и файлы, пропущенные из-за недостатка временного пространства. Перед упаковкой и восстановлением проверяется пиковая потребность во временном месте, а во время записи — доступный объём. Резерв соответствует настройке загрузок, но для операций хранилища составляет не менее 64 MiB. Это не квота файловой системы: другой процесс может занять место между проверками.

Gzip сжимает удалённые объекты без потерь; активный журнал не уменьшается, локальные архивы не создаются. JPEG, видео и ZIP могут почти не сжиматься или немного увеличиваться. При включённом сжатии упаковке временно может потребоваться примерно двойной размер вложения плюс резерв. Задавайте порог запуска с учётом самых крупных файлов. Слишком большой файл сохраняется и отмечается в отчёте; меньшие файлы и ранее проверенные удалённые копии всё ещё могут освободить место. При наличии проверенной копии локальный файл можно удалить без создания ещё одного файла упаковки. Для восстановления также нужно временное место; при его нехватке операция может быть отклонена.

Если подходящих для переноса файлов нет или назначение не настроено, TgWitness не сможет автоматически освободить место. Управление хранилищем никогда не сокращает и не переписывает подписанный журнал. Для новых текстовых наблюдений ему по-прежнему требуется место.

Подключить пункт назначения#

В меню «Дополнительно» → «Хранение и место на диске» → «Управление хранением» выберите задачу и место назначения, сохраните её, а затем выберите «Тестовая загрузка и скачивание». В ходе теста загружается небольшой случайный тестовый файл, который затем считывается обратно. При этом не используется контент Telegram.

Для S3 используйте фактический конечный пункт, регион и корзину провайдера. Wasabi, Backblaze, Cloudflare R2 и другие совместимые сервисы используют те же настройки S3. Наличие совместимого API само по себе не означает поддержку Object Lock. Режим «Управление» может позволять авторизованному администратору обходить сроки хранения; режим «Соответствие» имеет другие ограничения. Перед тем как полагаться на сроки хранения, ознакомьтесь с возвращаемым статусом Object Lock.

Для назначения rclone создайте один удалённый сервер с помощью настройки провайдера rclone и вставьте раздел этого удалённого сервера [name] в панель. Установленный помощник поддерживает MEGA, Google Drive, OneDrive, Dropbox, Box, pCloud и других провайдеров, отображаемых в выборке. Учетные данные сохраняются в зашифрованном хранилище этого рабочего пространства. Данные обновления OAuth сохраняются обратно в хранилище. Учетные данные не добавляются в события журнала и не включаются в загрузки для восстановления.

Вспомогательная программа устанавливается внутри рабочего пространства с закреплённой версией и SHA-256. Он не добавляется в системный PATH. Конфигурационные файлы и рабочие файлы являются временными файлами внутри данного рабочего пространства. Удалённые подключения на основе команд и локальных файлов не допускаются. В настоящее время rclone требует явно выбранного маршрута Direct для внешних запросов. Используйте собственное хранилище S3 для маршрута SOCKS5 или HTTP рабочего пространства; rclone не обходит недоступный маршрут без предупреждения.

Сохраните файл восстановления#

Выберите «Сохранить файл восстановления после копирования файлов» и сохраните его в месте, отдельном от установки. Он содержит ключ дешифрования и подписанные квитанции объектов, поэтому относитесь к нему как к резервной копии секретного ключа. Храните исходную удалённую конфигурацию и учетные данные назначения также отдельно. Файл восстановления, созданный до последующего копирования, не содержит квитанцию этого более позднего файла.

Отпечаток ключа подписи должен быть заранее зафиксирован отдельно. Подпись, проверенная только по ключу, приведённому в том же файле, не позволяет установить, чей это файл восстановления.

Чтобы восстановить отсутствующие квитанции хранения в существующей рабочей области, откройте «Восстановить файлы из сохраненного файла восстановления» и выберите файл. Панель проверяет подпись и требует того же ключа подписи рабочей области. Она отказывается заменять другой ключ хранения. Затем выберите «Восстановить все файлы». Восстановление приостанавливает действие правила автоматического хранения, чтобы следующий запланированный цикл не смог сразу же снова удалить восстановленные файлы. Снова включите правило, когда закончите работу с локальными копиями.

Функция «Restoration» проверяет шифротекст, аутентифицирует дешифрование, распаковывает, если необходимо, и проверяет исходный открытый текст SHA-256, прежде чем поместить файл в media/. Повреждённый удалённый объект никогда не заменяет локальный файл. Существующий локальный файл с отличающимися байтами сохраняется для проверки, а не перезаписывается.

Восстановление после потери установки#

Установите TgWitness на другом компьютере. Используйте личный файл восстановления, отдельно записанный отпечаток и исходные учетные данные для входа:

python -m tgwitness.storage recover \
  --recovery storage-recovery.json \
  --fingerprint TRUSTED_WORKSPACE_SHA256 \
  --credentials original-rclone.conf \
  --output recovered-attachments

Для S3 --credentials указывает на частный JSON-файл с access_key и secret_key; подписанный файл восстановления предоставляет настройки места назначения. Команда использует прямое внешнее соединение и загружает закреплённый вспомогательный модуль , когда это требуется удалённому серверу rclone. Она отказывается использовать существующий каталог вывода.

Восстановленные исходные байты записываются в recovered-attachments/media/, именованные по их идентификатору SHA-256. recovery-log.jsonl — это неподписанная запись операций восстановления. Команда не восстанавливает утраченный подписанный журнал или его ключ подписи. Для этого следует хранить полную резервную копию рабочего пространства. Файл восстановления хранилища не является полной резервной копией рабочего пространства .

Бот-оператор и уведомления о завершении#

Бот Telegram принадлежит оператору. Создайте его через BotFather и настройте в панели его токен, целевой чат и явные разрешённые ID пользователей Telegram. И отправитель, и чат должны совпадать. Пересланные сообщения и команды от других ботов игнорируются.

/status и /stats доступны в стандартном режиме «только статус». Дополнительный режим управления добавляет /pause, /resume и /copy. /copy запрашивает настроенную задачу хранения; это не означает, что удалённая загрузка уже завершилась. Команды не могут передавать произвольные URL-адреса, файлы или программы оболочки.

Используйте отдельные настройки уведомлений для оповещений и завершения задач. Уведомления о завершении позволяют отличить экспорт аккаунта с пробелами от полного экспорта, а также показывают историю и количество записей в хранилище. Выдержки из сообщений не включаются, если это не включено отдельно в настройках уведомлений. Список сервисов формируется на основе фактического установленного каталога Apprise, а не фиксированного набора примеров провайдеров.