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

قرّر بحسب الوجهة، لا بحسب هوية المستخدم

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

Path the request tookSource the site normally records
Client reaches the site at its tunnel address, 10.24.0.1Client inner address, 10.24.0.20
Client reaches another internet site through the gatewayGateway public egress address, 192.0.2.44
Client reaches the gateway's public address through the endpoint exceptionClient's own public access address

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

لماذا تُنشئ نقطة النهاية الخارجية مسارًا عامًا ثانيًا

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

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

اقرأ المقبس والجدول وصيغة السجل معًا

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

ss -lntp 'sport = :443'
ip route get 10.24.0.20
ip route get 192.0.2.44

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

log_format tunneled '$remote_addr $realip_remote_addr $request $status';
grep -n 'log_format' /etc/nginx/nginx.conf

اختر نقطة الدخول التي تريدها واجعل DNS يتفق

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

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

تحقّق من المسار ثم من السياسة

أكّد المسار بالتقاط على البوابة وبطلب تتحكّم به. الالتقاط على جهاز النفق وآخر على الواجهة العامة يُظهران أيّهما حمل البايتات، وترتيب الحزم يخبرك هل حدثت ترجمة بينهما.

tcpdump -ni tun0 port 443 -c 5
tcpdump -ni eth0 port 443 -c 5

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

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