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

เริ่มจากเป้าหมายการสร้างใหม่

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

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

ตัวตนคือส่วนที่คุณสร้างใหม่ไม่ได้

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

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

บันทึกสถานะในเวลาเดียวกัน

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

wg showconf wg0 > /srv/backup/wg0.runtime.conf
sqlite3 /var/lib/vpn/admin.db ".backup '/srv/backup/admin.db'"
cp -a /etc/wireguard /srv/backup/etc-wireguard
sha256sum /srv/backup/*.conf > /srv/backup/MANIFEST

คำสั่งแรกพิมพ์อินเทอร์เฟซที่ทำงานอยู่ออกมาเป็นการกำหนดค่า ซึ่งเป็นวิธีเร็วที่สุดในการจับเพียร์ที่เพิ่มด้วยมือแทนเครื่องมือจัดการ สิ่งนี้มีบันทึกไว้ใน คู่มือ wg(8) บรรทัด sqlite คือรูปแบบสำหรับฐานข้อมูลจัดการ คำสั่งสำรองข้อมูลสร้างสำเนาที่สอดคล้องขณะที่ตัวเขียนยังทำงานต่อ การคัดลอกไดเรกทอรีรักษาสิทธิ์ ซึ่งสำคัญเพราะไฟล์กุญแจเหล่านั้นอ่านได้เฉพาะ root เท่านั้น แมนิเฟสต์คือสิ่งที่ทำให้คุณแยกไฟล์เก็บที่สมบูรณ์ออกจากที่ถูกตัดทอน

ทำให้การกู้คืนเป็นไปได้ แล้วจึงลอง

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

จัดทำเอกสารข้อยกเว้นอย่างละเอียดเท่ากับเนื้อหา กฎไฟร์วอลล์บนคลาวด์ บันทึก DNS และไดเรกทอรีภายนอกอาจต้องมีขั้นตอนกู้คืนของตัวเอง การคัดลอกไฟล์สำเร็จไม่ใช่หลักฐานว่าบริการกลับมา หลักฐานเดียวที่นับคือปลายทางที่สร้างใหม่ซึ่งผ่านการทดสอบการยอมรับแบบเดียวกับต้นฉบับ

บทความที่เกี่ยวข้อง