کسی ایپ کو ٹنل سے گزارنا اس کی روٹنگ کو ہر اُس چیز تک نہیں لے جاتا جو وہ ایپ شروع کرتی ہے، چاہے انٹرفیس اُلٹا اشارہ دے۔ لنک درخواست کسی دوسرے پروگرام کے حوالے کرتا ہے، وہ پروگرام اپنا ساکٹ کھولتا ہے، اور پلیٹ فارم قواعد نئی پروسیس پر لاگو کرتا ہے، نہ کہ اُس پر جس نے متن دکھایا۔ ٹنل پالیسی دراصل اُسی دوسری پروسیس کو دیکھتی ہے، اور وہ آپ کی مقرر کردہ نہیں ہے۔

لہٰذا شامل ایپ ٹنل سے باہر بیٹھا براؤزر کھول سکتی ہے۔ خارج کردہ براؤزر کام اُس ایپ کو واپس دے سکتا ہے جو اُس کے اندر بیٹھی ہے۔ اس حیرت کی دونوں سمتیں عام رویہ ہیں۔

کام کے بہاؤ کا وہ حصہ جو کسی نے مقرر نہیں کیا

ہر ایپ کی پالیسی کسی قابلِ عمل فائل یا پیکج کی شناخت کے خلاف لکھی جاتی ہے، اور ہر کنکشن کا جائزہ اُسی لمحے ہوتا ہے جب وہ بنتا ہے۔ براؤزر، دستاویز نگاہ، میڈیا پلیئر اور سسٹم کی شیئرنگ شیٹ—ہر ایک کی اپنی شناخت ہے، اور ہر ایک کو اپنا فیصلہ ملتا ہے۔ گہرا لنک ڈیٹا لے جاتا ہے، پالیسی نہیں۔

اسی لیے مشاہدہ من مانی لگتا ہے: وہی کلک دو طرح سے روٹ ہوتا ہے، اس پر منحصر ہے کہ کون سا ہینڈلر جواب دیتا ہے۔ ٹنل کے اندر کا میل کلائنٹ ٹنل سے باہر رہنے والے براؤزر میں لنک کھولتا ہے، اور صفحہ آپ کے گھر کے پتے سے لوڈ ہوتا ہے۔ ٹنل سے باہر کا براؤزر اندر رہنے والے نگاہ میں دستاویز کھولتا ہے، اور فائل ایگزٹ سے آتی ہے۔ دونوں میں سے کوئی نتیجہ کلائنٹ کی خرابی نہیں۔

پہلے سے چل رہا ہینڈلر معاملہ مزید بگاڑتا ہے۔ اگر براؤزر پہلے ہی کھلا ہے، تو لنک موجودہ پروسیس کے لیے پیغام بن جاتا ہے، اور وہ پروسیس وہی روٹنگ رکھتی ہے جو اُس کے آغاز پر تھی۔ ہینڈلر بند کر کے دوبارہ کھولنے سے نتیجہ بدلتا ہے، اور اسی لیے مسئلہ مانگنے پر کبھی دہرایا نہیں جاتا۔

PlatformPolicy objectWhat it is evaluated against
AndroidPer-app VPN allowlistPackage name of the process opening the socket
WindowsApplication traffic filtersApplication path in the filter rule
LinuxUID or cgroup routing rulesOwner 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 پر مالک پروسیس کی شناخت حل کر کے وہی کرتا ہے۔ پروسیس کا نام اپنی پالیسی کے ناموں سے موازنہ کریں۔ اگر نام براؤزر ہے اور براؤزر خارج ہے، تو کلک خرابی سے نہیں، ڈیزائن کے مطابق ٹنل سے باہر گیا۔ پالیسی کے قاعدے کو زندہ ساکٹ سے ملانا ہی پورا طریقہ ہے۔

جانچ کو ہینڈلر کے پہلے سے چلنے پر، پھر اُس کے بند ہونے پر دہرائیں۔ دونوں نتائج مختلف ہو سکتے ہیں، اور یہی فرق ٹنل سے بھاگنے والے لنکس کے بارے میں زیادہ تر وقفے وقفے سے آنے والی رپورٹوں کی وضاحت کرتا ہے۔

احاطہ کام کے بہاؤ کی خصوصیت ہے

اگر کسی کام کو شروع سے آخر تک ٹنل کے اندر رہنا ہے، تو جس بھی جز تک وہ پہنچ سکتا ہے وہ پالیسی کے اندر ہونا چاہیے: لانچر، ہینڈلر، نگاہ، اور وہ کوئی ثالث جو پلیٹ فارم اُن کے درمیان رکھتا ہے۔ وسیع تر احاطہ اکثر ایماندار جواب ہوتا ہے، اور ہر شیئرنگ ہدف کا آڈٹ کرنے سے سستا پڑتا ہے۔

ایک ایپ کو ٹھیک کرنے کے لیے سسٹم ثالث کو خارج کرنا عام غلطی ہے۔ ثالث مشترک ہوتے ہیں، اس لیے استثنا اُس ہر دوسری ایپ کے ساتھ جاتا ہے جو وہی راستہ استعمال کرتی ہے، عام طور پر کسی کو اُس وقت تک پتہ نہیں چلتا جب ہفتوں بعد کوئی رپورٹ نہ آ جائے۔ جز کو خارج کرنے سے پہلے پڑھیں کہ اور کیا اُس پر منحصر ہے۔

شناخت کو روٹنگ سے الگ رکھیں۔ لنک سیشن ٹوکن یا اکاؤنٹ شناخت لے جا سکتا ہے، چاہے درخواست کسی بھی ایگزٹ کو ملے۔ درست طریقے سے روٹ شدہ کلک بھی منزل کو ٹھیک ٹھیک بتا سکتا ہے کہ اُس کی پیروی کس نے کی۔

کام کے بہاؤ کی دستاویز بنائیں، پہلا چیک باکس نہیں۔ جب کوئی کام چار پروگراموں تک پھیلے، تو چار پروگراموں والا خاکہ ہی بتاتا ہے کہ ٹریفک کہاں جائے گی، اور واحد ایپ کی ترتیب اُس کی محض ایک سطر ہے۔

متعلقہ مضامین