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

ما الذي يربطه غلاف الخدمة فعلاً

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

لذا فالسؤال المفيد عن الغلاف ليس ما إذا كان يشفّر، بل ما الذي يقف عند كل طرف من السلسلة التي يبنيها.

application -> local listener -> TLS connection -> remote listener -> configured backend

اقرأ تلك السلسلة من التهيئة لا من الاسم التسويقي. كل سهم هو قفزة شبكية منفصلة بعنوانها وبقواعد وصولها.

اعرف أين ينتهي نفق TLS

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

افحص المستمع والخادم الخلفي بشكل منفصل، لأن مصافحة تنجح عند الباب الأمامي لا تقول شيئاً عن الخدمة خلفه.

ss -ltnp | grep -F 443
openssl s_client -connect svc.example.net:443 -servername svc.example.net </dev/null | openssl x509 -noout -subject -dates

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

ما تضيفه الشبكة الموجَّهة ولا يضيفه الغلاف

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

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

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

قارن الحد الفاصل الذي يفشل

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

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

curl -sv --resolve svc.example.net:443:203.0.113.10 https://svc.example.net/health 2>&1 | head -30

تثبيت الاسم على عنوان مختار يفصل حل الاسم عن إمكانية الوصول، وهو عادةً أسرع طريقة لمعرفة أي الاثنين معطوب.

المقارنة المهمة تسمّي زوج نقاط النهاية المحمية، والحِمل المنقول، والتطبيقات التي تستخدمه، والإذن المطبَّق عند الوجهة. ويسهم TLS في ذلك الوصف دون أن يكمله.

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