گیٹ وے اپنا ہی ایڈمن صفحہ ہوسٹ کرتا ہے: اندرونی یا عوامی پتہ
VPN گیٹ وے پر ہی موجود سروس کو اندرونی داخلہ درکار ہے جہاں سرنگ پہنچ سکے۔ اسے نجی طور پر شائع کریں، پھر تصدیق کریں کہ عوامی سننے والا ابھی کھلا نہیں ہے۔
ایڈمن صفحہ موبائل ڈیٹا والے فون سے جواب دیتا ہے اور VPN سے منسلک لیپ ٹاپ سے وقت ختم ہو جاتا ہے۔ سرنگ میں کچھ خراب نہیں، کیونکہ درخواست کبھی اس میں داخل نہیں ہوتی۔ ہوسٹ نام گیٹ وے کے عوامی پتے پر حل ہوتا ہے، اور وہ پتہ صرف اسی سرنگ کے باہر سے قابل رسائی ہے جسے یہ ختم کرتی ہے۔ اسے درست کرنے کا مطلب سروس کو نجی داخلہ دینا ہے، بیرونی آخری سرے کو ادھر ادھر کرنا نہیں۔
صفحہ سرنگ کے بجائے باہر سے لوڈ ہوتا ہے
دو مختلف درخواستوں کا موازنہ کیا جا رہا ہے۔ موبائل ڈیٹا سے براؤزر براہ راست عوامی پتے تک پہنچتا ہے۔ سرنگ کے اندر سے وہی نام اسی عوامی پتے پر حل ہوتا ہے، اور پیکٹ کو اب سرنگ کے اپنے دور والے حصے کے پتے تک پہنچنے کے لیے سرنگ سے باہر نکلنا ہوتا ہے۔ وہی نام، وہی پتہ، دو بالکل مختلف مقامات۔
منزل کا راستہ پتہ چنتا ہے، پورٹ نہیں۔ روٹنگ جدول میں کسی کو معلوم نہیں کہ پورٹ 443 انتظام کے لیے ہے اور پورٹ 1194 نقل و حمل ہے، اس لیے دونوں کو ایک ہی منزل سمجھا جاتا ہے۔
اسی لیے صفحہ کبھی کام کرتا ہے اور کبھی نہیں، اس پر منحصر ہے کہ کلائنٹ نے کون سا نام اور کون سا نیٹ ورک استعمال کیا۔ یہ راستے کا مسئلہ ہے، تصدیق کا مسئلہ نہیں. دونوں کلائنٹ اچھی طرح تصدیق کرتے ہیں۔
بیرونی آخری سرے کو قابل رسائی رکھیں
مکمل سرنگ پروفائل کو VPN آخری سرے کے لیے استثنائی راستہ درکار ہوتا ہے، اور OpenVPN کا redirect-gateway اختیار بالکل یہی درج کرتا ہے: دور والا سرا پہلے سے موجود گیٹ وے کے ذریعے راستہ برقرار رکھتا ہے تاکہ سرنگ اپنے اندر راستہ نہ بنائے۔ وہ استثنا ہٹا دیں تو خفیہ کردہ نقل و حمل سرنگ کی پیروی کرتی ہے، جو سیشن کو ایک لوپ میں ختم کر دیتی ہے۔ اسی استثنا کی وجہ سے آخری سرے کا پتہ سرنگ کے اندر سے قابل رسائی رہتا ہے۔
نتیجہ یہ ہے کہ عوامی پتہ کلائنٹ سے قابل رسائی رہتا ہے، اسی لیے اس پتے پر براؤزر کی درخواست بھی وہی استثنا اختیار کر کے سرنگ میں داخل ہوئے بغیر باہر نکل سکتی ہے۔ استثنا اپنا کام کر رہا ہے، اور نقصان نام کر رہا ہے۔
کچھ بھی بدلنے سے پہلے انٹرفیس کی فہرست نہیں، راستے کا فیصلہ پڑھیں۔ نیچے دیے گئے کمانڈز فہرست نہیں، فیصلہ چھاپتے ہیں۔ انہیں اسی کلائنٹ سے چلائیں جو ناکام ہوا۔
ip -4 route get 203.0.113.77
ip -4 rule show
ip -4 route show table allاگر تلاش جسمانی گیٹ وے کے ذریعے آخری سرے کا راستہ دکھاتی ہے، تو رویہ درست ہے اور ایڈمن صفحہ صرف غلط راستے پر بھیجا جا رہا ہے۔ وہیں نام کا حل درستی بنتا ہے۔
سروس کو نجی نام دیں
سروس کو ایسا نام درکار ہے جو سرنگ کے اندر گیٹ وے کے پتے پر حل ہو، اور ساتھ ہی وہ سرٹیفکیٹ اور ہوسٹ نام کا مفہوم برقرار رہے جس کی ایپلیکیشن توقع کرتی ہے۔ انتظامی نام کے لیے نجی زون ریکارڈ معمول کا جواب ہے, اور یہ نقل و حمل کے نام کو اچھوتا چھوڑ دیتا ہے۔
نقل و حمل کے نام کو اندرونی پتے پر دوبارہ نہ بھیجیں، کیونکہ اگلی سرنگ کے قیام کی کوشش ایسے پتے تک پہنچنے کی ہوگی جو صرف سرنگ کے اندر موجود ہے۔ وہ غلطی ایسا VPN بناتی ہے جو بالکل ایک بار کام کرتا ہے۔
دونوں پتہ خاندانوں کو بھی جانچیں، کیونکہ پیچھے چھوڑا گیا AAAA ریکارڈ براؤزر کو ایسی جگہ بھیج سکتا ہے جہاں نجی منصوبہ کبھی نہیں پہنچا۔
dig +short admin.hq.internal
dig +short -t AAAA admin.hq.internal
curl -sS -o /dev/null -w '%{http_code} %{remote_ip}\n' https://admin.hq.internal/پالیسی کو اس جگہ کے مطابق بنائیں جہاں عمل چلتا ہے
گیٹ وے پر سننے والے مقامی عمل تک مقامی اندراج کے راستے پہنچا جاتا ہے، اس لیے اندراج کی زنجیر اور ساکٹ کی بندش طے کرتی ہے کہ درخواست قبول ہوگی یا نہیں۔ فارورڈنگ قواعد اور IP فارورڈنگ مقامی سننے والے کو جواب دینے پر مجبور نہیں کرتے۔ اندراج کی پالیسی میں سرنگ کے ذرائع کی اجازت دیں اور تصدیق کریں کہ عمل ایسے پتے سے بندھا ہے جہاں سرنگ پہنچ سکے۔
ہوسٹ پورٹ پر شائع شدہ کنٹینر الگ راستہ اختیار کرتا ہے، کیونکہ پیکٹ منزل کے مطابق ترجمہ ہو کر فارورڈ ہوتا ہے۔ وہ درخواست ہوسٹ کی فارورڈنگ پالیسی اور Docker کے اپنے قواعد سے ملتی ہے، اسی لیے کام کرنے والا مقامی سننے والا ایسے کنٹینر کے ساتھ رہ سکتا ہے جو وہی پورٹ مسترد کرتا ہے۔
دونوں صورتوں میں آغاز کی ترتیب اہم ہے، کیونکہ سرنگ کے اوپر آنے کے بعد ہی ظاہر ہونے والے پتے سے بندش بوٹ کے وقت خاموشی سے ناکام ہوتی ہے۔
نجی رسائی اور مسترد شدہ عوامی راستہ جانچیں
ایپلیکیشن کی اپنی شناخت کی جانچوں کو برقرار رکھتے ہوئے مجاز کلائنٹ سے نیا نام والا سوال کریں۔ پھر سرنگ کے باہر سے وہی سروس آزمائیں اور تصدیق کریں کہ وہ جواب نہیں دیتی۔ نجی نام سہولت ہے، پابندی نہیں، اور عوامی پتے سے اب بھی بندھا سننے والا اب بھی کھلا ہے۔ وہی آخری جانچ ہے جسے زیادہ تر جائزے چھوڑ دیتے ہیں۔
صارفین کو ملنے والا ہوسٹ نام نہیں، بندشیں اور فلٹر کی حالت پڑھیں۔ افشا ہونا ساکٹ کی خاصیت ہے، نام کی نہیں۔ وہ فرق ہر DNS تبدیلی میں برقرار رہتا ہے۔
ss -lntp | grep ':443'
nft list ruleset | grep -n 443
curl -sS -m 5 -o /dev/null -w '%{http_code}\n' https://203.0.113.77/جب اندرونی درخواست صفحہ واپس کرتی ہے اور بیرونی درخواست کا وقت ختم ہو جاتا ہے، سروس کے پاس ایک جان بوجھ کر بنایا گیا نجی راستہ ہوتا ہے اور نقل و حمل قابل رسائی رہتی ہے۔ جب بیرونی درخواست اب بھی جواب دیتی ہے، تو کسی کے سروس کو صرف-اندرونی کہنے سے پہلے سننے والے یا شائع شدہ کنٹینر اندراج کو محدود کرنا ہوگا۔