عندما يُثبَّت ملف تعريف بسلاسة على جهاز Mac ويُرفض على آخر، فإن الشبكة لم تُبلَغ بعد، لذا لا يستحق كل من الشهادات والبوابات وكلمات المرور أي لوم. توقّف المُثبِّت عند حمولة لم يقبلها، وهو عادةً يسجّل أيّ حمولة كانت. هذا يترك ملف التعريف وكل ما ولّده بوصفهما المكانين المعقولين الوحيدين للعمل، ويجعل محو الإعدادات على العميل طريقةً لتدمير الأدلة لا للإصلاح.

اقرأ ملف التعريف بدلًا من إعادة ضبط جهاز Mac

صدّر ملف .mobileconfig وانظر إلى ما يحمله فعلًا قبل أن تلمس العميل:

plutil -p profile.mobileconfig | head -60

ملف تعريف VPN هو في الحقيقة حمولتان تؤدّيان وظيفتين مختلفتين: com.apple.vpn.managed يحمل الاتصال، بينما com.apple.dnsSettings.managed يحمل إعدادات المُحلِّل. تتوقف عملية التثبيت عند أول حمولة يرفضها المُثبِّت، ويُسجَّل الرفض في سجل النظام مع اسم تلك الحمولة، لذا فالسجل هو ما يخبرك أي قسم تفتح. احتفظ بنسخة من آخر ملف تعريف نجح استيراده، لأن ذلك الملف هو الأساس الذي تُقاس عليه المقارنة.

ما أضافه المُولِّد بصمت

أصدر Apple Configurator 2.15 البناء رقم 7A23 الكتلة التالية داخل حمولة DNS الخاصة به:

<key>DNS</key>
<dict>
  <key>SupplementalMatchDomainsNoSearch</key>
  <integer>0</integer>
</dict>

على macOS 12.1، رُفضت ملفات التعريف التي كتبها ذلك البناء عند الاستيراد. أما الاتصال الذي أُنشئ بـ Configurator 2.11.1 فقد دخل دون أي شكوى، لأن ذلك الإصدار لم يكتب المفتاح إطلاقًا. احذف قاموس DNS كاملًا أو المفتاح المسبب للمشكلة فقط، واحفظ الملف مرة أخرى، ثم أعد المحاولة على الجهاز نفسه قبل أن تغيّر أي شيء آخر. وهذا التعديل الواحد هو عادةً الإصلاح كله.

للأداة فخ يستحق أن تعرفه قبل أن تثق بها. بعد حذف المفتاح، لم يُعِده حفظ الاتصال نفسه، ولم يظهر مرة أخرى إلا عندما أُنشئ اتصال من الصفر. تعامل مع كل ملف تعريف مُولَّد حديثًا بوصفه مشبوهًا وافحصه، خصوصًا عندما أُنشئت دفعة كاملة من الاتصالات في جلسة واحدة.

مسار MDM يفشل في مكان آخر

قد تفشل خدمة إدارة تدفع ملف التعريف نفسه في موضع مختلف: يشتكي العميل من أنه لم تُنشأ أي خدمة VPN إطلاقًا. في الحالة المُبلَّغ عنها كانت هناك حمولة مُهيأة لمصادقة الشهادات تطالب مع ذلك بحقل كلمة مرور؛ وملؤه بقيمة بديلة سمح بتطبيق ملف التعريف، ولم يستخدم أي شيء تلك القيمة للمصادقة أبدًا.

إن سلكت ذلك المسار، فخزّن نصًا وهميًا ولا تخزّن أبدًا بيانات اعتماد حقيقية، وأبقِ السر الفعلي خارج جسم ملف التعريف. فملف تعريف يحمل كلمة مرور عاملة يصبح ملفًا يجب حمايته كمفتاح، وهذه مشكلة أكبر بكثير من فشل الاستيراد الذي بدأت به. حدّد من يملك تلك القيمة البديلة قبل توزيع ملف التعريف، حتى لا يظنها أحدهم لاحقًا قيمة تستحق التبديل الدوري. وتوثيق سبب وجودها يستغرق سطرًا واحدًا ويوفّر جدالًا بعد ستة أشهر.

تأكّد من أن ملف التعريف وصل فعلًا

نجاح الاستيراد ليس خدمة عاملة، لذا تحقّق بهذا الترتيب:

profiles show -type configuration
scutil --nc list
scutil --nc start "Your VPN Service"
scutil --nc status "Your VPN Service"
scutil --dns | head -20

الأمر الأول يسرد الحمولات المثبتة؛ والثاني يقول إن كانت هناك خدمة VPN إطلاقًا. والأمر الأخير، بعد الاتصال، يُظهر المُحلِّل الذي سيستخدمه النظام فعليًا. اقرأها بهذا الترتيب وتوقّف حيث تنكسر السلسلة، لأن غياب الخدمة يجعل أي سؤال عن المُحلِّل بلا معنى. فقد يُدرَج ملف تعريف كمثبَّت ولا يملك شيئًا قابلًا للاستخدام، وهذه بالضبط الحالة التي صُمِّم هذا التسلسل لكشفها.

إن ظهر النفق بينما ما زال إدخال الخدمة بلا اسم قابل للاستخدام، فقد ضاع حقل اسم العرض في التصدير، والعلاج هو إعادة توليد ملف التعريف لا إعادة تسميته على العميل. وإذا ظل المُحلِّل يشير إلى المحلي، فقد حُذفت حمولة DNS بشكل أشمل مما قصدت.

نفّذ الطرح على مراحل، بجهاز Mac واحد في كل مرة

ثبّت على جهاز Mac مُدار واحد يعمل بنفس بناء نظام التشغيل، ثم افحص ثلاثة أمور منفصلة: ظهور الخدمة، وتغيّر المُحلِّل، ونجاح طلب داخلي حقيقي واحد. ولا يتسع النطاق إلا بعد تحقّق الثلاثة.

هذه ثلاثة نتائج مختلفة تفشل بثلاث طرق مختلفة، وهذا ما يجعل جهاز اختبار واحد يستحق عشر دقائق. فملف التعريف الذي يُستورد ليس ملفًا يعمل، وجهاز المرحلة الأولى يلتقط نوعي الفشل قبل أن ترى بقية الأسطول أيًا منهما.

مقالات ذات صلة