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

ابدأ بالاتصال الذي هيّأته فعليًا

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

عقد تصميم الشبكة مختلف، ويُعبّر عنه بالمسارات والسياسات لا بزوج من المنافذ.

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

افحص ما يتصل به المغلّف

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

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

openssl s_client -connect wrapper.lab.example:443 -servername wrapper.lab.example -verify_return_error
sudo ss -ltnp | grep 443

الأمر الأول يُظهر الشهادة التي تُعرض على العميل فعليًا، والثاني يُظهر ما يستمع على المضيف. قارن اسم تلك الشهادة بالاسم الذي توقعته قبل قراءة أي شيء آخر.

افحص الحركة التي يحملها التصميم

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

اسم المنتج لا يخبرك أيّ تلك النماذج اشتريت، ورقم المنفذ يخبرك أقل من ذلك.

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

افحص الحدود الفاشلة لا التسمية

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

المنفذ 443 عرف يسمح بمرور TLS عبر الصناديق الوسيطة. وهو لا يجعل حركة عشوائية تشبه طلب ويب لدى جهاز سياسات.

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

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