كل شيء يعمل حتى يفتح أحدهم جهاز MacBook. يُقام النفق، وتجيب المضيفات الداخلية بالعنوان، ثم يموت تحليل الأسماء. على iPhone يتصرف الملف الشخصي نفسه بالطريقة ذاتها، بينما عملاء Windows وLinux بخير. عادةً ما تكون سمة DNS المدفوعة هي السبب: يوزّع الخادم عنوان واجهته العامة، ولا يرسل عميل IKEv2 التابع لـ Apple استعلامات إلى هناك عبر النفق. انقل المستخدم إلى داخل المجموعة فيختفي العرَض دون لمس العميل.

العرَض يشير إلى العنوان المدفوع

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

العنوان العام هو الخيار المعتاد لأنه العنوان الذي يعرفه المسؤول مسبقًا. وهو أيضًا العنوان الوحيد المضمون خارج بادئة النفق نفسها، وهذه بالضبط هي الخاصية التي تكسر عملاء Apple.

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

اقتطع المستخدم من نطاق التأجير

أعطِ النفق مخطط عناوين يكون فيه المستخدم عضوًا في الشبكة الفرعية للمجموعة نفسها، ثم احجز ذلك العنوان حتى لا يُؤجَّر لأي عميل أبدًا. في هذا المثال المجموعة هي 10.180.7.0/24، والخادم يحتفظ بـ 10.180.7.1، والتأجيرات تبدأ من 10.180.7.2.

rightsourceip=10.180.7.2/24
rightdns=10.180.7.1

تتشارك بادئة المجموعة والمستخدم في شبكة فرعية واحدة، لذا فإن المسار الذي يحمل حركة النفق أصلًا يحمل الاستعلامات أيضًا. هذه الخاصية الواحدة هي ما يجعل الإصلاح قابلًا للنقل بين العملاء. في إعداد swanctl تظهر الحقيقتان نفسها كتعريف مجموعة وإعداد DNS على الاتصال بدلًا من صياغة ipsec.conf.

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

اربط المستخدم وأغلق المنفذ 53

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

interface: 10.180.7.1
access-control: 10.180.7.0/24 allow
access-control: 0.0.0.0/0 refuse

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

على قواعد الجدار الناري بعد ذلك أن تتفق مع التحكم في الوصول الخاص بالمستخدم. اقبل المنفذ 53 من المجموعة، وأسقطه من كل مكان آخر، لكن افحص ترتيب السلسلة أولًا.

iptables -A INPUT -p udp --dport 53 -s 10.180.7.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -s 10.180.7.0/24 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j DROP
iptables -A INPUT -p tcp --dport 53 -j DROP

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

تحقّق مما استقبله العميل فعليًا

افحص رؤية الخادم أولًا، ثم رؤية العميل، لأن الاثنين يختلفان بطرق مفيدة. تُظهر قائمة المجموعة أي عنوان تم تأجيره، وتُظهر قائمة اقترانات الأمان هل الاتصال قائم بالهوية المتوقعة.

swanctl --list-sas
swanctl --list-pools
dig +short @10.180.7.1 intranet.plant.example

الاستعلام المباشر يثبت أن المستخدم يجيب على عنوان المجموعة من مضيف يستطيع الوصول إليه. ولا يثبت أن Mac اختار ذلك الخادم. على macOS تسرد scutil --dns المستخدمين لكل خدمة محددة النطاق وهي أكثر معلومات من لوحة الملخص؛ وعلى Windows يُظهر Get-DnsClientServerAddress هل قبل محول النفق القيمة المدفوعة.

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

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