TgWitness / เอกสาร

สิ่งที่ได้รับการทดสอบแล้ว →

อ้างอิง / หลักฐาน

Telegram · การเก็บรักษาและกู้คืนข้อมูล

การสำรองข้อมูล การย้ายไฟล์เก่าไปยังคลาวด์ การคัดลอกภายใต้ Object Lock และการกู้คืนบนเครื่องใหม่

TgWitness / เอกสารประกอบ · การติดตั้งและกู้คืน

การติดตั้งและกู้คืน

แผงควบคุมนี้แบ่งงานออกเป็นสามส่วน:

งาน ฟังก์ชันการทำงาน
เก็บสำรองข้อมูล คัดลอกบันทึกที่ลงนามแล้ว จุดตรวจสอบ ไฟล์ที่เก็บรักษาไว้ และการส่งออกที่อยู่ในคิว ไปยังปลายทาง S3 ที่กำหนดไว้
พื้นที่จัดเก็บข้อมูลท้องถิ่นฟรี คัดลอกไฟล์แนบเก่าที่เลือกไว้ไปยัง S3 หรือเซิร์ฟเวอร์คลาวด์ระยะไกลของ rclone, อ่านไฟล์เหล่านั้นกลับมาอย่างครบถ้วน, ตรวจสอบไบต์ที่เข้ารหัส, แล้วลบสำเนาท้องถิ่นที่ผ่านการตรวจสอบแล้ว
เก็บสำเนาหลักฐานไว้ ตั้งค่า S3 Object Lock และตรวจสอบสถานะการเก็บรักษาที่ระบบส่งกลับมา บริการต้องยืนยันโหมดและวันที่ที่ขอไว้

การปลดปล่อยพื้นที่จะไม่ลบหรือเขียนทับบันทึกที่ลงนามแล้ว ไฟล์แนบแต่ละไฟล์จะเก็บ SHA-256 ดั้งเดิมและใบเสร็จการกู้คืนไว้ การบีบอัด gzip (ตามตัวเลือก) จะเกิดขึ้น ก่อนการเข้ารหัสที่ผ่านการตรวจสอบความถูกต้อง ชื่อไฟล์บนคลาวด์ไม่รวมชื่อ Telegram, ID การสนทนา หรือชื่อไฟล์แนบต้นฉบับ ไฟล์แนบหนึ่งไฟล์อาจมีขนาดสูงสุด 32 GiB

การตอบกลับการอัปโหลดเพียงอย่างเดียวไม่ถือเป็นสิทธิ์ในการลบไฟล์ TgWitness ดาวน์โหลด วัตถุที่เข้ารหัสอย่างครบถ้วนและตรวจสอบขนาดของมัน SHA-256, บันทึกใบเสร็จรับเงิน, จากนั้นตรวจสอบไบต์ในเครื่องอีกครั้งทันทีก่อนการลบ การอัปโหลดล้มเหลว, การอ่านกลับที่ต่างกัน หรือการถ่ายโอนที่ถูกยกเลิก จะทำให้ไฟล์ในเครื่องยังคงอยู่ หาก การสำรองหลักฐานที่เปิดใช้งานยังไม่ได้คัดลอกไฟล์นั้น การลบจะรอจนกว่าการสำรองข้อมูลจะเสร็จสิ้น

บนหน้านี้

เมื่อพื้นที่ดิสก์ใกล้เต็ม#

การดาวน์โหลดไฟล์แนบจะหยุดชั่วคราวเมื่อพื้นที่ว่างต่ำกว่าค่าใน พารามิเตอร์ → ไฟล์แนบ → พื้นที่ดิสก์ว่าง (ค่าเริ่มต้น 1 GiB) โดยเก็บคิวไว้ การสังเกตข้อความยังดำเนินต่อ การทำงานนี้ไม่ขึ้นกับการแจ้งเตือน การปิดแจ้งเตือนไม่ได้ปิดพื้นที่สำรองสำหรับดาวน์โหลดหรือมาตรการป้องกันของที่เก็บข้อมูล

