المقدمة
يصف هذا المستند كيفية تكوين البرمجة النصية ل Cisco Secure Client باستخدام ASA و FTD لجدار الحماية الآمن.
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
- SSL Cisco Secure Client Configuration من خلال ASA لجدار الحماية الآمن والدفاع الآمن عن تهديد جدار الحماية الذي تتم إدارته من قبل Cisco Secure Firewall Management Center (FMC)
- وصول ASDM
- وصول FTD SSH
- البرامج النصية من OnConnect و OnDisconnect
المكونات المستخدمة
- Secure Firewall ASA
- الدفاع ضد تهديد جدار الحماية الآمن
- مركز إدارة جدار الحماية الآمن من Cisco
- Cisco Secure Client 5.0.03072
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
معلومات أساسية
نغطي مثالين مختلفين للتكوين:
- إعداد البرامج النصية ل Secure Client باستخدام ASA لجدار الحماية الآمن المدارة من قبل ASDM.
- إعداد البرامج النصية الآمنة للعملاء باستخدام ميزة الحماية الآمنة ضد تهديدات جدار الحماية التي تتم إدارتها بواسطة مركز إدارة جدار الحماية الآمن من Cisco.
مع FTD الذي تتم إدارته بواسطة FMC هذا لا يتم دعمه رسميا بواسطة FMC لذلك سنقوم بتنفيذ حل بديل لطلب التحسين معرف تصحيح الأخطاء من Cisco
التكوين
التكوينات
إعداد البرامج النصية ل Secure Client باستخدام ASA لجدار الحماية الآمن الذي تتم إدارته من خلال مثال تكوين ASDM:
الخطوة 1. إنشاء ملف تعريف عميل آمن وتمكين البرمجة النصية في التفضيلات (الجزء 2).
محرر ملف تعريف AnyConnect XML
خيارات إضافية من ملف تخصيص xml:
- تحقق من إنهاء البرنامج النصي في الحدث التالي لتمكين العميل من إنهاء عملية تشغيل البرنامج النصي في حالة حدوث انتقال إلى حدث آخر قابل للبرمجة النصية. على سبيل المثال، ينهي العميل برنامج نصي يتم تشغيله على Connect إذا انتهت جلسة عمل VPN وإنهاء برنامج نصي يتم تشغيله على OnDisconnect إذا بدأ Cisco Secure Client جلسة عمل جديدة لشبكة VPN. على Microsoft Windows، يقوم العميل أيضا بإنهاء أي برامج نصية تم تشغيلها من خلال البرنامج النصي على On Connect أو OnDisconnect، وكافة توابع البرامج النصية الخاصة بها. في MacOS و Linux، ينهي العميل فقط ال على توصيل أو OnDisconnect نص؛ هو لا ينهي نص تابع.
- حدد تمكين وضع SBL على البرنامج النصي للاتصال (ممكن بشكل افتراضي) للسماح للعميل بتشغيل البرنامج النصي على On Connect (إن كان موجودا) إذا قام SBL بإنشاء جلسة عمل VPN.
تأكد من تعيين ملف تعريف AnyConnect لنهج المجموعة المناسب:
تعيين نهج مجموعة XML
الخطوة 2. قم بتكوين البرنامج النصي.
نظرا لأن Cisco لا تدعم البرامج النصية للأمثلة أو البرامج النصية المكتوبة من قبل العميل، فلدينا بعض الأمثلة التي يمكنك إختبارها وفقا لاحتياجاتك:
البرامج النصية ل Windows
تحذير: تأكد من إستخدام الأوامر المدعومة من قبل cmd.exe إصدار 32 بت.
1. برنامج نصي لتعيين محرك أقراص:
OnConnect.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample AnyConnect OnConnect script."
Dim strDriveLetter, strRemotePath
strDriveLetter = "REPLACE_WITH_DRIVE_LETTER:"
strRemotePath = "\\REPLACE_WITH_SERVER_NAME\REPLACE_WITH_SHARE"
Set objNetwork = CreateObject("WScript.Network")
' remove old mapping (if any)
objNetwork.RemoveNetworkDrive strDriveLetter
' add new mapping
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath
If Err.Number <> 0 Then
objShell.LogEvent 0, "Failed to map network drive." & vbCrLf & Err.Number & ": " & Err.Description
End If
WScript.Quit
OnDisconnect.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample AnyConnect OnDisconnect script."
Dim strDriveLetter
strDriveLetter = "REPLACE_WITH_DRIVE_LETTER:"
Set objNetwork = CreateObject("WScript.Network")
' remove old mapping (if any)
objNetwork.RemoveNetworkDrive strDriveLetter
WScript.Quit
2. برنامج نصي لتحديث نهج مجموعة Windows:
OnConnect.vbs أو OnDisconnect.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample AnyConnect OnConnect script."
' refreshes local and Active Directory-based Group Policy settings, including security settings
returnCode = objShell.Run("gpupdate.exe /force", 0, True)
If returnCode <> 0 Then
objShell.LogEvent 0, "Failed to update Group Policy settings." & vbCrLf & Err.Number & ": " & Err.Description
End If
objShell.LogEvent 0, "User's Group Policy settings have been updated."
WScript.Quit
3. بدء تشغيل برامج نصية متعددة:
Script1.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample script 1."
WScript.Quit
Script2.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample script 2."
WScript.Quit 5
Script3.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample script 3."
WScript.Quit
OnConnect.vbs أو OnDisconnect.vbs
ON ERROR RESUME NEXT
Err.Clear
Set objShell = CreateObject("WScript.Shell")
objShell.LogEvent 0, "Sample AnyConnect OnConnect script."
' launch each script after the previous has completed
returnCode = objShell.Run("wscript.exe Script1.vbs", 0, True)
objShell.LogEvent 0, "Script1.vbs returned = " & returnCode
returnCode = objShell.Run("wscript.exe Script2.vbs", 0, True)
objShell.LogEvent 0, "Script2.vbs returned = " & returnCode
returnCode = objShell.Run("wscript.exe Script3.vbs", 0, True)
objShell.LogEvent 0, "Script3.vbs returned = " & returnCode
WScript.Quit
ملاحظة: يتم توفير هذه العينات كما هو دون أي ضمان أو دعم ضمني. تم تصميمه لمساعدتك في إستخدام ميزة البرمجة النصية من Cisco AnyConnect. من المفترض أنك تشير إلى هذه العينة كمرجع فقط.
لينوكس سكريبت
1. بدء تشغيل برامج نصية متعددة:
Script1.sh
#!/bin/sh
logger "Sample script 1."
Script2.sh
#!/bin/sh
logger "Sample script 2."
Script3.sh
#!/bin/sh
logger "Sample script 3."
OnConnect.sh أو OnDisconnect.sh
#!/bin/sh
logger "Sample AnyConnect OnConnect script."
# launch each script after the previous has completed
./Script1.sh
logger "Script1.sh returned = $?"
./Script2.sh
logger "Script2.sh returned = $?"
./Script3.sh
logger "Script3.sh returned = $?"
ملاحظة: يتم توفير هذه العينات كما هو دون أي ضمان أو دعم ضمني. تم تصميمه لمساعدتك في إستخدام ميزة البرمجة النصية من Cisco AnyConnect. من المفترض أنك تشير إلى هذه العينة كمرجع فقط.
نصوص MacOS التنفيذية
1. بدء تشغيل AppleScript:
Script1.scpt
#!/bin/sh
say "This is a Sample AppleScript"
OnConnect.sh
#!/bin/sh
logger "Sample AnyConnect OnConnect script."
# launch the AppleScript script
/usr/bin/osascript Script1.scpt
2. بدء تشغيل برامج نصية متعددة
Script1.sh
#!/bin/sh
logger "Sample script 1."
Script2.sh
#!/bin/sh
logger "Sample script 2."
Script3.sh
#!/bin/sh
logger "Sample script 3."
OnConnect.sh
#!/bin/sh
logger "Sample AnyConnect OnConnect script."
# launch each script after the previous has completed
./Script1.sh
logger "Script1.sh returned = $?"
./Script2.sh
logger "Script2.sh returned = $?"
./Script3.sh
logger "Script3.sh returned = $?"
ملاحظة: يتم توفير هذه العينات كما هو دون أي ضمان أو دعم ضمني. تم تصميمه لمساعدتك في إستخدام ميزة البرمجة النصية من Cisco AnyConnect. من المفترض أنك تشير إلى هذه العينة كمرجع فقط.
الخطوة الثالثة. إدراج البرنامج النصي من خلال ASDM
إعدادات البرمجة النصية ل AnyConnect ASDM
إعداد برامج Secure Client النصية باستخدام FTD المدارة من قبل FMC
لا تدعم FMC الإعداد الحالي للبرامج النصية ل Secure Client، هناك طلب تحسين معرف تصحيح الأخطاء من Cisco CSCvt58044 لدعمه. استنادا إلى ذلك، لدينا حل بديل للسماح بتكوين البرامج النصية ونشرها.
الخطوة 1. إنشاء ملف تعريف عميل آمن وتمكين البرمجة النصية في التفضيلات (الجزء 2) باستخدام محرر ملف تعريف VPN.
أيقونة محرر ملف تعريف VPN
محرر ملف تعريف Secure Client 5
الخطوة 2. إنشاء النص التنفيذي (نفس أمثلة النص التنفيذي من أعلى)
الخطوة الثالثة. لاحظ حجم الملف بالبايت
افتح خصائص البرنامج النصي بالنقر بزر الماوس الأيمن عليه، في علامة التبويب "عام" تحقق من الحجم واكتب ما تريد.
خصائص البرنامج النصي
الخطوة 4. إدراج البرنامج النصي:
خيار 1. نقل TFTP/FTP:
جهاز SSH إلى FTD وأدخل واجهة سطر الأوامر لدعم النظام
انسخ البرنامج النصي من خادم TFTP/FTP إلى الذاكرة المؤقتة (flash):
TFTP:
>system support diagnostic-cli
FTD#copy tftp:/<serverip>/<filename> flash:/<filename>
FTP:
>system support diagnostic-cli
FTD#copy ftp:<username>:<password>@<serverip>/<filename> flash:/<filename>
إستيراد WebVPN AnyConnect-customization:
يجب أن يكون اسم الملف مسبقا مع scripts_OnConnect_
FTD#import webvpn AnyConnect-customization type binary platform win name scripts_OnConnect_login.vbs flash:/scripts_OnConnect_login.vbs
الخيار 2. انسخ النص التنفيذي مباشرة في CLI:
جهاز SSH إلى FTD وأدخل واجهة سطر الأوامر لدعم النظام
دخلت هذا أمر:
يجب أن يكون اسم الملف مسبقا مع scripts_OnConnect_
FTD#import webvpn AnyConnect-customization type binary platform win name scripts_OnConnect_login.vbs stdin 943
ملاحظات: يشير المقياس إلى الحجم بالبايت للبرنامج النصي من الخطوة 2.
بعد إدخال أمر الإدراج، تحتاج إلى لصق النص البرمجي الفعلي على واجهة سطر الأوامر وعلى الرغم من أن هذا لا يظهر الإخراج الذي تحتاج إلى القيام به فقط أدخل بضع مرات حتى تعود إلى واجهة سطر الأوامر.
ملاحظة: قد يستغرق لصق النص التنفيذي في واجهة سطر الأوامر بعض الوقت حسب حجم النص التنفيذي.
يمكنك التحقق من أن النص التنفيذي تم إدراجه بشكل صحيح بتشغيل الأمر:
FTD#export webvpn AnyConnect-customization type binary platform win name <scriptname>.vbs flash:/<scriptname>.vbs
FTD#more flash:/<scriptname>.vbs
إذا احتجت أن يزيل النص التنفيذي يمكنك تشغيل الأمر التالي من CLI:
FTD#revert webvpn AnyConnect-customization type binary platform win name <scriptname>
الخطوة 5. تحميل ملف تعريف Secure Client VPN إلى FMC وتطبيقه على نهج المجموعة:
انتقل إلى Devices> Remote Access (الوصول عن بعد) حدد ملف تعريف الاتصال و Edit (تحرير)> Advanced> Group Policy (نهج المجموعة)> Edit Group Policy (سياسة المجموعة)> Secure Client> Profile> (ملف تعريف العميل الآمن)> يمكنك تحديد ملف التعريف إذا كان قد تم تحميله بالفعل إلى وحدة التحكم في الوصول عن بعد (FMC) أو يمكنك النقر فوق خيار الجمع وتحميل ملف التعريف من هناك.
تكوين نهج مجموعة FMC
التحقق من الصحة
بعد التوصيل عبر الشبكة الخاصة الظاهرية (VPN)، يمكنك تأكيد أن البرنامج النصي قد تم نشره بنجاح وذلك بفحص هذا المسار بناء على نظام التشغيل:
مايكروسوفت ويندوز |
٪AllUserProfile٪\Cisco\Cisco Secure Client\VPN\Script |
لينكس (في Linux، قم بتعيين أذونات التنفيذ إلى الملف للمستخدم والمجموعة وغيرهما.) |
/opt/cisco/secureclient/vpn/script |
ماك أو إس |
/opt/cisco/secureclient/vpn/script |
استكشاف الأخطاء وإصلاحها
1. تأكد من أن البرنامج النصي يحتوي على اسم بادئة OnConnect
أو OnDisconnect
، إذا كنت تستخدم الإصدار 6.3 من ASDM أو إصدار أحدث، فإن ASA لجدار الحماية الآمن يضيف برامج البادئة_ والبادئة OnConnect أو OnDisconnect إلى اسم الملف لتعريف الملف كبرنامج نصي. عند اتصال العميل، يقوم جهاز الأمان بتنزيل البرنامج النصي إلى الدليل الهدف المناسب على الكمبيوتر البعيد، ويزيل بادئة Scripts_ ويترك البادئة OnConnect أو OnDisconnect. على سبيل المثال، إذا قمت بإدراج الأمر script myscript.bat، فإن النص التنفيذي يظهر على جهاز التأمين على هيئة scripts_OnConnect_myscript.bat. في الكمبيوتر البعيد، يظهر النص التنفيذي على هيئة OnConnect_myscript.bat.
2. حاول تشغيل البرنامج النصي من سطر الأوامر. يتعذر على العميل تشغيل البرنامج النصي إذا تعذر تشغيله من سطر الأوامر. إذا فشل البرنامج النصي في التشغيل على سطر الأوامر، تأكد من أن التطبيق الذي يقوم بتشغيل البرنامج النصي مثبت، وحاول إعادة كتابة البرنامج النصي على نظام التشغيل هذا.
3. تحقق من وجود برنامج نصي واحد فقط على OnConnect وبرنامج نصي واحد فقط على OnDisconnect في دليل البرامج النصية على نقطة نهاية VPN. إذا قام العميل بتنزيل برنامج نصي من OnConnect من ASA لجدار الحماية الآمن، فعندئذ يقوم بتنزيل برنامج نصي ثان من OnConnect بلاحقة اسم ملف مختلفة ل ASA لجدار الحماية الآمن آخر، عندئذ لا يمكن للعميل تشغيل البرنامج النصي الذي تريد تشغيله. إذا كان مسار البرنامج النصي يحتوي على أكثر من برنامج نصي OnConnect أو OnDisconnect، وكنت تستخدم ASA لجدار الحماية الآمن لنشر البرامج النصية، فقم بإزالة محتويات دليل البرامج النصية وأعد إنشاء جلسة عمل VPN. إذا كان مسار البرنامج النصي يحتوي على أكثر من برنامج نصي OnConnect أو OnDisconnect، وأنت تستخدم طريقة النشر اليدوي، فقم بإزالة البرامج النصية غير المرغوب فيها وأعد إنشاء جلسة عمل VPN.
4. إذا كان نظام التشغيل هو Linux أو MacOS، فتأكد من تعيين أذونات ملف البرنامج النصي على التنفيذ، وفي حالة عدم تعيين الإذن على التنفيذ، يمكنك تشغيل هذا الأمر لجعله قابلا للتنفيذ:
$ cd YourScriptDirectory
$ sudo chmod +755 <scriptname>
5. تأكد من تمكين البرمجة النصية لملف تعريف العميل.
6. بناء على كيفية كتابة البرنامج النصي، يجب أن يكون لديك خيار لتسجيل تقدم البرنامج النصي، على سبيل المثال، باستخدام .vbs يمكنك إستخدام objShell.LogEvent ثم يمكنك الانتقال إلى عارض الأحداث في Windows والتحقق مما إذا كان هذا يعمل أو فشل:
إستخدام مثال البرنامج النصي Script لتحديث نهج مجموعة Windows
سجلات عارض الأحداث