Linux اور macOS پر AnyConnect لاگ ان کو اسکرپٹ کیسے کریں
vpn بائنری پرامپٹ کی ترتیب میں معیاری اندراج سے جواب پڑھتی ہے۔ ترتیب بنائیں، ایک بار اسے اقتباس میں رکھیں، پروسیس فہرست سے باہر رکھیں اور پہلے ایک وسیلہ جانچیں۔
اسکرپٹ صفر پر ختم ہوتی ہے، سرنگ ظاہر ہوتی ہے، اور اگلا اجرا پاس ورڈ مانگنے سے پہلے ہی مسترد ہو جاتا ہے۔ یا وہی کمانڈ ٹرمینل میں کام کرتی ہے اور مقررہ کام سے «واقعہ نہیں ملا» کی ایسی غلطی کے ساتھ ناکام ہوتی ہے جو کوئی کارآمد چیز نہیں نام دیتی۔ دونوں نیٹ ورک کی خرابی نہیں، AnyConnect کلائنٹ کی معیاری اندراج گفتگو بگڑنا ہے۔ لاگ ان کو لکھے ہوئے سوال و جواب کی طرح دیکھیں تو ناکامیاں متوقع اور چھوٹی ہو جاتی ہیں۔
وہی کمانڈ اسکرپٹ کے اندر کیوں ناکام ہوتی ہے
کلائنٹ اپنے جوابات معیاری اندراج سے پڑھتا ہے، ہر پرامپٹ کے لیے ایک سطر، اسی ترتیب میں جس میں گیٹ وے انہیں مانگتا ہے۔ پرامپٹ کی تعداد بدلنے والی کوئی بھی چیز، جیسے نیا بینر، گروپ منتخب کنندہ یا دوسرے عامل کا چیلنج، ہر بعد کے جواب کو ایک سطر سرکا دیتی ہے۔ پھر کلائنٹ وہاں صارف نام پڑھتا ہے جہاں اسے پاس ورڈ کی توقع تھی اور ایسی ناکامی کی اطلاع دیتا ہے جو دونوں میں سے کسی کی طرف اشارہ نہیں کرتی۔
فجائیہ نشان والا پاس ورڈ ایک خاموش دوسری ناکامی کا اضافہ کرتا ہے۔ دوہرے اقتباسات کے اندر شیل کلائنٹ کے کچھ دیکھنے سے بہت پہلے اسے پھیلا دیتا ہے۔
پے لوڈ کو واحد اقتباسات میں رکھیں اور حرف سالم گزرتا ہے۔ یہی پورا اصلاح ہے، اور یہ ان رپورٹوں کی پوری قسم کی وضاحت کرتا ہے جہاں وہی اسناد ٹائپ کرنے پر کام کرتی ہیں اور محفوظ کرنے پر ناکام ہوتی ہیں۔ گیٹ وے جانچنے سے پہلے دیکھیں شیل نے کیا کیا: درست بائٹ دکھانے والے لفافے سے پے لوڈ چھاپیں اور سطریں گنیں۔ ان میں سے بیشتر تحقیقات وہیں ختم ہو جاتی ہیں۔
جوابات اسی ترتیب میں لکھیں جس میں کلائنٹ مانگتا ہے
کلائنٹ کو ایک بار متعامل طور پر چلائیں اور ہر پرامپٹ ترتیب سے لکھ لیں۔ گروپ منتخب کنندہ صرف اس وقت دکھائی دیتا ہے جب گیٹ وے کئی پروفائل شائع کرے، اور بینر پرامپٹ صرف اس وقت جب ایک ترتیب دیا گیا ہو۔ جواب کی فائل اس گیٹ وے سے مطابقت رکھنی چاہیے جس کی طرف آپ واقعی متوجہ ہیں، دستاویزات والے سے نہیں۔
پھر فائل اسی درست ترتیب سے بنائیں، ہر سطر میں ایک جواب۔ گروپ اشاریہ وہ عدد ہے جو کلائنٹ فہرست کرتا ہے، دستاویز میں پروفائل کا مقام نہیں۔ بینر صرف اس وقت قبول کریں جب آپ کا گیٹ وے ایک بھیجے، اور اس گیٹ وے کے معلوم ہر اضافی سوال کے لیے ایک سطر شامل کریں۔ کلائنٹ کو غیر متعامل پرچم کے ساتھ شروع کریں تاکہ وہ ٹرمینل کے انتظار کے بجائے فائل استعمال کرے۔
connect vpn.lab.example
0
username
password
y
exit/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txtجب آپ ڈسک پر فائل نہ رکھنا چاہیں تو وہی ترتیب پائپ کے ذریعے بھی آ سکتی ہے۔ اقتباس کے قواعد اب بھی طے کرتے ہیں کہ یہ بچے گی یا نہیں۔
اسناد کو پروسیس فہرست سے باہر رکھیں
کمانڈ لائن پر دلیل عمل کے پورے دورانیے میں ہر مقامی صارف کے پڑھنے کے قابل ہوتی ہے، اس لیے پاس ورڈ فائل یا پائپ میں آتا ہے اور کبھی دلائل کی فہرست میں نہیں۔ اس فائل کو صرف اسی اکاؤنٹ کے پڑھنے کے قابل بنائیں جو اسکرپٹ چلاتا ہے، اور کام ختم ہونے پر اسے مٹا دیں۔ macOS پر بائنری عام طور پر Linux جیسے ہی راستے پر ہوتی ہے، لیکن اندازہ لگانے کے بجائے نصب شدہ مقام کی تصدیق کریں۔ دونوں راستے جانچنے والا لفافہ واقعہ رپورٹ سے چھوٹا ہے۔
printf 'username\npassword\ny\n' | /opt/cisco/anyconnect/bin/vpn -s connect vpn.lab.exampleاسکرپٹ کو بے حد بار بار کوشش کرنے بھی نہ دیں۔ بدلا ہوا بینر یا رات بھر میں میعاد ختم شدہ پاس ورڈ مستقل جواب کی فائل کو دوبارہ کوشش کے چکر میں بدل دیتا ہے، اور وہی چکر اکاؤنٹ کو مقفل کرتا ہے۔
ایک بار ناکام ہوں، کلائنٹ کا اپنا غلطی متن چھاپیں اور باہر نکلیں۔ مقررہ کام کو کسی بھی دوسرے بے نگرانی کام کی طرح شناخت اور اسناد کی دستیابی کا وہی جائزہ درکار ہے، کیونکہ خاموشی سے میعاد ختم ہونے والی اسناد صبح تین بجے کی رکاوٹ سے الگ نہیں پہچانی جا سکتیں۔
خروجی کوڈ پر بھروسا کرنے سے پہلے نشست کی تصدیق کریں
منسلک حالت ثابت کرتی ہے کہ سرنگ موجود ہے اور اس سے زیادہ کچھ نہیں۔ اسکرپٹ کے اصل کام شروع کرنے سے پہلے ایک ایسا وسیلہ جانچیں جو اس کے ذریعے قابل رسائی ہونا ضروری ہے، اور وہاں کی ناکامی کو ناکام لاگ ان سے مختلف خرابی مانیں۔ ورنہ آپ ایک بالکل اچھا رابطہ دوبارہ جانچیں گے جو صرف اپنی منزل تک نہیں پہنچ سکتا۔
منقطع ہونے سے پہلے اور بعد میں کلائنٹ سے اس کی حالت پوچھیں، کیونکہ پرانی نشست اگلے رابطے کو مسترد کر سکتی ہے جبکہ آپ کی اسکرپٹ کامیابی کی اطلاع دیتی ہے۔
/opt/cisco/anyconnect/bin/vpn state
/opt/cisco/anyconnect/bin/vpn disconnectخروجی کوڈ کے ساتھ حالت کا اخراج درج کریں، کیونکہ صرف کوڈ مسترد شدہ لاگ ان کو کبھی نہ بند ہونے والی نشست سے الگ نہیں کر سکتا۔ جب گیٹ وے دوسرا عامل یا متعامل منظوری مانگے تو اس مرحلے کو اسکرپٹ کرنا چھوڑ دیں اور اس کے بجائے کلائنٹ کی معاونت کردہ طریقہ کار استعمال کریں۔ مستقل جواب کی فائل آپ کے قابو کی اسناد کے لیے سہولت ہے، آپ کے قابو سے باہر تصدیق کے مرحلے سے بچنے کا راستہ نہیں۔ دائرہ اتنا تنگ رکھیں اور یہ مختصر اسکرپٹ ہی رہتی ہے۔
کب مستقل جواب کی فائل غلط اوزار ہے
دوسرا عامل یا منظوری کا پرامپٹ اس نمونے کو مکمل طور پر ہرا دیتے ہیں، اور یہ اسکرپٹ کی پہیلی نہیں بلکہ ڈیزائن کی حد ہے۔ اس مرحلے کے لیے کلائنٹ جو بھی طریقہ معاونت کرتا ہے وہ استعمال کریں پہلے سے جواب کا اندازہ لگانے کے بجائے۔ مستقل فائل صرف ان اسناد کے لیے کام کرتی ہے جو اجرا کے درمیان یکساں رہتی ہیں۔
اسناد کے دو پرانے انداز بھی AnyConnect سے خلط ہو جاتے ہیں۔ vpnc پروفائل دوسرا پروٹوکول بولتی ہے، اور وہ گروپ کا نام IPSec شناخت کنندہ کے طور پر چاہتی ہے، پھر مشترکہ گروپ راز، پھر آپ کے اپنے اکاؤنٹ کی تفصیلات۔
چونکہ پروٹوکول مختلف ہیں، vpnc ایسے گیٹ وے تک نہیں پہنچ سکتی جو صرف AnyConnect پروفائل شائع کرتا ہے، اور اس خدمت کے لیے عام کھلا متبادل anyconnect پروٹوکول منتخب کیے ہوئے openconnect ہے۔ pcf فائل پرانے Cisco کلائنٹ کی ہے، اور اگرچہ اس کے میزبان، گروپ کا نام اور گروپ پاس ورڈ اب بھی Cisco IPsec بولنے والے کلائنٹ میں دوبارہ درج کیے جا سکتے ہیں، فائل کلائنٹ کے درمیان منتقل نہیں ہوتی۔ غیر معمولی پورٹ یا غیر معیاری سرنگ طریقہ عام طور پر اس منتقلی میں گم ہو جاتا ہے۔ اوزار چننے سے پہلے طے کریں کہ گیٹ وے کون سا پروٹوکول پیش کرتا ہے۔