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

ตั้งชื่อช่องก่อนจะดีบัก

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

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

ตรวจสอบการแลกเปลี่ยนข้อมูลควบคุม

ยืนยันว่าการจับมือเสร็จสมบูรณ์และทั้งสองฝ่ายเห็นตรงกันเรื่องการขนส่ง เวอร์ชัน TLS และวิธีการยืนยันตัวตน บันทึกของ OpenVPN พิมพ์บรรทัดแยกสำหรับช่องควบคุมและช่องข้อมูล และบรรทัดควบคุมคือที่ที่ความไม่ตรงกันของใบรับรอง เวอร์ชัน TLS หรือ tls-crypt ปรากฏขึ้น

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

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

ตรวจสอบช่องข้อมูลแยกต่างหาก

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

จากนั้นตรวจสอบว่าเซสชันติดตั้งอะไรไว้ PUSH_REPLY สามารถเพิ่มเส้นทาง เซิร์ฟเวอร์ DNS และคำสั่ง redirect-gateway และสิ่งใดสิ่งหนึ่งเหล่านั้นสามารถส่งทราฟฟิกไปที่ที่แอปพลิเคชันใช้ไม่ได้ สำหรับ IKEv2 คำถามที่เทียบเท่าคือตัวเลือกของสมาคม CHILD ตรงกับที่อยู่ในกระแสจริงหรือไม่

tls-auth และ tls-crypt เป็นของช่องควบคุม ทั้งสองยืนยันตัวตนหรือเข้ารหัสการจับมือ และไม่ได้เลือกชุดรหัสข้อมูลของแอปพลิเคชัน หากคุณเพิ่มหนึ่งในนั้นโดยหวังว่าทางข้อมูลจะเปลี่ยน สิ่งเดียวที่คุณเปลี่ยนคือการจับมือ

เชื่อมชื่อเข้ากับ IKEv2 และ OpenVPN

IKEv2 มีสมาคมความปลอดภัย IKE และสมาคม CHILD หนึ่งหรือมากกว่า สมาคม IKE ขนส่งการแลกเปลี่ยนข้อมูลควบคุม ส่วนสมาคม CHILD ขนส่งทราฟฟิกที่ป้องกันไว้และตัวเลือกของมัน ทั้งสองถูกเจรจาและเปลี่ยนคีย์ตามตารางแยกกัน ดังนั้นอันหนึ่งอาจปกติอยู่อีกอันไม่ใช่

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

เก็บการเชื่อมโยงให้ชัดเจนในบันทึกของคุณ: ช่องควบคุมของ OpenVPN และ IKE SA เป็นฝั่งการจัดการ ช่องข้อมูลของ OpenVPN และ CHILD SA เป็นฝั่งทราฟฟิก และการนำไปใช้ไม่สามารถสลับกันได้แม้การแบ่งจะดูคล้ายกัน

หยุดเปลี่ยนการตั้งค่าที่ผิด

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

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

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

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