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

لماذا يسلك الرد طريقاً مختلفاً

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

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

قاعدة مصدر ضيقة بما يكفي للثقة

اجعل الراوتر هو المصدر الذي يرد عليه المضيف البعيد. في هذا التصميم يكون عنوان WAN هو 203.0.113.24، والشبكة المحلية هي 192.168.88.0/24، وعنوان النفق للراوتر هو 172.20.5.1، وتجيب الخدمة على 172.20.5.40:8443. تطابق القاعدة أدناه الحزمة بعد ترجمة الوجهة، ولهذا تذكر العنوان المترجم لا العنوان العام. لا شيء فيها يعتمد على عنوان العميل، وهذا هو المقصود بالضبط.

iptables -t nat -A POSTROUTING -o tun0 -p tcp -d 172.20.5.40 --dport 8443 -j SNAT --to-source 172.20.5.1

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

متى يكون التمويه الشامل الخيار الصادق

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

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

افحص العدادات قبل النشر

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

iptables -t nat -L POSTROUTING -v -n --line-numbers

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

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