โปรไฟล์ถูกดาวน์โหลด นำเข้า แล้วหยุดที่บรรทัด 12 ของไฟล์พร้อมข้อความ Unrecognized option ที่ระบุชื่อ keysize ไม่มีอะไรเปลี่ยนในบัญชี และเซิร์ฟเวอร์ยังรับไคลเอนต์อื่นได้ สิ่งที่เปลี่ยนคือไคลเอนต์เอง: Ubuntu 24.04 ติดตั้งOpenVPN 2.6 ขณะที่ไฟล์ส่งออกถูกเขียนสำหรับ 2.4 การซ่อมคือการลบสั้น ๆ ไม่กี่บรรทัด และลำดับสำคัญเพราะตัวเลือกเก่าแต่ละตัวทำให้การแยกวิเคราะห์หยุดก่อนที่ตัวถัดไปจะถูกอ่าน

อ่านบรรทัดข้อผิดพลาดก่อนแตะไฟล์

OpenVPN ระบุชื่อไฟล์และบรรทัดที่การแยกวิเคราะห์หยุด คุณจึงแก้ได้ครั้งละหนึ่งปัญหา เริ่มโปรไฟล์จากเทอร์มินัลแทนแอปเพล็ตบนเดสก์ท็อป เพราะแอปเพล็ตมักกลืน stderr และหมายเลขบรรทัดเป็นเบาะแสเดียวที่เชื่อถือได้ที่คุณจะได้รับ: sudo openvpn --config /etc/openvpn/client/provider.ovpn แก้บรรทัดนั้น รันอีกครั้ง และคาดว่าความล้มเหลวถัดไปจะระบุตัวเลือกอื่น

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

สามชั้นของความล้มเหลว สามวิธีซ่อมที่ต่างกัน

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

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

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

ลบตัวเลือกที่ 2.6 ถอดออก ตามลำดับนี้

แต่ละบรรทัดเหล่านี้ทำให้การแยกวิเคราะห์หยุดด้วยตัวเอง ไคลเอนต์จึงรายงานทีละตัว ไต่ลงตามรายการแล้วรันใหม่หลังการลบทุกครั้ง

ลบ keysize ก่อน เพราะไม่มีสิ่งที่เทียบเท่าในยุคใหม่ และการมีอยู่มักบ่งชี้ถึงชิฟเฟอร์ที่ไคลเอนต์ปัจจุบันปฏิเสธอยู่แล้ว จากนั้นลบ ncp-disable ซึ่งควบคุมการเจรจาชิฟเฟอร์ ถูกเลิกใช้ใน 2.5 และหายไปใน 2.6 แทนที่ ns-cert-type server ด้วย remote-cert-tls server ซึ่งแสดงเจตนาเดียวกันผ่านการตรวจสอบที่รองรับประวัติการเปลี่ยนแปลงของ 2.6 ระบุรายการลบที่เหลืออยู่ข้างสิ่งที่มาแทน เพื่อให้ทุกอย่างที่ตัวแยกวิเคราะห์ยังปฏิเสธมีคำตอบที่บันทึกไว้

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

ทำให้ BF-CBC ทำงานเฉพาะเป็นตัวสำรองที่จำกัดขอบเขต

ผู้ให้บริการบางรายยังจบการเชื่อมต่อด้วย BF-CBC ซึ่ง OpenVPN 2.6 จะไม่เจรจาด้วยหากไม่มีตัวช่วย เพราะชิฟเฟอร์นี้มีบล็อก 64 บิต การซ่อมแบบแคบคือรายการตัวสำรองบวกผู้ให้บริการ legacy ของ OpenSSL ไม่ใช่การดาวน์เกรดไคลเอนต์ทั้งตัว

providers legacy default
data-ciphers AES-256-GCM:AES-128-GCM
data-ciphers-fallback BF-CBC

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

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

ตรวจสอบด้วยโปรไฟล์ที่ไคลเอนต์โหลดจริง

การเชื่อมต่อที่นำเข้ามักถูกคัดลอกไปยังไดเรกทอรีระบบ การแก้ไฟล์ในโฟลเดอร์ดาวน์โหลดของคุณจึงอาจไม่เปลี่ยนอะไรเลย ค้นหาสำเนาที่รันอยู่: sudo grep -rl "remote " /etc/NetworkManager/system-connections /etc/openvpn จากนั้นเริ่มอุโมงค์และอ่านบรรทัดบันทึกที่รายงานชิฟเฟอร์ช่องข้อมูลที่เลือกจริง การเชื่อมต่อที่จับมือสำเร็จบนตัวสำรองบอกคุณว่าเซิร์ฟเวอร์ไม่เคยเสนออะไรที่ทันสมัย

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

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

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