หากต้องการเริ่มแก้ไขเร็วขึ้น ให้เปิด ทำงานอัตโนมัติ เลือก ลบไฟล์ในเครื่องเพื่อคืนพื้นที่ และเปิด เริ่มย้ายข้อมูลเพิ่มเมื่อพื้นที่ดิสก์ต่ำ กฎเสริมนี้เริ่มโดยค่าเริ่มต้นเมื่อว่างน้อยกว่า 5120 MiB และทำงานเป็นชุดจนมีพื้นที่ว่าง 10240 MiB ปรับทั้งสองเกณฑ์ได้ ใช้ปลายทาง อายุไฟล์ขั้นต่ำ จำนวนไฟล์ต่อชุด การอ่านกลับเพื่อตรวจสอบทั้งหมด และเงื่อนไขสำรองหลักฐานเช่นเดียวกับการทำงานด้วยตนเอง โดยไม่เปิดปลายทางเอง ตรวจสอบทุก 30 วินาที หากผิดพลาดหรือไม่มีความคืบหน้าจะเลื่อนการลองครั้งถัดไปห้านาที สถานะและเวลาลองใหม่คงอยู่หลังเริ่มระบบใหม่ เมื่อกฎไม่ทำงาน งานตามกำหนดยังคงใช้ช่วงเวลาปกติ

แผงควบคุมแสดงพื้นที่ว่าง พื้นที่สำรองสำหรับจัดแพ็ก ความพร้อมของกฎ และไฟล์ที่ข้ามเพราะพื้นที่ชั่วคราวไม่พอ การจัดแพ็กและกู้คืนตรวจสอบความต้องการพื้นที่ชั่วคราวสูงสุดก่อนเริ่ม และตรวจสอบพื้นที่ว่างระหว่างเขียน ใช้พื้นที่สำรองตามค่าดาวน์โหลด แต่ไม่น้อยกว่า 64 MiB สำหรับงานจัดเก็บ การตรวจสอบนี้ไม่ใช่โควตาระบบไฟล์ กระบวนการอื่นอาจใช้พื้นที่ระหว่างการตรวจสอบได้

Gzip บีบอัดวัตถุระยะไกลแบบไม่สูญเสียข้อมูล ไม่ย่อบันทึกที่ใช้งานหรือสร้างแฟ้มบีบอัดในเครื่อง ไฟล์ JPEG วิดีโอ และ ZIP อาจแทบไม่เล็กลงหรือใหญ่ขึ้นเล็กน้อย เมื่อเปิดการบีบอัด การจัดแพ็กอาจต้องใช้พื้นที่ชั่วคราวประมาณสองเท่าของขนาดไฟล์แนบรวมกับพื้นที่สำรอง เลือกเกณฑ์เริ่มให้เร็วพอสำหรับไฟล์ที่ใหญ่ที่สุด ไฟล์ที่ใหญ่เกินไปจะคงไว้และรายงาน ส่วนไฟล์เล็กและสำเนาระยะไกลที่ตรวจสอบแล้วอาจยังคืนพื้นที่ได้ เมื่อมีสำเนาที่ตรวจสอบแล้วสามารถลบไฟล์ในเครื่องโดยไม่ต้องสร้างไฟล์จัดแพ็กใหม่ การกู้คืนต้องใช้พื้นที่ชั่วคราวเช่นกันและอาจถูกปฏิเสธจนกว่าจะมีพื้นที่พอ

หากไม่มีไฟล์ที่เหมาะสมให้ย้ายหรือยังไม่ตั้งค่าปลายทาง TgWitness จะคืนพื้นที่อัตโนมัติไม่ได้ การจัดการที่เก็บข้อมูลจะไม่ตัดทอนหรือเขียนทับบันทึกที่ลงลายเซ็น และยังต้องมีพื้นที่สำหรับการสังเกตข้อความใหม่

เชื่อมต่อปลายทาง#

ใน Extras → Storage & disk space → Manage storage, เลือกงานและจุดหมายปลายทาง, บันทึกไว้ แล้วเลือก Test upload & download การทดสอบนี้จะอัปโหลดข้อมูลทดสอบขนาดเล็กแบบสุ่มและอ่าน ข้อมูลนั้นกลับมา โดยไม่ใช้เนื้อหาของ Telegram

