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

ข้อผิดพลาดอาจมาจากไบนารีที่ใหม่กว่า

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

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

openvpn --version ช่วยตัดสินเรื่องนี้สำหรับไบนารีที่คุณทดสอบ ไคลเอนต์ GUI อาจไม่แสดงคำสั่งนั้น ในกรณีนั้นให้อ่านหน้าจอเกี่ยวกับหรือเวอร์ชันของไลบรารีที่มาพร้อมกัน

ตัวเลือกนั้นควบคุมอะไรจริง ๆ

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

เมื่อมีการเจรจา คำถามที่เทียบเท่าคือแต่ละฝั่งยินดีใช้การเข้ารหัสใด นี่เป็นคำถามเชิงนโยบาย และนโยบายอยู่ใน data-ciphers ตั้งแต่ 2.5 เป็นต้นไป

ชื่อเก่า ncp-ciphers เป็นของ 2.4 การผสมสองชื่อระหว่างฝั่งเป็นแหล่งทั่วไปของความล้มเหลวในการเจรจาแบบทางเดียว โปรไฟล์ที่มีทั้งสองชื่อคือโปรไฟล์ที่ถูกแก้ไขโดยคนสองคนในเวลาต่างกัน

เปลี่ยนนโยบาย ไม่ใช่การสะกด

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

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

หากฝั่งเก่าต้องการการจัดการความเข้ากันได้จริง ๆ ให้จำกัดขอบเขตไว้ที่การติดตั้งใช้งานนั้น การคืนพฤติกรรมที่ล้าสมัยในระดับสากลไม่ใช่เงื่อนไขเบื้องต้นในการเชื่อมต่อฝั่งที่ทันสมัย ข้อยกเว้นควรระบุชื่อฝั่งที่มันมีไว้สำหรับ

สองบรรทัดที่ดูเหมือนรายการการเข้ารหัสแต่ไม่ใช่

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

ตรวจสอบชื่อที่ยอมรับด้วย openvpn --show-ciphers บนไบนารีเป้าหมายแทนการคัดลอกรายการจากคู่มือที่เขียนสำหรับสาขาอื่น รายการเปลี่ยนไประหว่างรุ่น ชื่อที่ใช้ได้ในสาขาหนึ่งไม่จำเป็นต้องใช้ได้ในอีกสาขา

หากเป้าหมายคือการเปรียบเทียบประสิทธิภาพ ให้บันทึกอัลกอริทึมและภาระงาน การเปลี่ยนไปใช้ CBC ไม่ใช่การวัดว่าไม่มีการเข้ารหัส

ตรวจสอบว่าการเชื่อมต่อเจรจาอะไรจริง ๆ

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

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

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