อุปกรณ์สองเครื่อง ใบรับรอง OpenVPN ใบเดียว: ลูปการเชื่อมต่อใหม่
อุโมงค์ที่รีสตาร์ตทุกครึ่งนาทีมักเป็นอุปกรณ์สองเครื่องที่ใช้ใบรับรองไคลเอนต์เดียวกัน ไล่ดูบันทึก การแยก และขั้นตอนการปลดระวาง
อุโมงค์ที่ขึ้นมาแล้วรีสตาร์ตทุกครึ่งนาทีมักไม่ใช่ปัญหาของรหัสลับหรือ MTU แต่มันคือตัวตนเดียวกันที่ถูกใช้สองครั้ง เซิร์ฟเวอร์เห็นชื่อสามัญที่คุ้นเคยและถือว่าเซสชันใหม่เป็นเซสชันล่าสุด ส่วนอุปกรณ์เครื่องเก่าพบว่าตัวเองถูกแทนที่แล้ว จากฝั่งไคลเอนต์สิ่งนี้ดูเหมือนหมดเวลาการไม่มีการเคลื่อนไหวแล้วรีสตาร์ต ซึ่งเป็นเหตุให้การสืบสวนเริ่มผิดที่บ่อยครั้ง
เริ่มจากช่วงเวลาการรีสตาร์ต
ช่วงเวลาคือเบาะแสก่อนสิ่งอื่นใด จังหวะสม่ำเสมอที่ตรงกับหน้าต่าง ping-restart ชี้ไปที่เซสชันที่ถูกแทนที่ไม่ใช่เส้นทางที่ล้มเหลว เพราะความล้มเหลวของเส้นทางแทบไม่เคยสม่ำเสมอขนาดนั้น จดช่วงห่างที่แน่นอนระหว่างการรีสตาร์ตและบรรทัดเหตุผลในบันทึกของไคลเอนต์ การหมดเวลาตามด้วยการรีสตาร์ตเล่าเรื่องต่างจากการจับมือที่ล้มเหลว
ตรวจสอบว่าการรีสตาร์ตเริ่มเมื่อใดเมื่อเทียบกับอุปกรณ์เครื่องที่สอง โน้ตบุ๊กใหม่ โทรศัพท์ หรือโปรไฟล์ที่คัดลอกไปยังเครื่องสำรองคือสาเหตุที่พบบ่อย และเวลามักตรงกับวันที่ใครบางคนตั้งค่าเครื่องนั้น
จดช่วงเวลาและเหตุผลไว้ ทั้งสองอย่างเป็นหลักฐาน และทั้งสองอย่างเก็บได้ถูก
อ่านสิ่งที่เซิร์ฟเวอร์พูดถึงการเข้าสู่ระบบครั้งที่สอง
บนเซิร์ฟเวอร์ที่คุณควบคุม บันทึกจะระบุชื่อสามัญและแสดงการเชื่อมต่อที่สองที่เข้ามา หากไม่มี duplicate-cn การเข้ามานั้นจะแทนที่เซสชันที่มีอยู่ของชื่อเดียวกัน และข้อความมักบอกตรง ๆ หากมี duplicate-cn ทั้งสองเซสชันจะอยู่ร่วมกันและอาการเปลี่ยนไป: ไคลเอนต์ยังออนไลน์แต่ใช้ชุดการตั้งค่าต่อไคลเอนต์ชุดเดียวและการตัดสินใจเพิกถอนครั้งเดียวร่วมกัน อ่านสองรายการคู่กัน เพราะการแทนที่เห็นได้เฉพาะในลำดับ
ในบริการแบบโฮสต์คุณอาจไม่มีบันทึกของเซิร์ฟเวอร์เลย เบาะแสจึงเป็นเวลา: อุโมงค์ที่เสถียรซึ่งล่มทุกครั้งที่มีเครื่องอื่นเชื่อมต่อ โดยในบันทึกของไคลเอนต์ไม่มีสิ่งใดนอกจากเวลาที่หมด
เปรียบเทียบบล็อกใบรับรองและคีย์ในทั้งสองโปรไฟล์ ไม่ใช่แค่ชื่อโฮสต์ระยะไกล โปรไฟล์ที่คัดลอกมักต่างกันเพียงชื่อไฟล์
แยกตัวตนฝั่งเซิร์ฟเวอร์
ออกใบรับรองหนึ่งใบต่ออุปกรณ์ผ่าน CA ที่ลงนามให้เซิร์ฟเวอร์นี้ ด้วย Easy-RSA นั่นหมายถึงชื่อไคลเอนต์แยกกันสำหรับแต่ละอุปกรณ์ แล้วโปรไฟล์จึงสร้างจากใบรับรองนั้นและคีย์ของมัน ชื่อสามัญกลายเป็นตัวตนของอุปกรณ์ ซึ่งเป็นสิ่งที่เซิร์ฟเวอร์ขาดไปพอดี ตั้งชื่อตามอุปกรณ์ไม่ใช่ตามบุคคล เพื่อให้การเปลี่ยนเครื่องสร้างชื่อใหม่
คีย์ช่องควบคุมที่ใช้ร่วมกันเป็นอีกเรื่องหนึ่ง tls-crypt หรือ tls-auth ปกป้องช่องควบคุมของทุกไคลเอนต์และตั้งใจให้ใช้ร่วมกัน มันไม่ใช่ตัวตนของไคลเอนต์ และการเปลี่ยนมันจะไม่แก้ใบรับรองที่ซ้ำกัน
เก็บใบรับรอง คีย์ และไฟล์กำหนดค่าใด ๆ ต่อไคลเอนต์ไว้ใต้ชื่อสามัญเดียวกัน มิฉะนั้นการจับคู่จะพังในการเชื่อมต่อครั้งถัดไป ความไม่ตรงกันตรงนั้นทำให้เกิดไคลเอนต์ที่ผ่านการรับรองแล้วแต่ไม่ได้รับอะไรเลย
รักษาที่อยู่และการตั้งค่าให้สอดคล้องหลังการแยก
ที่อยู่แบบคงที่เพิ่มวิธีที่สองในการชนกัน หากเซิร์ฟเวอร์กำหนดผ่าน ifconfig-pool-persist หรือไฟล์ต่อไคลเอนต์ บันทึกเหล่านั้นยังชี้ไปที่ชื่อเดิม อุปกรณ์สองเครื่องอาจได้ที่อยู่อุโมงค์เดียวกันแม้หลังแยกใบรับรองแล้ว และความล้มเหลวนั้นดูต่างจากลูปเดิม
อัปเดตการจับคู่พร้อมกับใบรับรอง แล้วเชื่อมต่ออุปกรณ์ทั้งสองใหม่และเปรียบเทียบที่อยู่ที่ได้รับ ที่อยู่ซ้ำจะแสดงเป็น packet loss เป็นช่วง ๆ ไม่ใช่การเชื่อมต่อใหม่ที่สะอาด
ส่งการตั้งค่าที่ควรต่างกันต่ออุปกรณ์ผ่านไฟล์ของอุปกรณ์นั้นเอง ไม่ใช่ผ่านเทมเพลตที่ใช้ร่วมกัน เทมเพลตที่ใช้ร่วมกันยังทำให้การซ้ำครั้งถัดไปสังเกตได้ยากขึ้น
ปลดระวางตัวตนเก่าอย่างถูกต้อง
เพิกถอนใบรับรองเมื่อฮาร์ดแวร์ถูกปลดระวางหรือสูญหาย แทนการลบโปรไฟล์ออกจากเครื่องเก่า การเพิกถอนสร้าง CRL ใหม่ และเซิร์ฟเวอร์ต้องการไฟล์นั้นที่ตำแหน่งซึ่ง crl-verify ชี้ไป เมื่อมีคำสั่งนั้นอยู่ CRL ที่หายไปหรืออ่านไม่ได้จะทำให้เซิร์ฟเวอร์ปฏิเสธไคลเอนต์ทุกตัว จึงทดสอบบัญชีที่รู้จักหนึ่งบัญชีหลังการอัปเดตทุกครั้ง
เก็บบัญชีรายการที่ผูกใบรับรองแต่ละใบกับบุคคลหรืออุปกรณ์ พร้อมวันที่ออกและวันที่เพิกถอน บัญชีนั้นตอบได้ว่าใครยังเข้าถึงได้โดยไม่ต้องอ่านชื่อไฟล์ และกันไม่ให้โปรไฟล์ที่คัดลอกครั้งถัดไปเริ่มลูปอีก