สำหรับ S3 ให้ใช้จุดปลายทาง (endpoint) ภูมิภาค (region) และบัคเก็ต (bucket) ที่จริงของผู้ให้บริการ Wasabi, Backblaze, Cloudflare R2 และบริการอื่น ๆ ที่เข้ากันได้ใช้การตั้งค่า S3 เดียวกัน การที่ API เข้ากันได้เพียงอย่างเดียวไม่ได้หมายความว่ารองรับ Object Lock โหมด Governance อาจอนุญาตให้ผู้ ดูแลระบบที่ได้รับอนุญาตข้ามการเก็บรักษาข้อมูลได้ ส่วนโหมด Compliance มีข้อจำกัด ที่แตกต่างกัน โปรดอ่านสถานะ Object Lock ที่ได้รับก่อนที่จะพึ่งพาการเก็บรักษาข้อมูล

สำหรับจุดหมายปลายทางของ rclone ให้สร้างรีโมทหนึ่งตัวโดยใช้การตั้งค่าผู้ให้บริการของ rclone และ วางส่วน [name] ลงในแผงควบคุม ตัวช่วยที่ติดตั้งไว้รองรับ MEGA, Google Drive, OneDrive, Dropbox, Box, pCloud และผู้ให้บริการอื่น ๆ ที่แสดงใน ตัวเลือก ข้อมูลรับรองจะถูกเก็บไว้ใน vault ที่เข้ารหัสของพื้นที่ทำงานนี้ การรีเฟรช OAuth จะถูกบันทึกกลับเข้าไปใน vault ข้อมูลรับรองจะไม่ถูกเพิ่มเข้าไปในเหตุการณ์ของ journal หรือรวมอยู่ในการดาวน์โหลดเพื่อกู้คืน

ตัวช่วย (helper) ติดตั้งอยู่ภายในพื้นที่ทำงาน (workspace) พร้อมด้วยเวอร์ชันที่ตรึงไว้ (pinned version) และ SHA-256 มันไม่ถูกเพิ่มเข้าไปใน PATH ของระบบ ไฟล์การตั้งค่าและไฟล์ทำงานเป็น ไฟล์ชั่วคราวภายในพื้นที่ทำงานนั้น การเชื่อมต่อระยะไกลแบบคำสั่งและไฟล์ท้องถิ่นถูก ปฏิเสธ rclone ในปัจจุบันต้องการเส้นทาง Direct ที่เลือกอย่างชัดเจนสำหรับ คำขอจากภายนอก ให้ใช้พื้นที่จัดเก็บ S3 แบบดั้งเดิมสำหรับเส้นทาง SOCKS5 หรือ HTTP ของพื้นที่ทำงาน; rclone จะไม่ข้ามเส้นทางที่ใช้งานไม่ได้ไปอย่างเงียบๆ

เก็บไฟล์กู้คืนไว้#

เลือก "บันทึกไฟล์กู้คืน" หลังจากคัดลอกไฟล์ และเก็บไว้ที่ สถานที่ที่แยกต่างหากจากตำแหน่งติดตั้ง เนื่องจากไฟล์นี้ประกอบด้วยกุญแจถอดรหัสและใบเสร็จ ของวัตถุที่ลงนามแล้ว ดังนั้นจึงควรปฏิบัติต่อไฟล์นี้เหมือนกับการสำรองกุญแจส่วนตัว นอกจากนี้ ให้เก็บการตั้งค่าระยะไกลต้นฉบับ และข้อมูลรับรองปลายทางไว้แยกต่างหากด้วย ไฟล์กู้คืนที่สร้างขึ้นก่อน การคัดลอกครั้งถัดไปจะไม่รวมใบเสร็จของไฟล์ที่คัดลอกในครั้งนั้น

ลายนิ้วมือของกุญแจการลงนามควรได้รับการบันทึกไว้อย่างอิสระแล้ว การตรวจสอบลายเซ็น โดยใช้เพียงกุญแจที่ระบุไว้ในไฟล์เดียวกันนั้น ไม่สามารถยืนยันได้ว่า ไฟล์การกู้คืนนั้นเป็นของใคร

