لماذا لا يحمي NAT المنزلي واجهة VPN لديك
يوجّه راوتر المنزل النفق، لكن المضيف يحكم على الحزمة المفكوكة التشفير. اقرأ المستمع والمسار الداخلي وسياسة الدخول كلًا على حدة.
لا تزال الحواسيب المحمولة خلف راوتر منزلي بلا إعادة توجيه منافذ تقبل اتصالات SSH التي تصل عبر VPN. هذا ليس تناقضًا، لأن جهازين مختلفين يحكمان على حزمتين مختلفتين. يوجّه الراوتر النقل المشفّر، ويقرر المضيف ما يُفعل بالحزمة المفكوكة التشفير التي تصل إلى واجهة النفق لديه. الفصل بين هذين القرارين هو التمرين كله.
الراوتر يوجّه النفق، والمضيف يحكم على الحزمة
ارسم المسار من المصدر البعيد إلى الخدمة قبل أن تنظر إلى قاعدة واحدة. الجزء الخارجي هو نقل VPN، ويتولاه الراوتر والبوابة. يبدأ الجزء الداخلي عندما ينزع الطرف طبقة النفق ويتلقى المضيف حزمة موجّهة إلى عنوان VPN الخاص به.
ادمج هذين الجزأين فيحصل الراوتر على الفضل في قرار يتخذه المضيف. تصف صفحة إعادة توجيه المنافذ أو سجل الراوتر المحادثات الخارجية فقط، ولا يقول أي منهما أي حركة مفكوكة التشفير سيقبلها المضيف. يطبّق المضيف سياسة الدخول الخاصة به على الحزمة الداخلية، كما يطبّقها على أي حزمة تصل إلى واجهة. وفي تلك السياسة تُحسم مسألة التعرّض فعليًا.
المستمع الشامل ليس خدمة عامة
في Linux، يعني الارتباط بـ INADDR_ANY كل عنوان محلي، لذا يمكن لخدمة أن ترد على واجهة نفق لم تسمّها قط. يصف مرجع مقابس IP ذلك الارتباط، ويستحق القراءة قبل استخلاص استنتاجات من قائمة المستمعين. إدخال الشامل حقيقة عن المقبس، وليس تصريحًا عن قابلية الوصول.
السطران أدناه هما الخدمة نفسها في ارتباطين مختلفين، والفرق هو الجواب كله على ما إذا كانت الواجهة مهمة. اقرأ على أي عنوان يجلس المقبس قبل أي شيء آخر.
ss -lntp "sport = :22"
LISTEN 0 4096 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812,fd=3))
LISTEN 0 4096 10.8.0.6:22 0.0.0.0:* users:(("sshd",pid=812,fd=4))
سمِّ الترتيب الذي قد يبلغ المنفذ
ثلاثة ترتيبات تضع حزمة على تلك الواجهة، ولها مالكون مختلفون. تسمية الترتيب الصحيح تحدد من يجب أن يغيّر سياسة.
| Arrangement | What reaches the port | Where the decision lives |
|---|---|---|
| Another permitted VPN peer | A packet from the same tunnel subnet | Gateway forwarding policy and host input rules |
| A deliberate public forward | Traffic the gateway publishes on purpose | Gateway service definition |
| A subnet routed behind the gateway | Client traffic from the far side | Gateway route and host input rules |
نتيجة المتصفح التي تُظهر عنوان خروج عامًا لا تقول شيئًا عن أي من الثلاثة، لأنها تصف كيف تخرج الحركة الصادرة وليس ما يُسمح للحركة الواردة. اعمل بالعكس من المستمع وعنوان المصدر في سجل الخدمة. إذا كان المصدر نظير نفق آخر، فسياسة البوابة هي المستند المثير للاهتمام. وإذا كان عنوانًا مترجمًا، فاعثر على الترجمة قبل تغيير قاعدة.
احصر الخدمة في المسار الذي قصدته
إذا كان SSH مطلوبًا فقط من مسار إدارة، فاكتب ذلك المسار كنطاق مصدر مع واجهة. ثم احصر قواعد الدخول للمضيف حسب الواجهة والوجهة والمصدر بدلًا من اسم الشبكة، لأن اسمًا يبدو خاصًا قد يمثل أي عنوان. واترك مسارًا للشخص الذي سيصلح المشكلة التالية.
nft add rule inet filter input iifname "tun0" ip saddr 10.8.0.0/24 tcp dport 22 accept
nft list chain inet filter input
القاعدة التي تسمّي واجهة النفق ونطاق الإدارة تعبّر عن القصد في مكان واحد. قارنها بقاعدة كُتبت لشبكة Wi-Fi، وهي لا تقول شيئًا عن حركة النفق المفكوكة التشفير. وعندما تختلف الطبقتان، تكون سياسة المضيف هي التي تلقاها الحزمة.
اترك عمليات الدخول والتصحيحات في مكانها بالضبط؛ فبلوغ منفذ لم يكن يومًا مماثلًا للسماح باستخدامه. سجّل عائلة العنوان والوقت لأي مصدر غير مألوف، وتحقق قبل إلقاء اللوم على ميزة أو ثغرة. القاعدة التي تقبل كل نظير نفق تصميم مختلف عن التي تقبل شبكة فرعية للإدارة، ولن يخبرك أي سطر سجل أيّهما كان المقصود.
اقبل الإصلاح بنجاح واحد ورفض واحد
أثبت النصفين: ينجح اتصال معتمد ويُرفض مسار مستبعد. الرفض هو النصف الذي يتخطاه الناس، وهو الذي يُظهر أن القاعدة تعمل بدلًا من أن تقف بجانب قيمة افتراضية متسامحة. اختبر من الجانب المستبعد بدلًا من التفكير فيه.
أعد الزوج بعد إعادة الاتصال، لأن نفقًا يعود باسم واجهة مختلف قد يتجاوز بهدوء قاعدة محصورة بالقديم. الحد الذي يهم هو الذي يطبّقه المضيف على الحزم التي يتلقاها فعلًا.