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

ارسم الحزمة بعد فك التشفير، لا قبله

المسار الخارجي هو ما يوثقه المورّدون: نقطة نهاية عامة، وسياسة نقل تسمح بالاتصال، وخدمة تُنهي الاتصال. يبدأ المسار الداخلي في اللحظة التي تفقد فيها الحزمة رأس النفق، ومن هناك تحكمه قواعد التوجيه والتصفية التي لا علاقة لها بالنفق. ضع الاثنين في الصفحة نفسها، لأن مخططًا يحتوي الأول فقط يوحي بأن القبول والتصريح قرار واحد. وهما ليسا كذلك، والفجوة بينهما هي حيث تخطئ معظم المواضع.

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

  1. العميل البعيد: جهاز المستخدم الذي ينشئ النفق.
  2. سياسة الحافة: مجموعة القواعد التي تسمح بالنقل الخارجي إلى المستمع العام.
  3. الجهاز المُنهي: نقطة نهاية VPN التي تفك التغليف وتسلّم الحزمة إلى IP العادي.
  4. المرشّح الداخلي: مجموعة قواعد إعادة التوجيه أو مجموعات الأمان التي تحدّ من حركة العميل إلى الخدمة.
  5. مضيف التطبيق: الخدمة التي تستقبل الطلب المفكوك.

سياسان، ومالكان

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

ضوابط القبول مثل الشهادات والمصادقة متعددة العوامل تجيب عن الهوية ولا شيء غيرها. وهي لا تحدد الموضع، ولا تمنح إذنًا لكل مورد بعد دخول المستخدم.

الموضع يحدد أي حد يعبره الطلب

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

PlacementWhat terminates thereWhat sees plaintextWhich control can still denyFailure domain
Termination in a dedicated segmentA dedicated VPN endpointThe endpoint and anything on its segmentThe filter between that segment and the applicationThe segment path can bypass the filter if no rule sits on it
Termination on the edge firewallThe firewall's public listenerThe firewall, after decapsulationThe firewall's inner rule setAdmission and inspection fail together
Termination on the protected LANThe appliance's LAN legEvery host on the protected LANOnly a host control or a downstream gatewayThe appliance and the protected hosts fail together

الموضع الثالث هو الذي يزيل الإنفاذ بهدوء، لأن وجود جزء على القطاع المحمي يمنح الجهاز مسارًا مباشرًا قد لا يظهره المخطط. افحص الواجهات والمسارات بدلًا من الصورة: ip route get 10.20.5.10 يخبرنا عبر أي واجهة ستغادر الحزمة، والجواب غالبًا ليس ما افترضه التصميم. الدور التقليدي للجدار الناري في التحكم بالحركة بين الأوضاع، كما هو موصوف فيNIST SP 800-41، اختبار مفيد هنا، لأن جهازًا له جزء غير مقيّد إلى الشبكة المحمية لا يتحكم كثيرًا. البحث في جدول التوجيه مخطط أصدق من الذي في العرض.

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

الترجمة تغيّر ما يمكن لقواعد المصب رؤيته

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

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

sudo tcpdump -ni inside0 host 10.20.5.10
ip route get 10.20.5.10
sudo iptables -t nat -S POSTROUTING

اقبل عملية مسموحة وأخرى مرفوضة

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

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

وثّق نقطة النهاية والمسار المفكوك والضابط الذي يقيّده. تلك السطور الثلاثة تبقى ذات معنى أياً كان اسم التنفيذ.

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