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

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

สองวิธีในการเป็นเจ้าของอุโมงค์เดียวกัน

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

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

ตามการเชื่อมต่อที่เดสก์ท็อปใช้จริง

การดำเนินการนำเข้าที่มีเอกสารกำกับ nmcli connection import type openvpn file office.ovpn สร้างการเชื่อมต่อผ่านปลั๊กอิน บันทึก UUID ของมันและใช้ตัวระบุนั้นต่อไป เพราะชื่อถูกแก้ไขและการเชื่อมต่อสองรายการอาจใช้ป้ายกำกับเดียวกัน nmcli connection show แสดงรายการสิ่งที่มีอยู่ และการอ่านคุณสมบัติของการเชื่อมต่อเองจะบอกว่ามันมาจากไฟล์ใดและเก็บอะไรไว้ หาก UUID ที่คุณแก้ไขไม่ใช่ตัวที่เดสก์ท็อปเปิดใช้งาน การแก้ไขของคุณก็เป็นเพียงการประดับ

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

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

อ่านเทมเพลตของยูนิตก่อนจะพึ่งพามัน

เมื่อแพ็กเกจจัดส่งยูนิตไคลเอนต์ในสไตล์ upstream อินสแตนซ์ที่ชื่อ office จะตรงกับ %i.conf ในไดเรกทอรีที่กำหนดค่าไว้ของยูนิต ซึ่งสำหรับเทมเพลต 2.6 คือ /etc/openvpn/client อ่านยูนิตที่ติดตั้งไว้และไฟล์เพิ่มเติมใด ๆ ก่อนจะเชื่อตัวอย่างจากคู่มือ เพราะดิสทริบิวชันย้ายพาธ การสั่งรันด้วยมือจากเทอร์มินัลไม่ได้พิสูจน์อะไรเกี่ยวกับมุมมองของบริการต่อไฟล์ ความลับ หรือสิทธิ์ กล่องโต้ตอบรหัสผ่านของเดสก์ท็อปก็ไม่ใช่หลักฐานว่ายูนิตที่ไม่โต้ตอบมีวิธีที่ได้รับอนุมัติในการได้รหัสผ่านเดียวกัน

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

ปลดระวางตัวซ้ำโดยไม่สูญเสียการเข้าถึง

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

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

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