vpncli -s مقابل الواجهة الرسومية: تسجيل الدخول إلى Cisco Secure Client
يقرأ vpncli -s ملف إجابات مُعدًّا مسبقًا، بينما تقرأ الواجهة الرسومية إنسانًا. قارن متى يستحق السكربت عناءه، وما الذي يحتاجه الملف، وكيف تثبت ذلك.
يمنحك Cisco Secure Client طريقتين للإجابة عن مطالبات تسجيل الدخول نفسها: شخص يكتب داخل vpnui.exe، أو سكربت يغذّي الأجوبة إلى vpncli.exe عبر الإدخال القياسي باستخدام -s. الطريقة الثانية تجعل الاتصالات المجدولة ممكنة دون كشط شاشة الواجهة الرسومية، وهي أيضًا تحوّل تسجيل الدخول إلى ملف يجب حمايته كبيانات اعتماد. أي الطريقتين تريد يعتمد على ما إذا كانت هناك آلة يجلس أمامها إنسان، وعلى عدد مرات تدوير كلمة المرور. لا يغيّر أي من الخيارين ما تطلبه البوابة، بل يغيّر من يجيب فقط.
ينتهي المساران إلى النفق نفسه، لذا فالمقارنة تتعلق بالتشغيل لا بالبروتوكول.
طريقتان للإجابة عن المطالبات نفسها
مسار الواجهة الرسومية تفاعلي بحكم التصميم: يسأل العميل، ويجيب شخص، وتبقى الجلسة ما دام ذلك الشخص تاركًا إياها. وهو الخيار الصحيح على حاسوب محمول يستخدمه إنسان، لأن المطالبات تتكيف مع طريقة مصادقة البوابة، ولا يضطر أحد إلى حفظ كلمة مرور نصية على القرص.
مسار السكربت مناسب لكشك أو جهاز مختبر أو مهمة مجدولة لا يوجد فيها من يكتب. والمقايضة صريحة: تقبل ملف بيانات اعتماد على القرص مقابل اتصال من دون إشراف. وإذا كانت البوابة تقدم مصادقة الشهادات أو SAML، فعادةً لا تستحق تلك المقايضة، لأن الملف موجود فقط للإجابة عن مطالبات كانت طريقة أقوى ستتجنبها.
لا تخلط الطريقتين على جهاز واحد في الوقت نفسه. فأداة سطر الأوامر والعميل الرسومي يتنافسان على حالة الجلسة نفسها، وهذه هي مشكلة القسم التالي.
ما يجب أن يحتويه ملف الإجابات
يطلب العميل بالترتيب — البوابة، وأحيانًا اختيار مجموعة، واسم المستخدم، وكلمة المرور، وأي إقرار باللافتة. والملف الذي يجيب عنها جميعًا يبدو هكذا، مع استبدال القيم الحقيقية:
connect vpn.example.com
MyGroup
alice
correct-horse-battery
yالطريقة الموثوقة لبناء ذلك الملف هي الاتصال مرة واحدة يدويًا، وتدوين كل سطر تكتبه وكل ضغطة Enter تضغطها، ثم إعادة إنتاج ذلك التسلسل بالضبط. قد تحتاج عمليات النشر التي تخزن المجموعة واسم المستخدم في الملف الشخصي إلى أسطر فارغة حيث لا تظهر تلك المطالبات، ولا يزال السطر الأخير بحاجة إلى سطر جديد خاص به. والملف الذي ينقصه سطر واحد عادةً ما يتعلّق عند المطالبة الأخيرة بدل أن يفشل بخطأ واضح، ولهذا يُلام على الشبكة. قارن الملف بنصك المدوّن مرتين، مرة للترتيب ومرة للأسطر الفارغة.
أبقِ الملف خارج أي مجلد متزامن، ولا يقرأه إلا الحساب الذي يشغّل المهمة. تلك الكلمة نص صريح، فالملف بيانات اعتماد: لا مستودع، ولا قرص مشترك، ولا مرفق في تذكرة. ولن يحذرك العميل من أي شيء من هذا.
لماذا يجب أن تخرج الواجهة الرسومية أولًا
ابدأ السكربت بإنهاء عملية الواجهة الرسومية، ثم شغّل سطر الأوامر من مجلد تثبيته الخاص، لأن دليل العمل وإصدار العميل كلاهما مهم. وغلاف توضيحي:
@echo off
taskkill /IM vpnui.exe /F >nul 2>&1
cd /d "%PROGRAMFILES(x86)%\Cisco\Cisco Secure Client"
vpncli.exe -s < C:\secure\login.txtرموز الخروج ليست إشارة نجاح موثوقة هنا. يطبع العميل تقدمه ويبقي النفق في عملية منفصلة، لذا اقرأ الخرج بحثًا عن سطر حالة الاتصال، ولا تبدأ العمل الذي يعتمد على الشبكة الخاصة إلا بعد ذلك.
إذا تجاوزت إنهاء الواجهة الرسومية، فقد يبدو السكربت وكأنه يعمل بينما تبقى الجلسة القائمة على الحالة التي تركها المستخدم. ويبدو ذلك العطل متقطعًا، وهو بالضبط نوع الأخطاء التي تصمد أمام أسبوع من التخمين.
أكّد الجلسة ولا تفترضها
بعد أن يعود السكربت، افحص شيئًا لا يوجد إلا داخل النفق — مضيفًا داخليًا، أو لاحقة DNS لا يجيب عنها إلا محلل الشركة. وافحص أيضًا سطر حالة الاتصال في خرج العميل، واعتبر أي شيء آخر فشلًا لا نجاحًا بطيئًا. وقد يؤدي إعادة تشغيل الملف وجلسة قائمة بالفعل إلى ترك العميل نصف مهيأ، لذا إما افصل أولًا أو تجاوز تسجيل الدخول حين تكون الجلسة موجودة.
ثم قرر من يتولى إعادة الاتصال. الحلقة التي تفحص عنوانًا داخليًا وتعيد تسجيل الدخول قد تبقي كشكًا متصلًا لأشهر، وقد تقفل حسابًا أيضًا في أول مرة تُدوَّر فيها كلمة المرور. حدّ عدد المحاولات، وانبّه عند تجاوزها، ودع فريق الهوية يدوّر الملف بدل ترك كلمة مرور قديمة تعيد المحاولة حتى الإقفال.
العميل الأقدم vpnclient.exe ليس الأداة نفسها
تظهر الأتمتة نفسها تحت اسم أقدم، والاثنان غير قابلين للتبادل. استخدم عميل Cisco IPsec المتقاعد vpnclient.exe مع وسائط مضمنة مثل فعل connect، واسم ملف شخصي، ومستخدم، وكلمة مرور في سطر أوامر واحد؛ بينما يتوقع vpncli.exe تسلسل مطالبات على الإدخال القياسي مع -s. ولذلك فإن نسخ سكربت منتدى قديم إلى جهاز حالي ينتج أمرًا يعمل، ولا يفعل شيئًا ظاهرًا، ويُلام عليه في البوابة.
قبل تعديل أي وسائط، تحقق من أي عميل مثبت وأي عميل يستدعيه السكربت فعليًا. والفرق في الاسم صغير بما يكفي لتفوته في مهمة مجدولة، وهو أول ما يجب التحقق منه حين يتوقف سكربت موروث عن العمل بعد ترقية.