ESP ขาออกที่ไม่มีการตอบกลับไม่ได้หมายความว่า VPN ตาย
ESP ปกป้องทิศทางเดียวต่อสมาคมและไม่ยืนยันสิ่งใด ตรวจสอบบทสนทนาภายในและ SA ขาเข้าก่อนกล่าวว่าเซิร์ฟเวอร์ไม่ตอบสนอง
คุณดักจับทราฟฟิกบนโฮสต์ IPsec เห็นแพ็กเก็ต ESP ออกไป ไม่เห็นอะไรกลับมา และสรุปว่าฝั่งไกลเสีย การดักจับนั้นไม่สนับสนุนข้อสรุปนั้น ESP ปกป้องทิศทางเดียวของบทสนทนาและไม่ยืนยันสิ่งใดในชั้น IP ดังนั้น ESP ขากลับที่หายไปอาจหมายความว่าแอปพลิเคชันไม่มีอะไรจะพูดก็ได้ เช่นเดียวกับที่อาจหมายความว่าอุโมงค์ตายแล้ว อ่านการแลกเปลี่ยนภายในและสถานะฝั่งรับก่อนจะโทษปลายใด ๆ
ความเชื่อผิด: ทุกแพ็กเก็ตที่ได้รับการปกป้องจะได้รับการตอบกลับ
ESP ไม่ใช่โปรโตคอลคำขอตอบกลับ มันเข้ารหัสและพิสูจน์ตัวตนสิ่งที่นโยบายเลือก และผู้รับตรวจสอบ ถอดรหัส และส่งแพ็กเก็ตภายในนั้นโดยไม่สร้างแพ็กเก็ตของตัวเอง คำถาม UDP ที่ปลายทางเพิกเฉย หรือเสียงสะท้อน ICMP ที่นโยบายขาเข้าทิ้งไป ทำให้เกิดความเงียบทั้งสองทิศทางเป็นผลลัพธ์ที่ถูกต้อง การถือความเงียบนั้นเป็นความล้มเหลวของการขนส่งทำให้คุณไปตามหาความผิดพลาดของเครือข่ายที่ไม่เคยมีอยู่
สิ่งที่การดักจับทางเดียวพิสูจน์จริง ๆ คือสแตกของผู้ส่งเข้ารหัสบางอย่าง ณ จุดสังเกตนั้น ไม่มีอะไรเกี่ยวกับการมาถึง และไม่มีอะไรเกี่ยวกับเจตนาที่จะตอบ คำถามที่มีประโยชน์ไม่ใช่ „ทำไมไม่มีการตอบกลับ“ แต่เป็น „บทสนทนาภายในควรสร้างอะไร“
สอง SA สอง SPI หนึ่งบทสนทนา
สมาคมความปลอดภัย IPsec เป็นทิศทางเดียว ดังนั้นการแลกเปลี่ยนที่ได้รับการปกป้องตามปกติจึงใช้สมาคมขาเข้าและสมาคมขาออกที่มีตัวระบุแยกกันและสถานะอิสระ การค้นหาทราฟฟิกขากลับด้วย SPI ของแพ็กเก็ตขาออกจึงเป็นความผิดพลาดเชิงหมวดหมู่ เพราะการตอบกลับใด ๆ เดินทางภายใต้ SA ขาออกของคู่สนทนาเองด้วย SPI ของตัวเอง จับคู่ทั้งสองด้วยตัวเลือกทราฟฟิกและที่อยู่ของคู่สนทนาแทน
การเปลี่ยนคีย์ทำให้ภาพซับซ้อนขึ้นชั่วขณะไม่กี่วินาที เพราะสถานะเก่าและสถานะแทนที่อาจทับซ้อนกัน หากอาการเริ่มขึ้นในช่วงเปลี่ยนคีย์ ให้เก็บตัวระบุสมาคมและตราเวลาร่วมกัน ไม่ใช่แค่ชื่อการเชื่อมต่อ
สิ่งที่ผู้รับต้องทำก่อนจะมีอะไรตอบกลับ
| Stage | What to look at | Wrong conclusion if skipped |
|---|---|---|
| Sender encrypts | outbound SA packet counter | "the tunnel is up" |
| Peer receives | inbound SA counter and replay window | "the peer is down" |
| Inner delivery | target host or service logs | "routing is broken" |
| Application replies | the app's own trace | "the reply was dropped" |
| Protected return | the peer's outbound SA | "ESP only works one way" |
แต่ละแถวล้มเหลวอย่างอิสระและแต่ละความล้มเหลวมีเจ้าของต่างกัน จึงเป็นเหตุผลที่การดักจับครั้งเดียวแยกแยะไม่ได้ ตัวนับขาเข้าเป็นหลักฐานโดยตรงเพียงอย่างเดียวของการมาถึง เพราะแพ็กเก็ตที่ล้มเหลวในการพิสูจน์ตัวตนหรือการตรวจสอบการเล่นซ้ำจะถูกทิ้งโดยไม่มีการตอบสนองใด ๆ คู่สนทนาที่ตัวนับขาเข้าไม่ขยับจึงไม่ได้ให้ข้อมูลใด ๆ เกี่ยวกับนโยบายของตนแก่คุณ
การส่งมอบเป็นขั้นตอนแยกจากการถอดรหัส สถานะอาจถูกต้องแต่แพ็กเก็ตยังถูกทิ้งในภายหลังโดยนโยบายขาเข้าหรือเส้นทางที่ไม่รวมปลายทางภายใน ดังนั้นตรวจสอบว่าโฮสต์เป้าหมายเห็นข้อความธรรมดาหรือไม่ แทนที่จะถือว่าตัวนับที่สะอาดหมายความว่าแพ็กเก็ตไปถึงที่ที่คุณต้องการ
ESP แบบเนทีฟไม่ใช่ UDP
ESP แบบเนทีฟคือ โปรโตคอล IP 50 ซึ่งไม่ใช่ TCP และไม่ใช่ UDP และไม่มีพอร์ตเลย กฎไฟร์วอลล์ที่อนุญาต IKE บน UDP 500 จึงไม่ได้บอกอะไรเกี่ยวกับเส้นทางข้อมูล และฟิลเตอร์ที่เขียนโดยอิงพอร์ตอาจปล่อยให้อุโมงค์เจรจาแล้วทิ้งทุกสิ่งภายใน ทดสอบเส้นทางข้อมูลแยกต่างหากในโหมดที่คุณสังเกตจริง
หลัง NAT รูปแบบเปลี่ยนไป เพย์โหลดที่ได้รับการปกป้องเดินทางภายใน UDP โดยทั่วไปบนพอร์ต 4500 ตามที่ RFC 3948 กำหนด บันทึกโหมดที่ใช้งานก่อนเขียนกฎใด ๆ เพราะอุปกรณ์บนเส้นทางอาจจัดการ ESP แบบเนทีฟและ ESP ที่ห่อหุ้มด้วย UDP ต่างกันโดยสิ้นเชิง และกล่องกลางบางตัวอนุญาตอย่างหนึ่งแต่ทิ้งอีกอย่างหนึ่ง
อ่านตัวนับที่เป็นของเหตุการณ์นี้
บนโฮสต์ strongSwan swanctl --list-sas รายงานตัวนับแพ็กเก็ตและไบต์ต่อสมาคมทั้งสองทิศทาง ซึ่งเพียงพอที่จะแยก „ไม่เคยมาถึง“ ออกจาก „มาถึงแต่ไม่ตอบ“ บน Linux /proc/net/xfrm_stat นับความล้มเหลวรวม เช่น สถานะที่หายไป นโยบายที่หายไป และข้อผิดพลาดของโปรโตคอล ยอดรวมเหล่านั้นสะสมตั้งแต่บูตและเป็นของเนมสเปซเครือข่ายเดียว ตัวเลขมากจึงไม่ใช่การชี้ตัวผู้กระทำ
อ่านค่าสองครั้งรอบหน้าต่างเหตุการณ์ในเนมสเปซที่ถูกต้องและเปรียบเทียบส่วนต่าง มิฉะนั้นคุณจะปักความผิดพลาดของสัปดาห์ที่แล้วไปที่ตั๋วของบ่ายนี้ ใส่เนมสเปซและตราเวลาทั้งสองลงในตั๋ว เพื่อให้ผู้อ่านคนต่อไปทำการเปรียบเทียบซ้ำได้แทนที่จะเชื่อยอดรวม
ตั้งชื่อขั้นตอน ไม่ใช่ผู้ต้องสงสัย
ข้อสรุปที่มีประโยชน์บอกว่าแพ็กเก็ตหยุดที่ไหน ไม่เคยได้รับ ได้รับแล้วถูกทิ้ง ส่งมอบแล้วแต่ไม่มีการตอบ หรือตอบแล้วแต่สูญหายระหว่างทางกลับ แต่ละอย่างชี้ไปที่เจ้าของต่างกันและคำสั่งถัดไปต่างกัน „ไม่มีการตอบสนองจากเซิร์ฟเวอร์ VPN“ ยุบความผิดพลาดที่แตกต่างกันสี่อย่างเป็นประโยคเดียวที่การดักจับไม่เคยพิสูจน์
ทำให้การดักจับแคบ และอย่าใส่สถานะเคอร์เนลดิบลงในตั๋ว เพราะอาจมีวัสดุกุญแจที่ไม่ควรออกจากโฮสต์ ส่วนต่างของตัวนับและตราเวลาเป็นส่วนที่ควรส่งต่อให้คนถัดไป