อุโมงค์แยก: ทำไมลิงก์จึงเปิดนอก VPN ที่คุณตั้งไว้
เส้นทางเป็นไปตามโพรเซสที่เปิดซ็อกเก็ต ไม่ใช่แอปที่แสดงลิงก์ให้คุณเห็น พิสูจน์ว่าโปรแกรมใดเชื่อมต่อก่อนที่คุณจะขยายข้อยกเว้น
การพาแอปผ่านอุโมงค์ไม่ได้พาเส้นทางของมันไปยังทุกสิ่งที่แอปนั้นเปิดขึ้น แม้ว่าอินเทอร์เฟซจะบอกเป็นนัยตรงกันข้าม ลิงก์ส่งคำขอไปยังโปรแกรมอื่น โปรแกรมนั้นเปิดซ็อกเก็ตของตัวเอง และแพลตฟอร์มใช้กฎกับโพรเซสใหม่ ไม่ใช่กับโพรเซสที่แสดงข้อความ โพรเซสที่สองนั่นเองคือสิ่งที่โยบายอุโมงค์เห็นจริง และมันไม่ใช่ตัวที่คุณตั้งค่าไว้
แอปที่อยู่ในขอบเขตจึงเปิดเบราว์เซอร์ที่อยู่นอกอุโมงค์ได้ เบราว์เซอร์ที่ถูกยกเว้นอาจส่งงานกลับไปยังแอปที่อยู่ภายในได้ ทั้งสองทิศทางของความประหลาดใจนี้เป็นพฤติกรรมปกติ
ส่วนของขั้นตอนการทำงานที่ไม่มีใครตั้งค่า
นโยบายรายแอปเขียนขึ้นจากตัวตนของไฟล์เรียกทำงานหรือแพ็กเกจ และทุกการเชื่อมต่อถูกประเมินในขณะที่มันถูกสร้าง เบราว์เซอร์ ตัวดูเอกสาร เครื่องเล่นสื่อ และแผ่นแชร์ของระบบต่างมีตัวตนของตัวเอง และแต่ละตัวก็ได้คำตัดสินของตัวเอง ลิงก์เชิงลึกพาข้อมูล ไม่ใช่นโยบาย
นี่คือเหตุผลที่การสังเกตดูเหมือนเป็นเรื่องตามอำเภอใจ การคลิกเดียวกันถูกส่งเส้นทางสองแบบขึ้นกับว่าตัวจัดการใดตอบ แอปอีเมลในอุโมงค์เปิดลิงก์ในเบราว์เซอร์ที่อยู่นอกอุโมงค์ และหน้าเว็บโหลดจากที่อยู่บ้านของคุณ เบราว์เซอร์นอกอุโมงค์เปิดเอกสารในตัวดูที่อยู่ภายใน และไฟล์เข้ามาทางทางออก ไม่ว่าผลลัพธ์ใดก็ไม่ใช่ข้อบกพร่องของไคลเอนต์
ตัวจัดการที่ทำงานอยู่แล้วทำให้แย่ลง หากเบราว์เซอร์เปิดอยู่แล้ว ลิงก์จะกลายเป็นข้อความถึงโพรเซสที่มีอยู่ และโพรเซสนั้นคงเส้นทางที่มันมีตอนเริ่มต้น การปิดและเปิดตัวจัดการใหม่เปลี่ยนผลลัพธ์ และนี่คือเหตุผลที่ปัญหาไม่เคยเกิดซ้ำเมื่อเรียกใช้
| Platform | Policy object | What it is evaluated against |
|---|---|---|
| Android | Per-app VPN allowlist | Package name of the process opening the socket |
| Windows | Application traffic filters | Application path in the filter rule |
| Linux | UID or cgroup routing rules | Owner of the socket, which can be a different program |
โพรเซสใดสร้างการเชื่อมต่อจริง
วัดฝั่งที่รับแทนการคาดเดา เปิดอุโมงค์ไว้ คลิกลิงก์ที่ไม่เป็นอันตราย และดูซ็อกเก็ตที่โปรแกรมใหม่ถืออยู่
ss -tnp state established '( dport = :443 )' Get-NetTCPConnection -State Established | Select-Object RemoteAddress,OwningProcess
คำสั่งแรกบอกชื่อโพรเซสเบื้องหลังทุกซ็อกเก็ตที่ตั้งไว้แล้วบน Linux และคำสั่งที่สองทำเช่นเดียวกันบน Windows โดยแก้ตัวระบุโพรเซสเจ้าของ เปรียบเทียบชื่อโพรเซสกับชื่อในนโยบายของคุณ หากชื่อคือเบราว์เซอร์และเบราว์เซอร์ถูกยกเว้น การคลิกออกจากอุโมงค์ตามการออกแบบ ไม่ใช่เพราะข้อบกพร่อง การจับคู่กฎนโยบายกับซ็อกเก็ตที่ยังมีชีวิตคือวิธีการทั้งหมด
ทำการตรวจซ้ำขณะตัวจัดการทำงานอยู่ แล้วจึงทำเมื่อมันถูกปิด ผลลัพธ์สองอย่างอาจต่างกัน และความต่างนั้นอธิบายรายงานเป็นครั้งคราวส่วนใหญ่เกี่ยวกับลิงก์ที่หลุดออกจากอุโมงค์
ความครอบคลุมเป็นคุณสมบัติของขั้นตอนการทำงาน
หากงานต้องอยู่ในอุโมงค์ตั้งแต่ต้นจนจบ ทุกองค์ประกอบที่มันเข้าถึงได้ต้องอยู่ในนโยบาย ทั้งตัวเปิด ตัวจัดการ ตัวดู และตัวกลางใดที่แพลตฟอร์มแทรกไว้ระหว่างกัน ความครอบคลุมที่กว้างกว่ามักเป็นคำตอบที่ซื่อตรง และถูกกว่าการตรวจสอบทุกเป้าหมายการแชร์
การยกเว้นตัวกลางของระบบเพื่อแก้แอปเดียวเป็นข้อผิดพลาดที่พบบ่อย ตัวกลางถูกใช้ร่วมกัน ดังนั้นข้อยกเว้นจึงตามไปยังทุกแอปอื่นที่ใช้เส้นทางเดียวกัน โดยปกติไม่มีใครสังเกตจนมีรายงานมาถึงหลายสัปดาห์ให้หลัง อ่านว่ามีอะไรอีกที่ขึ้นกับองค์ประกอบนั้นก่อนยกเว้น
แยกตัวตนออกจากเส้นทางด้วย ลิงก์สามารถพาโทเคนเซสชันหรือตัวระบุบัญชีได้ ไม่ว่าทางออกใดจะเป็นผู้รับคำขอ การคลิกที่ถูกส่งเส้นทางอย่างถูกต้องยังบอกปลายทางได้อย่างแม่นยำว่าใครตามมันมา
จดบันทึกขั้นตอนการทำงาน ไม่ใช่ช่องทำเครื่องหมายแรก เมื่องานพาดผ่านสี่โปรแกรม แผนภาพที่มีสี่โปรแกรมนั่นเองที่ทำนายว่าทราฟฟิกจะไปที่ใด และการตั้งค่าแอปเดียวเป็นเพียงแถวเดียวของมัน