ข้อผิดพลาดเดียว สามความลับ: ข้อมูลรับรอง VPN ตัวไหนล้มเหลว?
ไคลเอนต์แสดงข้อผิดพลาดเดียวในทุกขั้นตอน อ่านความสัมพันธ์ การแลกเปลี่ยนผู้ใช้ และวิธีการก่อนรีเซ็ตรหัสผ่านที่ไม่มีใครตรวจสอบ
“การยืนยันตัวตนล้มเหลว” อาจหมายถึงใบรับรองเซิร์ฟเวอร์ คีย์ที่แชร์ล่วงหน้าของเครื่อง หรือรหัสผ่านผู้ใช้ จะหมายถึงตัวไหนขึ้นอยู่กับโปรโตคอล เพราะแต่ละโปรโตคอลนิยามชุดความลับต่างกัน รีเซ็ตตัวที่ผิดแล้วข้อผิดพลาดก็ยังคงอยู่ ทางออกคือกำหนดว่าโปรโตคอลต้องใช้หลักฐานกี่อย่างก่อนแก้ไขอะไร
หลักฐานสองอย่างที่ชี้ไปคนละทิศ
อุโมงค์ต้องตอบว่าไปถึงเกตเวย์ที่ถูกต้องหรือไม่ และแยกกันว่าผู้ใช้คือใคร หลักฐานฝั่งเกตเวย์เป็นระดับเครื่อง: ใบรับรองเซิร์ฟเวอร์ คีย์ที่แชร์ล่วงหน้า หรือคีย์สาธารณะแบบคงที่ หลักฐานฝั่งผู้ใช้เป็นระดับบุคคล: รหัสผ่าน โทเคน ใบรับรองไคลเอนต์ หรือไม่มีเลย ทั้งสองเป็นทิศทางความเชื่อถือที่ตรงข้ามกันและใช้เนื้อหาต่างกัน
IKEv2 ทำหลักฐานฝั่งเกตเวย์ภายใน IKE_AUTH และเมื่อใช้ EAP จะรันหลักฐานฝั่งผู้ใช้ในการแลกเปลี่ยนแยกต่างหากหลังจากนั้น ข้อกำหนด IKEv2 เก็บสองส่วนนี้แยกกัน ซึ่งเป็นเบาะแสที่ชัดเจนว่าควรมองที่ไหนเมื่อข้อความเดียวครอบคลุมทั้งสองรอบ
อ่านขั้นตอน ไม่ใช่ข้อความ
ไคลเอนต์แสดงสตริงข้อผิดพลาดเดียวไม่ว่าจะล้มเหลวที่ขั้นตอนใด ดังนั้นสตริงเองแทบไม่มีข้อมูล ข้อมูลอยู่ที่สถานะที่ตรวจสอบได้ในแต่ละขั้นตอน: มีความสัมพันธ์อยู่หรือไม่ การแลกเปลี่ยนผู้ใช้เริ่มแล้วหรือไม่ และไคลเอนต์เสนอวิธีการที่เกตเวย์ต้องการหรือไม่ ตารางจัดเรียงขั้นตอนตามนั้น ไม่ใช่ตามชื่อโปรโตคอล
| Stage that failed | Evidence you can inspect | What a password change cannot fix |
|---|---|---|
| The machine proof | no security association in the state list | a mismatched pre-shared key or an untrusted chain |
| The user proof | an association is up while PPP or EAP reports failure | an expired token, a locked account, a missing client key |
| The client's method support | the client offers no method the gateway accepts | a client without the required EAP or key material |
| The server's policy | the gateway rejects before any user exchange starts | a policy that requires a certificate the profile lacks |
มีเพียงแถวที่สองที่เกี่ยวกับข้อมูลรับรองที่ผู้ใช้พิมพ์ใหม่ได้ อีกสามแถวเป็นข้อเท็จจริงด้านการกำหนดค่า และความไม่ตรงกันนี้คือเหตุผลที่รายงานจำนวนมากจบลงด้วยการรีเซ็ตรหัสผ่านที่ไม่เปลี่ยนอะไรเลย อ่านแถวที่ตรงกับหลักฐานของคุณก่อนแตะฟิลด์ใด ๆ
โปรโตคอลสองความลับเผยไพ่
L2TP บน IPsec ทำให้เห็นจำนวนชัดเจน เพราะการตรวจสองครั้งเกิดขึ้นในโปรเซสต่างกัน ชั้น IPsec ต้องขึ้นก่อนด้วยคีย์ที่แชร์ล่วงหน้าหรือใบรับรอง และจากนั้น PPP ที่อยู่ข้างในจึงพยายามล็อกอินผู้ใช้
เมื่อความลับฝั่งเครื่องผิด จะไม่เกิดความสัมพันธ์และข้อมูลรับรองผู้ใช้ไม่ถูกทดลองเลย เมื่อความลับฝั่งเครื่องถูกแต่ความลับผู้ใช้ผิด ความสัมพันธ์ยังมีอยู่และ PPP ปฏิเสธการล็อกอินหลังจากอุโมงค์ขึ้นแล้ว ทั้งสองให้ข้อความเดียวกันบนหน้าจอจากสองเหตุการณ์ที่ต่างกัน
sudo swanctl --list-sas
sudo ip xfrm state list
sudo journalctl -u xl2tpd -n 50 --no-pagerรายการความสัมพันธ์ที่ว่างเปล่าตัดชั้นผู้ใช้ออกทันที ดังนั้นตรวจสอบก่อนรหัสผ่าน ความสัมพันธ์ที่ตั้งขึ้นแล้วพร้อมความล้มเหลว PPP ซ้ำ ๆ ชี้ไปอีกทาง คือชั้นผู้ใช้หรือโปรโตคอลการยืนยันตัวตนภายในนั้น ไม่มีข้อสรุปใดได้จากข้อความข้อผิดพลาดของไคลเอนต์
การเข้าถึงด้วยรหัสผ่านอย่างเดียวขึ้นกับอะไรจริง ๆ
การเข้าถึงด้วยรหัสผ่านอย่างเดียวเป็นเรื่องปกติสำหรับ L2TP, PPTP, SSTP และ IKEv2 ที่ใช้ EAP WireGuard ไม่มีตัวเลือกเช่นนั้นเลย เพราะเพื่อนร่วมเครือข่ายเป็นคีย์ไม่ใช่ผู้ใช้ สำหรับ OpenVPN คำตอบมาจากข้อกำหนดใบรับรองไคลเอนต์ของเซิร์ฟเวอร์: เกตเวย์ที่ต้องการทั้งใบรับรองและรหัสผ่านจะยังคงปฏิเสธไคลเอนต์ที่ใช้รหัสผ่านอย่างเดียว ไม่ว่าจะพิมพ์อะไรในฟิลด์
องค์ประกอบที่คุณต้องใช้สืบเนื่องมาจากคำตอบเดียวกัน การล็อกอินด้วยรหัสผ่านภายใต้ IKEv2 ต้องใช้ไคลเอนต์ที่พูด EAP ขณะที่การล็อกอินด้วยใบรับรองต้องใช้คีย์ส่วนตัวของไคลเอนต์และห่วงโซ่ของเซิร์ฟเวอร์ ติดตั้งตัวที่ผิดแล้วความล้มเหลวจะอ่านได้เหมือนข้อผิดพลาดข้อมูลรับรอง แม้ว่าวิธีการยืนยันตัวตนเองคือสิ่งที่ขาดไป
เปลี่ยนอย่างเดียว แล้วทดสอบใหม่
กำหนดข้อเท็จจริงสามอย่างก่อน: โปรโตคอลใดกำลังทำงาน นิยามความลับกี่อย่าง และตัวใดเป็นของเครื่องไม่ใช่ของผู้ใช้ เครื่องล้มเหลวในขั้นแรกและคนล้มเหลวในขั้นที่สอง และการสับสนสองอย่างนี้คือปัญหาทั้งหมด
จากนั้นเปลี่ยนเพียงอย่างเดียวและทดสอบใหม่จากไคลเอนต์เดิม วินัยนั้นเปลี่ยนความล้มเหลวที่น่าสับสนให้เป็นการแก้ไขที่อธิบายให้คนถัดไปได้ ซึ่งมีประโยชน์กว่าการเชื่อมต่อที่ทำงานได้แต่ไม่มีใครอธิบายได้