โปรแกรมใดเป็นเจ้าของ config.json นั้นในการตั้งค่า OpenVPN ของคุณ
ไฟล์ชื่อ config.json อาจเป็นของ GUI, daemon หรือรูปแบบส่งออก ไม่ใช่ของ OpenVPN ค้นหาตัวแยกวิเคราะห์ก่อนแก้ไขหรือแทนที่คีย์
คุณพบไฟล์ชื่อ config.json ข้างในกล่าวถึงเซิร์ฟเวอร์ VPN และข้อสันนิษฐานก็ตามมาทันที: นี่ต้องเป็นการเชื่อมต่อ OpenVPN แน่นอน บ่อยครั้งไม่ใช่ ไฟล์ JSON ชื่อนี้ mungkin เป็นของฟรอนต์เอนด์เดสก์ท็อปที่เปิดไคลเอนต์ เป็นของเดมอนที่เก็บการตั้งค่าของตัวเอง หรือเป็นของรูปแบบส่งออกของผลิตภัณฑ์ และแต่ละอย่างมีสคีมาของตัวเอง
ชื่อไฟล์เป็นเบาะแสที่ไร้ประโยชน์ที่สุด เริ่มจากโปรเซสที่อ่านไฟล์ จากนั้นตรวจสอบว่ารูปแบบที่มันคาดหวังเป็น JSON จริงหรือไม่ และหลังจากนั้นจึงตัดสินใจว่าการแก้ไขไฟล์เป็นวิธีที่รองรับในการเปลี่ยนแปลงสิ่งใดสิ่งหนึ่งหรือไม่
เริ่มจากโปรเซส ไม่ใช่จากชื่อไฟล์
ดูว่ามีอะไรทำงานอยู่จริง หน่วยบริการ สคริปต์เปิดใช้งาน หรือแอปในถาดระบบจะระบุไบนารีที่มันเริ่มและมักระบุเส้นทางการกำหนดค่าที่ส่งต่อด้วย ไดเรกทอรีที่เก็บไฟล์เป็นเบาะแสที่สอง: ไดเรกทอรีข้อมูลแอปพลิเคชัน ไดเรกทอรีการกำหนดค่าบริการ และไดเรกทอรีโปรไฟล์ผู้ใช้บ่งชี้เจ้าของที่แตกต่างกัน
จากนั้นอ่านเอกสารของผลิตภัณฑ์ที่เป็นเจ้าของคอมโพเนนต์นั้น ถ้า JSON เป็นของตัวห่อหุ้ม คีย์ของมันคือคีย์ของตัวห่อหุ้ม และออบเจกต์ที่ดูน่าเชื่อถือซึ่งสร้างจากตัวอย่างของผลิตภัณฑ์อื่นจะถูกปฏิเสธหรือถูกละเลยอย่างเงียบ ๆ
สองไฟล์ชื่อเดียวกันในไดเรกทอรีต่างกันเป็นกับดักที่พบบ่อย ไฟล์หนึ่งอาจเป็นสถานะที่สร้างขึ้นซึ่งบริการเขียนทับทุกครั้งที่เริ่ม และอีกไฟล์อาจเป็นเทมเพลตที่มนุษย์ควรแก้ไข การเปลี่ยนไฟล์ผิดจะให้การแก้ไขที่อยู่ได้จนถึงการรีสตาร์ตครั้งถัดไป
โปรไฟล์ Community OpenVPN จริง ๆ คืออะไร
Community OpenVPN 2.6 อ่านรูปแบบข้อความที่อิงตัวเลือก โปรไฟล์คือลำดับของไดเรกทิฟ: บรรทัดโหมดไคลเอนต์ บรรทัดอุปกรณ์ จุดปลายทางระยะไกล รวมถึงตัวเลือกด้านตัวตน การเข้ารหัส และเส้นทาง และสามารถฝังวัสดุใบรับรองและคีย์ไว้ในบล็อกแบบอินไลน์ได้
รูปแบบนั้นถูกแยกวิเคราะห์ทีละบรรทัดโดยไคลเอนต์เอง การส่งเอกสาร JSON ให้ผ่านตัวเลือก config ไม่ได้เปิดตัวแยกวิเคราะห์ JSON บรรทัดแรกจะถูกปฏิเสธว่าเป็นไดเรกทิฟที่ไม่รู้จัก การเปลี่ยนชื่อไฟล์ JSON ให้ลงท้ายด้วย .ovpn ก็ไม่ได้แปลงเนื้อหาเช่นกัน และไฟล์ตัวเลือกที่ถูกต้องไม่ได้กลายเป็นไม่ถูกต้องเพราะนามสกุลแปลก
OpenVPN Connect และ OpenVPN 3 Linux มีเส้นทางการนำเข้าและจัดการโปรไฟล์ของตัวเอง ผลิตภัณฑ์เหล่านี้ยอมรับโปรไฟล์และเก็บไว้ในฐานข้อมูลหรือสถานะบริการของตัวเอง ซึ่งไม่เหมือนกับไฟล์ JSON ที่บังเอิญอธิบายเซิร์ฟเวอร์
การแก้ไขสถานะที่เป็นของคอมโพเนนต์อื่น
ถ้า JSON ถูกสร้างขึ้น การแก้ไขมันคือการแข่งกับเวลา บริการที่ทำงานอยู่อาจเขียนกลับตอนปิด ตอนเชื่อมต่อใหม่ หรือตอนเปลี่ยนการตั้งค่าครั้งถัดไป และการแก้ด้วยมือจะหายไปโดยไม่มีข้อผิดพลาด ควรใช้คำสั่งนำเข้าของผลิตภัณฑ์ API การจัดการ หรืออินเทอร์เฟซการตั้งค่า เพราะเส้นทางเหล่านั้นอัปเดตสถานะภายในที่ไฟล์เป็นตัวแทน ไฟล์ที่ย้อนกลับหลังรีสตาร์ตบอกคุณว่าเส้นทางใดเป็นเส้นทางที่คงทน
ถ้าคุณยังแก้ไขไฟล์ที่สร้างขึ้น ให้หยุดบริการก่อน สำรองข้อมูล และทำการเปลี่ยนแปลงให้น้อยที่สุด จากนั้นตรวจสอบว่าบริการเขียนไฟล์ทับตอนเริ่มหรือไม่ เพราะไฟล์ที่ย้อนกลับตอนเริ่มหมายความว่าแหล่งความจริงที่แท้จริงอยู่ที่อื่น และการแก้ไขนั้นไม่มีทางคงอยู่
รหัสผ่านและคีย์ส่วนตัวแบบอินไลน์เป็นเรื่องแยกต่างหาก JSON สามารถพาคีย์ที่สมบูรณ์ได้ง่ายพอ ๆ กับไฟล์ตัวเลือก ดังนั้นถือว่าการส่งออกใด ๆ เป็นความลับ เก็บให้ห่างจากไดรฟ์ที่แชร์ และปิดค่าก่อนวางโครงสร้างลงในคำถามบนฟอรัม
การตรวจสอบการเปลี่ยนแปลงและการปกป้องไฟล์
การตรวจสอบไม่ใช่ “JSON แยกวิเคราะห์ได้” การแยกวิเคราะห์พิสูจน์เพียงว่าวงเล็บปีกกาจับคู่กันเท่านั้น ไม่ได้บอกอะไรเลยว่าเจ้าของรู้จักคีย์หรือไม่ ตรวจสอบสถานะของผลิตภัณฑ์เอง: รายการโปรไฟล์ที่ใช้งาน การเชื่อมต่อที่เลือก และการเชื่อมต่อใหม่ที่ใช้ค่าใหม่จริง ๆ โปรไฟล์ที่ปรากฏในรายการแต่ไม่เคยกลายเป็นตัวที่เลือกยังคงไม่ใช่โปรไฟล์ที่ใช้งานอยู่
เฝ้าดูบันทึกของคอมโพเนนต์ที่คุณแก้ไข ไม่ใช่แค่ของไคลเอนต์ VPN ตัวห่อหุ้มที่ปฏิเสธไฟล์ของคุณมักรายงานเรื่องนี้ในบันทึกของตัวเอง และไคลเอนต์ที่ไม่เคยได้รับไฟล์ดูเหมือนไคลเอนต์ที่ได้รับการตั้งค่าที่ไม่ดี
เก็บสำเนาของไฟล์ที่ใช้งานได้และบันทึกเวอร์ชันของผลิตภัณฑ์ที่คุณทดสอบด้วย รูปแบบเหล่านี้เปลี่ยนไประหว่างรุ่น และโครงสร้างที่เคยใช้ได้เมื่อปีที่แล้วอาจถูกปฏิเสธหลังอัปเกรดด้วยข้อความที่ไม่กล่าวถึงสคีมาเลย
สรุปเส้นทาง: ระบุโปรเซส อ่านเอกสารของมัน ยืนยันว่าไฟล์เป็น JSON จริงหรือไม่ ใช้เส้นทางการแก้ไขที่รองรับ และตรวจสอบผ่านสถานะของผลิตภัณฑ์เอง ชื่อไฟล์ไม่เคยตอบคำถามเหล่านี้เลย