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

เป้าหมายตรงนี้คือไคลเอนต์บรรทัดคำสั่ง OpenVPN 2.6 สำหรับ Linux ที่กำหนดเส้นทางผ่าน TUN บน UDP พร้อมการพิสูจน์ตัวตนด้วยใบรับรอง

รวบรวมเฉพาะไฟล์ฝั่งไคลเอนต์

ทำงานในไดเรกทอรีที่ได้รับการป้องกันและรวบรวมวัสดุความเชื่อถือ CA ที่อนุมัติแล้ว ใบรับรองไคลเอนต์ที่ออกให้คุณ และคีย์ส่วนตัวที่ตรงกับใบรับรองนั้น ในตัวอย่างนี้ชื่อคือ ca.crt, laptop-a.crt และ laptop-a.key ชื่อไฟล์เป็นเพียงป้ายกำกับ ไม่ได้บอกอะไรเกี่ยวกับสิ่งที่แต่ละไฟล์บรรจุ

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

วางคีย์ลงนามส่วนตัวของ CA คีย์ส่วนตัวของเซิร์ฟเวอร์ และพารามิเตอร์ DH ไว้นอกแพ็กเกจนี้

เชื่อมไฟล์เข้าเป็นโปรไฟล์เล็ก ๆ

โปรไฟล์ด้านล่างตั้งใจให้สั้น แต่ละบรรทัดเลือกปลายทาง จำกัดอัตลักษณ์ที่ไคลเอนต์จะยอมรับ หรือชี้ไปที่ไฟล์ใดไฟล์หนึ่งในสามไฟล์

client
dev tun
proto udp
remote vpn.example.net 1194
nobind

remote-cert-tls server
verify-x509-name vpn-gateway name
ca ca.crt
cert laptop-a.crt
key laptop-a.key

บรรทัด remote เลือกปลายทางเครือข่าย remote-cert-tls server ยืนกรานให้อีกฝ่ายนำเสนอใบรับรองที่มีบทบาทเซิร์ฟเวอร์ verify-x509-name ตรึงชื่อที่คาดไว้ ในที่นี้คือ vpn-gateway เป็น Common Name ของใบรับรองเซิร์ฟเวอร์ด้วยฟิลด์ชื่อเริ่มต้นของ OpenVPN ค่านั้นไม่ได้อนุมานจากชื่อโฮสต์ DNS ดังนั้นให้ใช้รูปแบบอัตลักษณ์ที่ผู้ให้บริการกำหนด

อย่าละทิ้งการตรวจสอบเหล่านั้นเพียงเพราะปลายทางทดสอบแสดงใบรับรองอื่น

โปรไฟล์พื้นฐานนี้ถือว่าไม่มีข้อท้าทายบัญชีแยกต่างหากและไม่มีคีย์ช่องควบคุม หากบริการต้องการ auth-user-pass, tls-auth หรือ tls-crypt ให้เก็บการกำหนดค่าและวัสดุที่ได้รับไว้ เพราะความลับช่องควบคุมที่คุณสร้างเองจะไม่ตรงกับที่เซิร์ฟเวอร์มี เก็บนโยบายการเข้ารหัสของบริการไว้ด้วยแทนการนำเข้าบรรทัดการบีบอัดหรือการเข้ารหัสจากตัวอย่างเก่า

ทำให้ไดเรกทอรีทำงานชัดเจน

พาธแบบสัมพัทธ์เป็นไปตามไดเรกทอรีทำงานของโปรเซส ไม่ใช่ตำแหน่งของไฟล์ .ovpn

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

sudo openvpn --cd /etc/openvpn/client/laptop-a --config laptop-a.ovpn

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

เก็บคีย์ให้อ่านได้เฉพาะผู้ใช้หรืออัตลักษณ์บริการที่ตั้งใจไว้

ตรวจสอบการส่งมอบ ไม่ใช่ชื่อไฟล์

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

หากมีข้อความขอวลีรหัสผ่าน แสดงว่าเป็นของคีย์ส่วนตัว ไม่ใช่ของบัญชี VPN

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

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