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

سياستان، نفق واحد

تجيب السياسة الخارجية عن سؤال بسيط: هل يمكن لحزمة من هذا المصدر أن تصل إلى UDP 1194 على هذا المضيف؟ وتجيب السياسة الداخلية عن سؤال آخر: هل يمكن للعميل الموثَّق خلف ذلك النفق أن يصل إلى هذه الوجهة، بهذا البروتوكول، على هذا المنفذ؟ الأولى تتعلق بمقبس، والثانية بمسار، ويمثّلهما firewalld بكائنين مختلفين لأنهما يُحسمان في نقطتين مختلفتين. إحداهما خاصية مقبس على هذا المضيف، والأخرى خاصية مسار عبره.

النتيجة العملية أن النفق العامل لا يخبرك بشيء عن السياسة الثانية، وأن السياسة الثانية الصحيحة لا تجعل الأولى غير ضرورية.

اسمح للمستمع الخارجي الفعلي

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

firewall-cmd --get-active-zones
firewall-cmd --zone=public --list-all
firewall-cmd --info-service=openvpn

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

أذن للوجهة المفكوكة التشفير بشكل منفصل

الاتصال بخدمة تعمل على خادم الـ VPN نفسه هو سياسة إدخال محلي. أما الاتصال الممرَّر إلى مضيف آخر في LAN فيحتاج سياسة تمرير، أي تمرير مفعَّل في النواة ومسار رجوع — وهذه ثلاثة متطلبات منفصلة جرت العادة على دمجها في واحد. تصف كائنات السياسة الحديثة في firewalld الحركة الموجَّهة بين منطقة دخول ومنطقة خروج، وهذا هو المكان الصحيح للتعبير عن مصادر الـ VPN المسموح لها بالوصول إلى أي خدمات خاصة.

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

لماذا الثقة بالواجهة هي الاختصار الخاطئ

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

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

تحقّق من ثلاثة أمور، منها رفض واحد

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

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

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