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

Що було протестовано →

Довідка / Докази

Telegram · Зберігання та відновлення

Резервне копіювання, переміщення старих файлів у хмарне сховище, копії під захистом Object Lock та відновлення на новому комп’ютері.

TgWitness / Документація · Розгортання та відновлення

Розгортання та відновлення

Панель розділяє три завдання:

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

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

Сама по собі відповідь на завантаження не є дозволом на видалення файлу. 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 і встановіть у панелі його токен, чат-призначення та явно вказані дозволені ідентифікатори користувачів Telegram. І відправник, і чат повинні збігатися. Переслані повідомлення та команди від інших ботів ігноруються.

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

Використовуйте окремі налаштування сповіщень для попереджень та завершення завдань. Повідомлення про завершення розрізняють експорт облікового запису з пропусками та повний експорт, а також показують історію та кількість збережених даних. Витяги з повідомлень не включаються, якщо це не ввімкнено окремо в налаштуваннях сповіщень. Вибір сервісу формується на основі фактичного встановленого каталогу Apprise, а не фіксованого набору прикладів постачальників.