حركة Windows Sandbox لا تتبع VPN الخاص بالمضيف افتراضيًا
تصل البيئة المعزولة إلى الشبكة عبر محوّل افتراضي على المبدّل الافتراضي. أما إن كان نفقك يغطي ذلك فهي خاصية في العميل، لذا افحص من الداخل.
تبدأ Windows Sandbox وتفتح متصفحًا بداخلها، فتتحمّل الصفحة من اتصالك الطبيعي رغم أن المضيف كان على VPN قبل دقيقة. لا شيء معطّل. تحصل البيئة المعزولة على محوّل شبكة افتراضي مرتبط بالمبدّل الافتراضي للمضيف، وكون نفق المضيف يغطي ذلك المسار خاصية في عميل VPN لا في Windows.
ما تحصل عليه البيئة المعزولة فعليًا
البيئة المعزولة جهاز ظاهري خفيف بمحوّل شبكة خاص به. يتصل ذلك المحوّل عبر المبدّل الافتراضي في Hyper-V الخاص بالمضيف، وهو يحوّل حركة البيئة المعزولة إلى واجهة Ethernet الافتراضية للمضيف قبل أن تخرج من الجهاز. تفسّر هذه التفصيلة كل عَرَض تقريبًا يبلغ عنه الناس بشأن هذا الأمر.
إذن البيئة المعزولة ليست عملية على سطح مكتبك. إنها نقطة نهاية شبكية منفصلة يعيد المضيف توجيه حزمها، ويرى جدار حماية المضيف وعميل VPN ذلك التوجيه كلٌّ بطريقته. القاعدة المكتوبة لعملية متصفح لا تطابق تلقائيًا إطارًا محوّلًا قادمًا من مبدّل افتراضي.
مطلبان يبدوان كأنهما مطلب واحد
الوصول إلى مورد خاص وإجبار كل طلب من البيئة المعزولة على المرور عبر النفق هدفان مختلفان. يحتاج الأول إلى مسار واستبانة أسماء يعملان لنقطة نهاية البيئة المعزولة. ويحتاج الثاني إلى فرض يصمد أمام إعادة الاتصال والفشل. لا يلزم أحدهما من الآخر، والفحص الذي يحقق أحدهما لا يقول شيئًا عن الثاني.
فحص العنوان العام لا يجيب عن أي من السؤالين إجابة كاملة. رؤية مخرج VPN من داخل البيئة المعزولة تُظهر أن بعض الحركة استخدمت النفق. لكنها لا تقول شيئًا عن استبانة الأسماء الخاصة، ولا عمّا يحدث لطلب يبدأ بينما النفق متوقف.
اكتب أي المطلبين تحتاج قبل أن تختبر أي شيء، لأن المطلبين يقودان إلى تصميمين مختلفين ولا يمكن التحقق من أحدهما إلا بمتصفح.
افحص من داخل البيئة المعزولة
الملاحظة الوحيدة ذات المعنى تأتي من جلسة البيئة المعزولة نفسها لا من المضيف. افتح PowerShell هناك وانظر إلى المحوّل واستبانة الأسماء والمسار إلى عنوان من وثائق المنتج:
ipconfig /all Resolve-DnsName files.corp.example Test-NetConnection 198.51.100.7 -Port 443 Get-NetRoute -DestinationPrefix 0.0.0.0/0
تخبرك قائمة المحوّلات بالعنوان والبوابة اللذين أُعطيا للبيئة المعزولة. اختلاف البوابة عن بوابة المضيف أمر طبيعي في المبدّل الافتراضي، لذا قارن المخرج لا البوابة. يخبرك اختبار الاستبانة هل يُجاب عن اسم خاص أصلًا، وهنا عادةً تختلف إعدادات split-horizon عن المضيف. ويخبرك سطر المسار بالبوابة التي تعتقد البيئة المعزولة أنها تملك المسار الافتراضي.
كرر الفحوص الثلاثة نفسها والنفق متصل ثم متوقف. النتيجة التي لا تتغير بين هاتين الحالتين دليل على أن النفق ليس في مسار البيئة المعزولة إطلاقًا، أيًّا كان العنوان الذي أظهره الفحص العام.
أوقف الشبكة عندما لا تحتاجها البيئة المعزولة
للفحص دون اتصال، يمكن لملف تكوين مخصص أن يزيل الشبكة بالكامل. الإعداد عنصر واحد في وثيقة التكوين:
<Configuration> <Networking>Disable</Networking> </Configuration>
يوثّق مرجع تكوين البيئة المعزولة هذا العنصر ويحذّر من أن تفعيل الشبكة قد يعرّض الشبكات الداخلية لتطبيقات لا تثق بها. هذا التحذير هو السبب كله لضبطه صراحةً بدل قبول الافتراضي.
لكن المفتاح لا يختار واجهة VPN. إنه قرار ثنائي بشأن وجود شبكة، لا وسيلة لربط البيئة المعزولة بنفق بعينه. المطلب الذي يسمّي مخرجًا لا يمكن أن يحققه مفتاح يقرر فقط هل هناك مخرج أم لا.
صمّم الحدود قبل منح أي شيء
إذا كان المطلب هو العزل الصارم، فاختر تصميم شبكة جهاز ظاهري قادرًا على فرضه، واستخدم السياسة المدعومة في منتج VPN للحركة المعاد توجيهها أو حركة الأجهزة الظاهرية. تخمين سلوك عميل المضيف ليس تصميمًا، وفحص واحد ناجح ليس تنفيذًا.
لا تعطِ بيئة معزولة غير موثوقة ملف تعريف VPN للشركة أو بيانات اعتماد خاصة لتنجح في اختبار. فذلك يقايض الحد الذي كنت تحاول إنشاءه بنتيجة خضراء، وتبقى بيانات الاعتماد بعد الاختبار.
سجّل وضع الشبكة والمخرج الملاحَظ وسلوك إعادة الاتصال في ملاحظات النشر. وعندما يغيّر تحديث للعميل طريقة التعامل مع الحركة المعاد توجيهها، تكون تلك الملاحظات هي ما يخبرك بأن المطلب لم يُلبَّ فعلًا قط.