VPN ٹنل کیا ہے اور تحفظ کہاں ختم ہوتا ہے
ٹنل منتخب پیکٹوں کو اسی لنک پر دوسرے لفافے میں رکھتا ہے جو آپ کے پاس پہلے سے تھا۔ ایک درخواست کا پیچھا کریں اور دیکھیں کہ سائٹ واقعی کون سا پتہ درج کرتی ہے۔
کلائنٹ کہتا ہے منسلک ہے، تالا بند ہے، اور ایک سائٹ پھر بھی آپ کے فلیٹ کا پتہ درج کر رہی ہے۔ کچھ بھی ناکام نہیں ہوا۔ ٹنل آپ کے Wi-Fi یا موبائل لنک کی جگہ نہیں لیتا؛ وہ منتخب پیکٹوں کے گرد دوسرا لفافہ لگاتا ہے اور وہ لفافہ اسی نیٹ ورک پر بھیجتا ہے جو آپ کے پاس پہلے سے تھا۔ اس چال کو سمجھنا بنیادی طور پر ایک درخواست کا پیچھا کرنا اور یہ دیکھنا ہے کہ لفافہ کہاں کھلتا ہے، کیونکہ گھر کے پتے کے اخراج سے لے کر بڑی ڈاؤن لوڈ کے رکنے تک تقریباً ہر الجھا دینے والی علامت اسی حد سے آتی ہے۔
دو لفافے، ایک طبعی لنک
آپ کا لیپ ٹاپ روٹر کے ساتھ اپنا معمول کا کنکشن برقرار رکھتا ہے، اور روٹر فراہم کنندہ کے ساتھ اپنا معمول کا کنکشن برقرار رکھتا ہے۔ ٹنل کے اوپر آنے پر اس راستے میں کچھ نہیں بدلتا۔ جو بدلتا ہے وہ یہ ہے کہ منتخب پیکٹ ایک مجازی انٹرفیس کو دیے جاتے ہیں، VPN ساتھی کے پتے پر نئے پیکٹ کے اندر لپیٹے جاتے ہیں، اور طبعی لنک پر عام ٹریفک کے طور پر بھیجے جاتے ہیں۔
وصول کرنے والا سرا ایک آلہ ہے جو لفافہ کھولتا ہے اور اصل پیکٹ کو اس کی منزل کی طرف آگے بھیجتا ہے۔ دو سروں کے درمیان، ناظر بیرونی ہیڈر دیکھتا ہے اور اندرونی کے بارے میں کچھ نہیں دیکھتا، جب تک پروٹوکول اسے انکرپٹ نہ کرے، جو زیادہ تر صارف پروٹوکول کرتے ہیں اور عام تکنیک اس کا تقاضا نہیں کرتی۔
اسی لیے مجازی انٹرفیس بیک وقت حقیقی اور گمراہ کن ہے۔ یہ پتے اور زیادہ سے زیادہ ترسیلی اکائی والی کرنل شے کے طور پر موجود ہے، اور آپریٹنگ سسٹم کسی بھی دوسرے انٹرفیس کی طرح اس میں ٹریفک بھیجتا ہے۔ یہ کیبل نہیں ہے، اور اس کا وجود صرف یہ ثابت کرتا ہے کہ کوئی جزو نصب ہے۔ آپ کا براؤزر اسے استعمال کرتا ہے یا نہیں، یہ راستے طے کرتے ہیں، انٹرفیس کا کھلا ہونا نہیں۔
ایک درخواست کا سفر دیکھیں
ایک منزل چنیں اور کرنل سے پوچھیں کہ وہ کون سا انٹرفیس استعمال کرے گا۔ یہ ایک ہی کمانڈ ٹنل کے کچھ کرنے یا نہ کرنے کے بارے میں زیادہ تر بحثوں کا فیصلہ کرتی ہے:
ip route get 203.0.113.7
ip -brief addr show
ip -4 addr show dev wg0
اگر راستے کی آؤٹ پٹ ٹنل انٹرفیس کا نام لے تو پیکٹ لپیٹا جائے گا۔ اگر یہ طبعی انٹرفیس کا نام لے تو نہیں لپیٹا جائے گا، اور کلائنٹ کو کتنی بار دوبارہ شروع کریں یہ نہیں بدلے گا۔ دوسری کمانڈ دونوں انٹرفیس ساتھ ساتھ دکھاتی ہے، اور اسی طرح آپ بغیر پتے والی یا غلط خاندان کے پتے والی ٹنل پکڑتے ہیں۔
پھر لفافے کے اندر سے پہلی چھلانگ دیکھیں، اور باہر کی پہلی چھلانگ سے موازنہ کریں:
traceroute -n -m 3 203.0.113.7
sudo tcpdump -ni wg0 -c 5
ٹنل کے اندر پہلی چھلانگ ساتھی کا اندرونی پتہ ہے، آپ کا روٹر نہیں۔ ٹنل انٹرفیس پر کیپچر اندرونی پیکٹ دکھاتا ہے، یہ وہ ٹریفک ہے جسے ایپلیکیشن بھیج رہا سمجھتا ہے۔ اسی وقت طبعی انٹرفیس پر کیپچر بیرونی پیکٹ دکھاتا ہے، اور دونوں مل کر ٹنل کے اصل کام کا واضح ترین مظاہرہ ہیں۔
تین پتے، اور سائٹ کو صرف ایک نظر آتا ہے
لوگ انہیں مسلسل الجھا دیتے ہیں، اور یہ الجھن جھوٹی اخراج رپورٹیں پیدا کرتی ہے۔ یہ مختلف ہیڈروں میں مختلف فیلڈ ہیں جن کی عمریں بھی مختلف ہیں۔
| Address | Where it appears | Who can see it |
|---|---|---|
| Endpoint address | Outer header, the peer you connect to | Your access network and the path to it |
| Inner tunnel address | Inside the envelope, on the virtual interface | The peer, and anything the peer routes to |
| Exit address | Source of the packet that reaches the website | The website and its upstream |
مجازی اڈاپٹر کے برابر کا نمبر دوسری سطر ہے۔ یہ وہ پتہ نہیں جو کوئی سائٹ درج کرتی ہے، اور اسے آپ کا عوامی IP کہنا محض غلط ہے۔ سائٹ جو پتہ دیکھتی ہے وہ اخراج مقرر کرتا ہے، اور نجی نیٹ ورک کی ٹنل میں کوئی عوامی اخراج ہی نہ ہو، کیونکہ منزل انٹرنیٹ پر نہیں، تنظیم کے اندر ہے۔
سائٹ سے سائٹ ٹنل مختلف آخری مقامات کے ساتھ وہی طریقہ ہے۔ دو روٹر نیٹ ورک کے درمیان ٹریفک لپیٹتے ہیں، اور کسی بھی انفرادی آلے میں کلائنٹ نصب نہیں ہوتا۔ لفافہ اصول میں یکساں ہے، انتظامی حد نہیں۔
لفافہ کہاں کھلتا ہے، اور اس سے کیا بچتا ہے
ٹنل اپنے ساتھی پر ختم ہوتی ہے۔ اگر ایپلیکیشن کی اپنی انکرپشن مزید دور تک جائے تو وہ اس حد سے بچ جاتی ہے، جو HTTPS کے لیے معمول کی صورت ہے: براؤزر کا سیشن سائٹ پر ختم ہوتا ہے، اس لیے اخراج ایسا سائفر ٹیکسٹ بھیجتا ہے جو وہ پڑھ نہیں سکتا۔
اور کچھ بھی بطور طے شدہ نہیں بچتا۔ غیر انکرپٹ درخواست اخراج پر اتنی ہی پڑھی جا سکتی ہے جتنی کیفے کے Wi-Fi پر تھی، اور ٹنل ایسا تحفظ نہیں جوڑتی جو ایپلیکیشن کے پاس کبھی نہیں تھا۔ اسی طرح، اخراج کے فائر وال قواعد اور فارورڈنگ پالیسی طے کرتے ہیں کہ آگے کیا ہوگا؛ کامیاب مصافحہ ساتھی کنکشن کے بارے میں حقیقت ہے، سفر کے باقی حصے کے بارے میں نہیں۔
اوور ہیڈ دوسرا نظر آنے والا نتیجہ ہے۔ ہر پیکٹ اضافی ہیڈر اٹھاتا ہے، اور بیرونی نقل و حمل اپنا جوڑ سکتی ہے، اس لیے فی پیکٹ قابل استعمال پے لوڈ کم ہو جاتا ہے۔ مقررہ زیادہ سے زیادہ ترسیلی اکائی والے راستے پر، ٹنل کے پنگ گزارنے اور بڑی اپ لوڈ روکنے کی وجہ یہی ہے۔
وہ راستہ جانچیں جو ایپلیکیشن نے واقعی لیا
آخری مرحلہ عام طور پر مشین نہیں، مخصوص ایپلیکیشن کی تصدیق کرنا ہے۔ منزل حل کریں، اس پتے کا راستہ دیکھیں، اور پھر کنکشن کے کھلا رہنے کے دوران اس کا مشاہدہ کریں:
getent hosts example.com
ip route get "$(getent hosts example.com | awk '{print $1; exit}')"
ss -tnp state established '( dport = :443 )'
اگر راستہ ٹنل کا نام لے لیکن ساکٹ فہرست طبعی انٹرفیس کے ماخذ پتے والا کنکشن دکھائے، تو ایپلیکیشن کسی مخصوص چیز سے جڑی ہے، یا دوسری ٹنل طے شدہ راستے کے لیے مقابلہ کر رہی ہے۔ یہ روٹنگ کا سوال ہے، اور اس کا جواب کلائنٹ کی اسٹیٹس اسکرین کے بجائے ان تین آؤٹ پٹس سے دیا جا سکتا ہے۔
RFC 4301 سیکیورٹی آرکیٹیکچر IPsec کے لیے اس لپیٹنے کا IP-طبقہ ورژن بیان کرتا ہے، اور وہی طبقہ منطق WireGuard اور OpenVPN پر بھی لاگو ہوتا ہے۔ ایک بار جب آپ اندرونی پیکٹ اور بیرونی پیکٹ کو الگ اشیاء کے طور پر دکھا سکیں، ٹنل کا زیادہ تر رویہ پراسرار رہنا چھوڑ دیتا ہے اور ایک روٹنگ جدول بن جاتا ہے جسے آپ پڑھ سکتے ہیں۔