OpenConnect لاگ اِن غلط صفحے پر پہنچتا ہے؟ پہلے راستہ جانچیں
مکمل VPN URL ایک راستہ رکھتا ہے جو لاگ اِن کا داخلہ نقطہ چنتا ہے۔ اسے فارم گروپ سے الگ رکھیں، اور پروفائل میں ترمیم سے پہلے ری ڈائریکٹ جانچیں۔
آپ آن بورڈنگ میل سے پتہ چسپاں کرتے ہیں، کلائنٹ گیٹ وے تک پہنچتا ہے، اور جو لاگ اِن فارم ظاہر ہوتا ہے وہ عمومی پورٹل ہے، وہ پارٹنر پورٹل نہیں جسے آپریٹر نے بیان کیا تھا۔ کوئی چیز خرابی نہیں دکھاتی، اور یہی الجھن پیدا کرتا ہے: ٹنل اٹھ بھی سکتا ہے، مگر غلط داخلہ نقطے کے پیچھے۔ اس URL کا راستہ کام کر رہا تھا، اور جس نے بھی اسے بدلا اس نے وہ کام گرا دیا۔
ٹکٹ میں ایک ہی سٹرنگ کے طور پر آنے والی دو چیزیں الگ کریں: وہ پتہ جو سروس تک پہنچتا ہے، اور وہ اِن پٹ جو طے کرتا ہے کہ توثیق کہاں سے شروع ہوتی ہے۔ پہلے کو درست کر کے دوسرے کو نظرانداز کرنا ہی وہ طریقہ ہے جس سے درست ہوسٹ نام بھی غلط لاگ اِن دیتا ہے۔
فارم دیکھنے سے پہلے کلائنٹ کیا بھیجتا ہے
https://vpn.example.net/partners جیسے پتے کے ساتھ کلائنٹ کا پہلا عمل ننگے ہوسٹ کی طرف نہیں، بلکہ اسی راستے کی طرف HTTPS درخواست ہے۔ واپس آنے والی چیز عام طور پر لاگ اِن اینڈ پوائنٹ کی طرف ری ڈائریکٹ، یا فارم خود ہوتی ہے۔ صرف vpn.example.net ملنے والا کلائنٹ جو بھی ڈیفالٹ لینڈنگ صفحہ ہو وہیں سے شروع کرتا ہے، اور وہ دوسرا پورٹل، دوسری گروپ فہرست، یا بالکل مختلف پروٹوکول کی توقع کرنے والا صفحہ ہو سکتا ہے۔ فرق کسی بھی اسناد کے ٹائپ ہونے سے بہت پہلے جواب ہیڈرز میں دکھائی دیتا ہے۔
اسی لیے کام کرنے والا براؤزر ٹیب اور ناکام کلائنٹ پروفائل ایک ہی گیٹ وے کا نام لے کر بھی مختلف رہ سکتے ہیں۔ براؤزر نے راستہ اپنایا؛ پروفائل کے پاس وہ کبھی نہ تھا۔
دو اِن پٹ جو قابلِ تبادلہ لگتے ہیں اور نہیں ہیں
OpenConnect ابتدائی HTTPS راستہ --usergroup کے طور پر ظاہر کرتا ہے، اور مینول صفحہ اس راستے والے مکمل URL کو اسی درخواست کا مختلف انداز میں لکھا ہوا روپ مانتا ہے۔ --authgroup الگ اختیار ہے: یہ لاگ اِن فارم کے اندر گیٹ وے کی پیش کردہ فہرست سے ایک اندراج چنتا ہے۔ کچھ پروٹوکول اس اندراج کو گروپ کہتے ہیں، کچھ ڈومین یا گیٹ وے، اور وہیں دونوں جھنڈے الجھ جاتے ہیں۔
سروس کو قانونی طور پر دونوں کی ضرورت ہو سکتی ہے۔ راستہ آپ کو درست پورٹل تک لے جا سکتا ہے جبکہ فارم اب بھی اس کے اندر گروپوں میں سے ایک چننے کو کہتا ہے۔ پورٹل کا نام گروپ کے نام کے طور پر دینا، یا اُلٹا، ایسا لاگ اِن بناتا ہے جو قبول شدہ لگتا ہے اور پھر اجازت نہیں دیتا، کیونکہ قدر نحوی طور پر درست اور معنوی طور پر غلط تھی۔
آپریٹر سے ہر قدر اپنی الگ سطر میں مانگیں: داخلہ راستہ، فارم میں انتخاب، اور کیا دونوں ضروری ہیں۔ لیبل ایک جیسے سنائی دیتے ہیں اس لیے ایک سے دوسرے کا اندازہ نہ لگائیں۔
راستہ چھوٹا کرنے سے نتیجہ کیوں بدلتا ہے
صرف ہوسٹ اور پورٹ قبول کرنے والے کلائنٹ اکثر پھر بھی جڑ جاتے ہیں، اس لیے علامت شاذ و نادر ہی سخت ناکامی ہوتی ہے۔ اس کے بجائے آپ کو غلط لاگ اِن صفحہ، خالی گروپ فہرست، ایسا سرٹیفکیٹ نام جو آپریٹر کے شائع کردہ سے اب نہیں ملتا، یا مطلوبہ سروس تک راستے کے بغیر اٹھنے والا ٹنل ملتا ہے۔ ان میں سے ہر ایک الگ تہہ میں بیٹھتا ہے، اور ہوسٹ نام کے طور پر دستاویزی فیلڈ میں لمبی سٹرنگ چسپاں کر کے کوئی بھی درست نہیں ہوتا۔ ان میں سے دو باہر سے بھی الگ نہیں پہچانے جا سکتے، کیونکہ دونوں ایسے لاگ اِن فارم کے طور پر آتے ہیں جو بس آگے نہیں بڑھتا۔
ہوسٹ نام کو IP پتے سے بدلنا ایک الگ غلطی ہے جو اکثر اس کے ساتھ سفر کرتی ہے۔ نام پر مبنی سروس کا انتخاب اور سرٹیفکیٹ کی توثیق دونوں نام پر منحصر ہیں، اس لیے عددی پتہ راستے کی شکل کے مسئلے کو TLS خرابی میں بدل سکتا ہے۔
براؤزر پتے راستوں سے زیادہ بھی رکھتے ہیں۔ سیشن شناخت کنندہ، ری ڈائریکٹ ہدف، زبان کے سابقے اور عارضی لاگ اِن پیرامیٹر سب پتہ پٹی میں ظاہر ہوتے ہیں، اور ان میں سے کوئی بھی محفوظ کلائنٹ پروفائل میں نہیں ہونا چاہیے۔
کوئی اور چیز ترمیم کرنے سے پہلے داخلہ نقطہ کی تصدیق کریں
آپ کو دیے گئے راستے کے ہیڈر پڑھیں۔ curl -sS -o /dev/null -D - https://vpn.example.net/partners جیسی درخواست ری ڈائریکٹ کی پیروی کیے بغیر حالت کی سطر اور کوئی بھی Location ہیڈر چھاپتی ہے۔ نامزد لاگ اِن اینڈ پوائنٹ کی طرف اشارہ کرنے والا 302 تصدیق کرتا ہے کہ راستہ موجود ہے اور دکھاتا ہے کہ کہاں جاتا ہے؛ 404 کا مطلب ہے کہ آپریٹر کا پتہ پرانا ہو گیا ہے۔
پھر وہی داخلہ نقطہ منظور شدہ کلائنٹ میں دوبارہ بنائیں، مثلاً openconnect --usergroup=partners vpn.example.net، اور دیکھیں کون سا فارم ظاہر ہوتا ہے۔ اگر فارم درست ہے اور ٹنل پھر بھی ناکام ہوتا ہے، تو راستہ کبھی مسئلہ نہیں تھا اور اگلا ٹھکانہ پالیسی یا روٹنگ ہے۔
ٹکٹ میں ہوسٹ نام، پورٹ، پروٹوکول، داخلہ راستہ اور فارم میں انتخاب کو پانچ الگ فیلڈز کے طور پر لکھیں۔ یہی فہرست اگلے انجینئر کو ناقابلِ رسائی سرور، TLS انکار، مسترد شدہ انتخاب اور ضروری راستوں کے بغیر اٹھے ٹنل میں فرق کرنے دیتی ہے۔