มีสองชื่อที่เกี่ยวข้องก่อนไคลเอนต์จะเชื่อมต่อด้วยซ้ำ คือชื่อไฟล์บนแล็ปท็อป (nuc.ovpn) และตัวตนที่เซิร์ฟเวอร์สกัดจากข้อมูลรับรอง การค้นหาใน client-config-dir ใช้ชื่อที่สอง การเปลี่ยนชื่อโปรไฟล์ฝั่งไคลเอนต์ หรือการเติม .conf ให้ไฟล์ฝั่งเซิร์ฟเวอร์ ไม่ได้เปลี่ยนว่าเซิร์ฟเวอร์จะเปิดไฟล์ใด

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

ชื่อโปรไฟล์กับชื่อสามัญของใบรับรอง

ในการตั้งค่าเริ่มต้นที่อิงใบรับรอง เซิร์ฟเวอร์จะใช้ชื่อสามัญ X.509 แล้วมองหาไฟล์ที่ชื่อตรงกันทุกตัวอักษรภายใน client-config-dir โปรไฟล์ชื่อ nuc.ovpn ที่ใบรับรองระบุ tester จะถูกแปลงเป็น /etc/openvpn/server/ccd/tester ชื่อไฟล์ฝั่งไคลเอนต์ไม่เคยถูกนำมาคำนวณ นี่คือจุดแรกที่ความไม่ตรงกันซ่อนอยู่

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

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

username-as-common-name กลับกฎ

เมื่อเซิร์ฟเวอร์รันการยืนยันด้วยชื่อผู้ใช้/รหัสผ่านพร้อม username-as-common-name ชื่อผู้ใช้ที่ยืนยันแล้วจะแทนที่ชื่อสามัญของใบรับรองสำหรับการค้นหานี้

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

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

สิ่งที่เซิร์ฟเวอร์อ่าน และสิ่งที่มันข้ามไปอย่างเงียบ ๆ

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

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

เมื่อไม่มีไฟล์ที่ตรงกัน เซิร์ฟเวอร์อาจถอยไปใช้ไฟล์ชื่อ DEFAULT การที่การตั้งค่าบางอย่างมาถึงจึงไม่ใช่หลักฐานว่าไฟล์เฉพาะไคลเอนต์ถูกใช้ ให้เทียบที่อยู่ที่จัดสรรหรือเส้นทางที่ถูกดันกับสิ่งที่ไฟล์เฉพาะไคลเอนต์จะให้ สิทธิ์คือตัวกรองที่สาม เพราะเซิร์ฟเวอร์เปิดไฟล์หลังจากลดสิทธิ์แล้ว เชลล์ root ที่อ่านไฟล์ได้ไม่ได้พิสูจน์อะไร

ชื่อไฟล์ที่ถูกต้องไม่ได้ยืนยันเนื้อหา

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

ifconfig-push ต้องกำหนดที่อยู่ที่โทโพโลยีใช้ได้จริง และ iroute มีความหมายเฉพาะกับซับเน็ตที่ถูกเราเตอร์อยู่หลังไคลเอนต์รายนั้น

ตัวตนเดียว อุปกรณ์หลายเครื่อง

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

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

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