คุณดักจับทราฟฟิกบนโฮสต์ IPsec เห็นแพ็กเก็ต ESP ออกไป ไม่เห็นอะไรกลับมา และสรุปว่าฝั่งไกลเสีย การดักจับนั้นไม่สนับสนุนข้อสรุปนั้น ESP ปกป้องทิศทางเดียวของบทสนทนาและไม่ยืนยันสิ่งใดในชั้น IP ดังนั้น ESP ขากลับที่หายไปอาจหมายความว่าแอปพลิเคชันไม่มีอะไรจะพูดก็ได้ เช่นเดียวกับที่อาจหมายความว่าอุโมงค์ตายแล้ว อ่านการแลกเปลี่ยนภายในและสถานะฝั่งรับก่อนจะโทษปลายใด ๆ

ความเชื่อผิด: ทุกแพ็กเก็ตที่ได้รับการปกป้องจะได้รับการตอบกลับ

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

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

สอง SA สอง SPI หนึ่งบทสนทนา

สมาคมความปลอดภัย IPsec เป็นทิศทางเดียว ดังนั้นการแลกเปลี่ยนที่ได้รับการปกป้องตามปกติจึงใช้สมาคมขาเข้าและสมาคมขาออกที่มีตัวระบุแยกกันและสถานะอิสระ การค้นหาทราฟฟิกขากลับด้วย SPI ของแพ็กเก็ตขาออกจึงเป็นความผิดพลาดเชิงหมวดหมู่ เพราะการตอบกลับใด ๆ เดินทางภายใต้ SA ขาออกของคู่สนทนาเองด้วย SPI ของตัวเอง จับคู่ทั้งสองด้วยตัวเลือกทราฟฟิกและที่อยู่ของคู่สนทนาแทน

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

สิ่งที่ผู้รับต้องทำก่อนจะมีอะไรตอบกลับ

StageWhat to look atWrong conclusion if skipped
Sender encryptsoutbound SA packet counter"the tunnel is up"
Peer receivesinbound SA counter and replay window"the peer is down"
Inner deliverytarget host or service logs"routing is broken"
Application repliesthe app's own trace"the reply was dropped"
Protected returnthe 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“ ยุบความผิดพลาดที่แตกต่างกันสี่อย่างเป็นประโยคเดียวที่การดักจับไม่เคยพิสูจน์

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

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