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

ตัดสินคำถามก่อนเครื่องมือ

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

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

อ่านสามฟิลด์ที่ตอบคำถามนั้น

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

wg show
wg show wg0 latest-handshakes

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

เลือกช่วงเวลาที่คุณปกป้องได้

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

สำหรับ OpenVPN กลไกสถานะจะเขียนไฟล์ตามช่วงเวลาที่กำหนด ในการตั้งค่าเซิร์ฟเวอร์จะมีลักษณะเช่นนี้ status /var/log/openvpn-status.log 60 โดยตัวเลขท้ายคือวินาทีระหว่างการเขียนใหม่ และไฟล์ถูกแทนที่ ไม่ใช่ต่อท้าย รายละเอียดนั้นสำคัญ ไฟล์ที่ถูกแทนที่ไม่มีประวัติ ขณะที่ตัวเก็บที่ต่อท้ายจะสร้างประวัติขึ้นมา

ยืนยันว่าตัวเก็บเคารพช่วงเวลาด้วย เครื่องมือที่สุ่มตัวอย่างทุกวินาทีและเก็บหนึ่งแถวต่อนาทีก็ยังอ่านทุกวินาที

เก็บป้ายกำกับให้คงที่และการแมปให้จำกัด

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

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

จัดทำเอกสารว่าคุณเก็บอะไรและไม่เก็บอะไร

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

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

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