เพื่อซ่อมแซมใบเสร็จการจัดเก็บที่ขาดหายในพื้นที่ทำงานที่มีอยู่ ให้เปิด กู้คืนไฟล์จากไฟล์กู้คืนที่เก็บไว้ และเลือกไฟล์ แผงควบคุมจะตรวจสอบลายเซ็นและต้องการกุญแจลงนามพื้นที่ทำงาน เดียวกัน มันจะปฏิเสธการแทนที่ด้วยกุญแจจัดเก็บที่ต่างกัน จากนั้นเลือก กู้คืนไฟล์ทั้งหมด การกู้คืนจะหยุดกฎการจัดเก็บอัตโนมัติชั่วคราว เพื่อไม่ให้รอบการลบตามกำหนดการ ครั้งต่อไปสามารถลบไฟล์ที่กู้คืนได้ทันทีอีกครั้ง ให้เปิดใช้งานกฎอีกครั้งเมื่อ เสร็จสิ้นการจัดการกับสำเนาท้องถิ่นแล้ว

กระบวนการกู้คืนจะตรวจสอบข้อความเข้ารหัส (ciphertext), ยืนยันความถูกต้องของการถอดรหัส, คลายการบีบอัดหาก จำเป็น และตรวจสอบข้อความต้นฉบับ (plaintext) 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 remote ต้องการมัน มันจะปฏิเสธไดเรกทอรีเอาต์พุตที่มีอยู่แล้ว

ไบต์ต้นฉบับที่กู้คืนได้จะถูกเขียนลงสู่ recovered-attachments/media/, ซึ่งถูกตั้งชื่อตาม SHA-256 ของมัน. recovery-log.jsonl คือบันทึกการกู้คืนที่ยังไม่ได้รับการลงนาม คำสั่งนี้ไม่สร้างบันทึกที่ลงนามแล้วที่สูญหายหรือกุญแจลงนามของมันขึ้นมาใหม่ ให้เก็บ สำเนาสำรองพื้นที่ทำงานแบบเต็มไว้สำหรับสิ่งเหล่านั้น ไฟล์กู้คืนพื้นที่จัดเก็บไม่ใช่สำเนาสำรองพื้นที่ทำงานแบบเต็ม

บอทผู้ดำเนินการและแจ้งเตือนการเสร็จสิ้น#

บอท Telegram เป็นของผู้ดำเนินการ สร้างบอทผ่าน BotFather และตั้งค่า token, แชทปลายทาง และ ID ผู้ใช้ Telegram ที่ได้รับอนุญาตอย่างชัดเจนในแผงควบคุม ทั้ง ผู้ส่งและแชทต้องตรงกัน ข้อความที่ส่งต่อและคำสั่งจากบอทอื่น จะถูกเพิกเฉย

/status และ /stats มีให้ใช้งานในโหมดสถานะเท่านั้นตามค่าเริ่มต้น โหมดควบคุม แบบเลือกใช้จะเพิ่ม /pause, /resume และ /copy. /copy และส่งคำขอไปยัง งานจัดเก็บข้อมูลที่ตั้งค่าไว้; สิ่งนี้ไม่หมายความว่ากระบวนการอัปโหลดไปยังเซิร์ฟเวอร์ระยะไกลได้เสร็จสิ้นแล้ว คำสั่ง ไม่สามารถระบุ URL ไฟล์ หรือโปรแกรมเชลล์ตามใจชอบได้

ใช้การตั้งค่าการแจ้งเตือนแยกกันสำหรับการแจ้งเตือนและการเสร็จสิ้นงาน การแจ้งเตือน การเสร็จสิ้นจะแยกการส่งออกบัญชีที่มีช่องว่างออกจากการส่งออกที่สมบูรณ์ และแสดง ประวัติและจำนวนพื้นที่จัดเก็บ ข้อความที่ตัดตอนมาจะไม่ถูกรวมไว้ เว้นแต่จะ เปิดใช้งานแยกต่างหากในการตั้งค่าการแจ้งเตือน ตัวเลือกบริการถูกสร้างขึ้นจาก แคตตาล็อก Apprise ที่ติดตั้งจริง แทนที่จะเป็นชุดตัวอย่างผู้ให้บริการที่คงที่