جدران الحماية التي تسمح بـ IKE وESP لكنها لا تسمح بـ UDP 1701 تقطع اتصالات L2TP بطريقة تبدو وكأنها مشكلة في بيانات الاعتماد. السبب أن L2TP بروتوكول ثانٍ يسير داخل الأول. يحمل IPsec التبادل ويتحقق منه، ويشغّل L2TP نفقه الخاص فوق UDP 1701، وهو ما يبقى على حزمة البروتوكولات المحلية تسليمه. معرفة موضع كل ترويسة تشرح أي جهاز يحتاج أي قاعدة.

بروتوكولان ومجموعتا منافذ

يستخدم اتصال L2TP/IPsec بروتوكول IKE على UDP 500، وعبور NAT على UDP 4500 حيث توجد ترجمة للعناوين، وESP كبروتوكول IP رقم 50 حيث لا توجد. وL2TP نفسه بروتوكول نفق على UDP 1701، ويعمل بعد أن يتحقق IPsec من النظير. يفشل النصفان بشكل مختلف، وأسطر السجل التي تبلغ عنهما تأتي من مكوّنات مختلفة. مجموعة قواعد تغطي النصف الأول فقط تنتج اتصالاً يتفاوض ثم يموت في مرحلة النفق.

أرقام المنافذ تصف نقاط نهاية النقل، وESP ليس منفذاً على الإطلاق. لذلك لا تستطيع واجهة جدار حماية تقدّم قواعد TCP وUDP فقط التعبير عن سياسة IPsec كاملة. يجب السماح بالبروتوكول 50 كبروتوكول، والقاعدة التي تذكر UDP فقط لن تطابقه أبداً.

الغلاف يشرح المنفذ

على الشبكة، يُظهر اتصال L2TP/IPsec عادةً IKE على 500 وESP مغلّفاً على 4500. تقع ترويسة UDP 1701 داخل الحمولة المحمية، ولهذا لا يُظهرها التقاط على الواجهة الخارجية. لا يزال على المضيف المحلي تسليم مخطط البيانات هذا إلى برنامج L2TP الخفي، والتسليم يحدث بعد فك التغليف. لذلك تنتمي قاعدة 1701 إلى جدار الحماية الخاص بالطرف نفسه حتى عندما لا يرى أي وسيط شبكي المنفذ أبداً.

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

تحقّق من المسار بالترتيب

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

sudo tcpdump -ni eth0 'udp port 500 or udp port 4500'
sudo nft list ruleset | grep -i -A2 1701
sudo ss -lunp | grep 1701

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

ما لا يستطيع فحص المنافذ إظهاره

فحص UDP 1701 من الخارج على خادم مُعدّ بشكل صحيح لا يُبلّغ عادةً عن شيء، وهذه هي النتيجة المتوقعة. المنفذ غير مكشوف للإنترنت؛ ولا يُوصل إليه إلا بعد أن يتحقق IPsec من النظير. التعامل مع النتيجة المغلقة كعطل يؤدي إلى فتح منفذ يجب أن يبقى مغلقاً. لا يستطيع الفحص رؤية داخل النفق أكثر مما يستطيع رؤية حركة التطبيق.

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

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