تسعى مجموعة الوثائق لهذا المنتج جاهدة لاستخدام لغة خالية من التحيز. لأغراض مجموعة الوثائق هذه، يتم تعريف "خالية من التحيز" على أنها لغة لا تعني التمييز على أساس العمر، والإعاقة، والجنس، والهوية العرقية، والهوية الإثنية، والتوجه الجنسي، والحالة الاجتماعية والاقتصادية، والتمييز متعدد الجوانب. قد تكون الاستثناءات موجودة في الوثائق بسبب اللغة التي يتم تشفيرها بشكل ثابت في واجهات المستخدم الخاصة ببرنامج المنتج، أو اللغة المستخدمة بناءً على وثائق RFP، أو اللغة التي يستخدمها منتج الجهة الخارجية المُشار إليه. تعرّف على المزيد حول كيفية استخدام Cisco للغة الشاملة.
ترجمت Cisco هذا المستند باستخدام مجموعة من التقنيات الآلية والبشرية لتقديم محتوى دعم للمستخدمين في جميع أنحاء العالم بلغتهم الخاصة. يُرجى ملاحظة أن أفضل ترجمة آلية لن تكون دقيقة كما هو الحال مع الترجمة الاحترافية التي يقدمها مترجم محترف. تخلي Cisco Systems مسئوليتها عن دقة هذه الترجمات وتُوصي بالرجوع دائمًا إلى المستند الإنجليزي الأصلي (الرابط متوفر).
يصف هذا وثيقة العملية من يشكل MacOS خدمة شرط في cisco ISE.
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
ملاحظة: يغطي هذا وثيقة التشكيل ل MacOS خدمة شرط. تكوين الوضع الأولي غير مغطى في هذا المستند.
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
يفيد شرط خدمة MacOS عندما يكون عليك إستخدام حالة للتحقق من تحميل خدمة في جهاز MacOS، ويسمح لك أيضا بالتحقق مما إذا كانت تعمل أو لا تعمل. يمكن أن يتحقق شرط خدمة MacOS من نوعين مختلفين للخدمة: الأجهزة الخادمة والوكلاء.
البرنامج الخفي هو برنامج يتم تشغيله في الخلفية كجزء من النظام الشامل (أي أنه غير مرتبط بمستخدم معين). لا يمكن للمساعد عرض أي واجهة مستخدم رسومية؛ وبشكل أكثر تحديدا، لا يسمح له بالاتصال بخادم النافذة. خادم الويب هو المثال المثالي للخوادم.
العامل هو عملية يتم تشغيلها في الخلفية نيابة عن مستخدم معين. الوكيل مفيد لأنه يمكن أن تفعل أشياء لا يمكن للخوادم المساعدة، مثل الوصول بشكل موثوق به إلى الدليل الرئيسي للمستخدم أو الاتصال بخادم النافذة. يعد برنامج مراقبة التقويم مثالا جيدا للوكيل.
في الرسم التخطيطي التالي يمكنك رؤية كيفية تحميل كل جهاز استنادا إلى بدء تشغيل الجهاز وتسجيل دخول المستخدم:
يمكن العثور على المزيد من المعلومات حول البرامج الخداعية والوكلاء هنا في وثائق Apple
تتوفر الأدوات والوكلاء على جهاز MacOS الخاص بك في المواقع التالية:
الموقع |
الوصف |
~/المكتبة/وكلاء الإطلاق |
العملاء لكل مستخدم الذين يوفرهم المستخدم. |
/Library/LaunchAgents |
وكلاء لكل مستخدم يوفرهم المسؤول. |
/Library/LaunchDaemons |
التعليمات على مستوى النظام التي يوفرها المسؤول. |
/System/Library/LaunchAgents |
عوامل OS X لكل مستخدم |
/System/Library/LaunchDaemons |
أنظمة التشغيل OS X عبر النظام |
يمكنك التحقق من قائمة كل فئة من وحدة MacOS الطرفية باستخدام الأوامر التالية:
LS -ltr ~/Library/LaunchAgents
LS -ltr /Library/LaunchAgents
ls -ltr /Library/LaunchDaemons
LS -ltr /System/Library/LaunchAgents
LS -ltr /System/Library/LaunchDaemons
يمكن أن تظهر لك المواقع السابقة جميع الأجهزة والوكلاء المتوفرة على جهاز MacOS، على الرغم من أنها ليست جميعها محملة أو قيد التشغيل.
يمكن إجراء التكوين لشرط خدمة MacOS باستخدام الخطوات التالية:
1. حدد اسم الخدمة المراد فحصه.
2. (إختياري) تحقق من تفاصيل الخدمة لتحديد ما إذا كان سيتم إستخدام أحد الوكلاء أو اسم العميل.
3. حدد مشغل الخدمة المراد تقييمه.
4. تكوين المتطلب ونهج الوضع لمثل هذا الشرط.
ملاحظة: تتطلب حالة الخدمة امتيازا مرتفعا للعمل، وبالتالي، فهي عبارة عن ضرورة أن يكون ISE PSN موثوقا به من قبل Cisco Secure Client (المعروف سابقا باسم AnyConnect) - دليل المرجع
يمكن ل ISE Posture Compliance Module التحقق من الخدمات التي تم تحميلها وتشغيلها وتحميلها وتشغيلها برمز الخروج.
للتحقق من الخدمات التي يتم تحميلها، أستخدم الأمر sudo launchctl dumpstate.
للتحقق من الخدمات التي يتم تحميلها والتي تحتوي على رمز خروج، أستخدم الأمر sudo launchctl list.
يمكن أن تظهر الأوامر السابقة الكثير من المعلومات، بدلا من ذلك، أستخدم هذه الأوامر لعرض اسم الخدمة الفعلي فقط:
للتحقق فقط من أسماء الخدمات التي تم تحميلها، أستخدم هذا الأمر:
Sudo Grep -B 10 -A 10 -E "^\s*state = " <<<"$(Launchctl dumpstate)" | GREP -aiE "\/.*= {" | SED 's|.*/|؛s| = {$||'
للتحقق فقط من أسماء الخدمات التي تم تحميلها والتي تحتوي على رمز خروج أستخدم هذا الأمر:
قائمة غسيل سودو | AWK '{if (NR>1) قم بطباعة $3}'
تظهر هذه الأوامر الكثير من المعلومات، لذلك في نهاية كل أمر يوصى باستخدام مرشح GREP آخر للعثور على الخدمة التي تبحث عنها.
على سبيل المثال، إذا كنت تبحث عن خدمة خاصة بالمورد، فيمكنك إستخدام كلمة أساسية كعامل تصفية في AND.
في حالة خدمات Cisco، ستكون الأوامر كالتالي:
Sudo Grep -B 10 -A 10 -E "^\s*state = " <<<"$(Launchctl dumpstate)" | GREP -aiE "\/.*= {" | SED 's|.*/|؛s| = {$||' | GREP -i من Cisco
قائمة غسيل سودو | AWK '{if (NR>1) قم بطباعة $3}' | GREP -i من Cisco
في الجزء الثاني من تكوين هذا الشرط، تحتاج إلى التحقق مما إذا كانت الخدمة من نوع البرنامج الخدمي أو نوع الوكيل.
تلميح: هذه الخطوة إختيارية، نظرا لأن ISE تتيح لك تحديد الخيار ل Daemon أو وكيل المستخدم، لذا يمكنك تحديد هذا الخيار وتخطي هذا الجزء.
في حالة رغبتك في أن تكون محببا في هذا الشرط، يمكنك التحقق من النوع من خلال القيام بهذا:
على سبيل المثال، للأمر sudo grep -b 10 -a 10 -e "^\s*state = " <<<"$(launchctl dumpstate)" | GREP -aiE "\/.*= {" | SED 's/.\{3\}$/' | grep -i com.cisco.secure.iseposture، الإنتاج: gui/501/com.cisco.secure.iseposture.
2. تحقق من نوع الخدمة باستخدام الأمر sudo launchctl print{ اسم خدمة Launchctl الخاصة بك } | GREP -i 'type = Launch'
اقتداء بالمثال، للأمر: طباعة Sudo Launchctl gui/501/com.cisco.secureRecent.iseposture | GREP -i 'type = إطلاق'، المخرجات هي: type = LaunchAgent.
هذا يعني أن نوع الخدمة هو "عميل"، وإلا فسيظهر النوع = LaunchDaemon.
ملاحظة: في حال كانت المعلومات فارغة، حدد الخيار ل Daemon أو User Agent في ISE لإعداد نوع الخدمة.
يسمح لك ISE بتحديد 5 مشغلات خدمة مختلفة:
هي كل الخدمات التي يتم سردها عند إستخدام هذين الأمرين:
Sudo Grep -B 10 -A 10 -E "^\s*state = " <<<"$(Launchctl dumpstate)" | GREP -aiE "\/.*= {" | SED 's|.*/|؛s| = {$||'
قائمة غسيل سودو | AWK '{if (NR>1) قم بطباعة $3}'
هل تم تعريف كافة الخدمات التي تحتوي على قائمة الخصائص (PLIST) الخاصة بها، ولكن لم يتم تحميلها، أو الخدمات التي لا تحتوي حتى على قائمة ملكية (PLIST) معرفة، وبالتالي لا يمكن تحميلها على الإطلاق.
ليس من السهل تعريف هذه الخدمات، وهو أكثر شيوعا لحالة الاستخدام عندما تريد التحقق من عدم وجود خدمة معينة في جهاز MacOS.
على سبيل المثال، إذا كنت ترغب في منع تحميل خدمة التكبير/التصغير على جهاز MacOS، يمكنك وضع Us.Zoom.ZoomDaemon كقيمة للخدمة، بهذه الطريقة تتأكد من أن التكبير/التصغير لا يعمل أو غير مثبت على الإطلاق.
هناك خدمات لا يمكن إزالة تثبيتها، وقائمة الخصائص الخاصة بها محددة.
على سبيل المثال، باستخدام هذا الأمر، يمكنك أن ترى أن لوحة DHCP6d معرفة:
LS -ltr /System/Library/LaunchDaemons | grep com.apple.dhcp6d.plist
عند التحقق من قائمة الخدمات، يمكنك ملاحظة أنه لم يتم تحميلها:
Sudo Grep -B 10 -A 10 -E "^\s*state = " <<<"$(Launchctl dumpstate)" | GREP -aiE "\/.*= {" | SED 's|.*/|؛s| = {$||' | grep -i com.apple.dhcp6d
قائمة غسيل سودو | AWK '{if (NR>1) قم بطباعة $3}' | grep -i com.apple.dhcp6d
إذا قمت بضبط القيمة على com.apple.dhcp6d" فإن جهاز MacOS متوافق، لأنه على الرغم من تحديد لوحة الخدمة، فإنه لا يتم تحميل الخدمة.
ليست جميع الخدمات قيد التشغيل، هناك عدة حالات لكل خدمة، مثل التشغيل، وعدم التشغيل، والانتظار، والمنتهى، وغير مهيأ، وما إلى ذلك.
للتحقق من جميع الخدمات قيد التشغيل، أستخدم هذا الأمر:
SUDO GREP -B 10 -A 10 -E "^\s*state = تشغيل" <<"$(Launchctl dumpstate)" | GREP -aiE "\/.*= {" | SED 's|.*/|؛s| = {$||'
الخدمات المدرجة مع الأمر أعلاه في وضع التحميل والتشغيل كشرط مشغل الخدمة.
قد تنتهي بعض الخدمات برمز خروج متوقع أو غير متوقع، مثل هذه الخدمات يمكن سردها باستخدام الأمر:
SUDO GREP -B 10 -A 10 "الحالة = e" <<<"$ (حاوية وحدة التحكم في التشغيل)" | GREP -aiE "\/.*= {" | SED 's/.\{3\}$/'
لمعرفة رمز الخروج الخاص بها، يمكنك إختيار أي خدمة واستخدام الأمر:
طابعة Sudo Launchctl { اسم خدمة Launchctl } | GREP -أنا 'رمز الخروج الأخير'
على سبيل المثال:
sudo launchctl يطبع gui/501/com.apple.mdmclient.agent | GREP -أنا 'رمز الخروج الأخير'
وهو الناتج: رمز الخروج الأخير = 0
ملاحظة: هنا يعني رمز الخروج 0 عادة أن كل شيء تم القيام به بشكل صحيح بواسطة الخدمة. إذا لم يتطابق الكمبيوتر مع 0 كرمز الخروج، فهذا يعني أن الخدمة لم تقم بتنفيذ الإجراء المتوقع.
يعمل هذا الخيار الأخير عند تحميل الخدمة وتشغيلها أو تحميلها برمز الخروج.
تعرض هذه الصورة مثالا لشرط خدمة MacOS.
ملاحظة: حاليا، اسم الخدمة الدقيق فقط هو المعتمد. هناك طلب تحسين لدعم حرف البدل في أسماء الخدمات، معرف تصحيح الأخطاء من Cisco CSCwf01373
ما إن شكلت الشرط، أنت تحتاج أن يخلق متطلب ل هذا شرط، يستعمل الرسالة إختبار فقط خيار ل هذا متطلب.
انتقل إلى ISE > مراكز العمل > الوضع > المتطلبات لإنشائه.
ملاحظة: لا توجد خيارات إصلاح لظروف الخدمة.
وبمجرد القيام بذلك، تتمثل الخطوة الأخيرة في تكوين نهج الوضع الذي يستخدم المتطلب الذي تم إنشاؤه.
انتقل إلى ISE > مراكز العمل > Posture (وضعية) > سياسة Posture (وضعية) لإنشاء السياسة.
قم بتمكين النهج الجديد، قم بتسميته كما ترغب وحدد المتطلب الذي قمت بإنشائه للتو.
يمكنك التحقق من تمرير حالة MacOS أو فشلها، من واجهة المستخدم الرسومية (GUI) ل Cisco Secure Client.
أيضا، أنت يستطيع فحصت ال ISE Posture تقرير من ISE > عمليات > تقارير > تقارير > نقاط نهاية ومستخدمين > تقييم الوضع حسب نقطة النهاية.
المشاكل المشتركة التي قد تواجهها أثناء تكوين حالة خدمة MacOS هذه هي:
كما تمت الإشارة مسبقا، تتطلب حالة الخدمة أذونات مرفوعة. من الضروري أن يكون الخادم موثوقا بشهادة عملية المسح الضوئي للوضع.
وإلا واجهت هذا الخطأ:
يكتشف وحدة ISE Posture النمطية خوادم PSN إما بواسطة عنوان IP أو اسم المجال المؤهل بالكامل (FQDN). أفضل ممارسة هي وجود ملفات تكوين Posture (وضعية) لاكتشاف عقد ISE من خلال FQDN، لذلك يجب أن تتضمن شهادات Admin و Portal (مدخل إمداد العميل) FQDN في حقل CN أو حقل SAN. يمكنك إستخدام شهادة حرف البدل لهذا أيضا، وشهادات حرف البدل مدعومة لهذا التدفق.
لا يمكن الوثوق بحقل CN في المستقبل بسبب الأوراق المالية للنظام. قم بتضمين إدخال حرف البدل أو FQDN في حقل شبكة التخزين (SAN) كأفضل ممارسة.
في حالة اكتشاف شبكات ISE PSN من خلال عنوان IP بدلا من شبكة FQDN، يلزم تضمين عنوان IP للعقد إما في حقل CN أو حقل شبكة التخزين (SAN) للشهادة (الشهادات) المرتبطة باستخدام "الإدارة" و"المدخل".
تثق وحدات ISE Posture النمطية في الشهادة المقدمة من خادم ISE. إذا كان المرجع المصدق الخاص به في مخزن شهادات النظام الخاص بالوصول إلى سلسلة مفاتيح MacOS، فيجب أن يحتوي المرجع المصدق هذا على الإعداد عند إستخدام مجموعة الشهادات هذه إلى الثقة الدائمة.
قد تواجه السلوك الخاطئ حتى عند تحميل الشهادة بشكل صحيح والوفاء بجميع متطلبات CN و SAN، فإن نظام MacOS لا يزال لا يثق في الشهادة. في مثل هذه الحالات، افتح تطبيق الوصول إلى سلسلة المفاتيح، وتصفح إلى علامة التبويب مخزن شهادات النظام، واحذف شهادة CA من هناك.
بعد ذلك، انتقل إلى التطبيق الطرفي في نظام التشغيل MacOS وأقم هذا الأمر: sudo /usr/bin/security add-trusted-cert -r trustRoot -d -k /Library/Keychains/System.keychain
{مسار شهادة المرجع المصدق}
على سبيل المثال، إذا كانت شهادتك في سطح المكتب الخاص بك، فإن الأمر هو التالي: sudo /usr/bin/security add-trusted-cert -r trustRoot -d -k /Library/Keychains/System.keychain /Users/JohnDoe/Downloads/CA_certificate.crt
بعد تنفيذ الأمر، قم بإعادة تشغيل الكمبيوتر ثم حاول مرة أخرى.
وقد تواجه أيضا رسائل الخطأ "تخطي الفحص الآمن للعملاء من Cisco"، و"لم يتم تكوين شبكتك لاستخدام وكيل وضعية ISE من Cisco":
تظهر هذه الرسالة لعدم وجود توصيفات تم تكوينها في إمداد العميل في ISE > مراكز العمل > Posture > إمداد العميل > سياسات إمداد العميل.
على الرغم من أنك قد ترى شرط لأنظمة تشغيل Mac OSX، إلا أن ذلك لا يعني أنك تغطي كل إصدارات MacOS.
وبشكل افتراضي، لا يتضمن ISE أحدث إصدارات نظام التشغيل MacOS، مثل Sequoia (15.6.x)، لتجنب مثل هذه الرسالة، تأكد من أن الوضع تم تحديثه.
يجب عليك تحديث موجز ويب الوضع من ISE > مراكز العمل > الوضع > الإعدادات > تحديثات البرامج > تحديثات الوضع.
يمكن تحديث هذا الملف عبر الإنترنت مباشرة من ISE أو دون اتصال من خلال ملف zip يمكن تنزيله هنا من موقع Posture Offline
إذا كنت تريد الدخول في التفاصيل، يمكنك تجميع حزمة DART من جهاز MacOS. لهذا يجب أن يكون لديك وحدة DART مثبتة، بعد ذلك، مع انتقال تطبيق Cisco Secure Client النشط إلى شريط القائمة وانقر فوق Cisco Secure Client ثم، في إنشاء تقارير التشخيص.
ملاحظة: من المهم أن يتم تمكين خيار تضمين سجلات النظام عند إنشاء حزمة DART، وإلا فإن حزمة DART لن تتضمن معلومات وحدة ISE Posture (وضعية محرك خدمات الهوية (ISE)).
لأسباب أمنية، قد يتم تشفير بعض السجلات ولا يمكن رؤيتها، ولكن في unified_log.log من حزمة DART، قد ترى سجلات مماثلة كما هو موضح:
ملاحظة: مثال السجل هذا خاص بشرط خدمة MacOS المكون في هذا المستند.
[Tue Feb 27 10:30:58.576 2024][csc_iseposture]Function: createCheckXMLString Thread Id: 0x4A9FD7C0 File: Check.cpp Line: 417 Level: debug :: parsed Check string to: (
macOS-Service-Condition
3
303
com.apple.sysmond
running
0
)
[Tue Feb 27 10:30:58.576 2024][csc_iseagent]Function: processPostureData Thread Id: 0x4A9FD7C0 File: AuthInfo.cpp Line: 763 Level: debug :: Decrypted posture data, X-Perfigo-DM-Software-List =
ISE: 3.3.0.430
ISE: 2.x
0
30
macOS-Service-Requirement
macOS Service is non compliant
3
0
3
macOS-Service-Condition
3
303
com.apple.sysmond
running
0
(macOS-Service-Condition)
[Tue Feb 27 10:30:58.576 2024][csc_iseagent]Function: SMP_initCheck Thread Id: 0x4A9FD7C0 File: SMNavPosture.cpp Line: 682 Level: debug :: MSG_SP_START_CHK, {item:0,str:"
ISE: 3.3.0.430
ISE: 2.x
0
30
macOS-Service-Requirement
macOS Service is non compliant
3
0
3
macOS-Service-Condition
3
303
com.apple.sysmond
running
0
(macOS-Service-Condition)
",isElevationAllowed:1,nRemediationTimeLeft:0}
[Tue Feb 27 10:30:58.646 2024][csc_eliseposture]Function: createCheckXMLString Thread Id: 0x4A9FD7C0 File: Check.cpp Line: 417 Level: debug :: parsed Check string to: (
macOS-Service-Condition
3
303
com.apple.sysmond
running
0
)
[Tue Feb 27 10:30:58.646 2024][csc_eliseposture]Function: doCheck Thread Id: 0x4A9FD7C0 File: Rqmt.cpp Line: 279 Level: debug :: Checking rqmt, [macOS-Service-Requirement]:Mandatory
[Tue Feb 27 10:30:58.658 2024][csc_eliseposture]Function: doCheck Thread Id: 0x4A9FD7C0 File: CheckSvc.cpp Line: 87 Level: debug :: The agent com.apple.sysmond check had a result of : success. The requested checkType was: ctDaemonOrUserAgentStatus and opType was: cotRunning
[Tue Feb 27 10:30:58.658 2024][csc_eliseposture]Function: completeCheck Thread Id: 0x4A9FD7C0 File: Rqmt.cpp Line: 318 Level: debug :: check result of rqmt, [macOS-Service-Requirement]:PASSED
كذلك، يمكنك تعيين مكون الوضع على مستوى سجل التصحيح في عقدة ISE PSN التي تصادق وتضع نقطة النهاية.
يمكنك تكوين مستوى السجل هذا من ISE > Operations > Troubleshooting (أستكشاف الأخطاء وإصلاحها) > Debug Log Processor (معالج تصحيح الأخطاء) > Debug Log Configuration. انقر فوق اسم مضيف PSN وقم بتغيير مستوى سجل مكون Posture من المعلومات إلى تصحيح الأخطاء.
باستخدام نفس المثال لشرط خدمة MacOS، يمكنك أن ترى سجلات مماثلة ضمن ال ise-psc.log:
2024-02-27 10:30:58.658 DEBUG [https-jsse-nio-10.4.21.59-8443-exec-1][[]] cisco.cpm.posture.runtime.PostureHandlerImpl -::username:::- NAC agent xml
ISE: 3.3.0.430
ISE: 2.x
0
30
macOS-Service-Requirement
macOS Service is non compliant
3
0
3
macOS-Service-Condition
3
303
com.apple.sysmond
running
0
(macOS-Service-Condition)
2024-02-27 10:30:58.659 DEBUG [https-jsse-nio-10.4.21.59-8443-exec-1][[]] cisco.cpm.posture.util.StatusUtil -::username:::- StatusUtil - getPosturePolicyHTML [
ISE: 3.3.0.430
ISE: 2.x
0
30
macOS-Service-Requirement
macOS Service is non compliant
3
0
3
macOS-Service-Condition
3
303
com.apple.sysmond
running
0
(macOS-Service-Condition)
]
2024-02-27 10:31:06.044 DEBUG [https-jsse-nio-10.4.21.59-8443-exec-8][[]] cisco.cpm.posture.util.AgentUtil -::username:::- Increase MnT counter at POSTURE:Posture.Requirement.Success.macOS-Service-Requirement
إذا إستمرت المشكلات، فقم برفع بطاقة TAC مع فريق Cisco.
المراجعة | تاريخ النشر | التعليقات |
---|---|---|
1.0 |
11-Sep-2025
|
الإصدار الأولي |