مستخدم MikroTik VPN يصل إلى أكثر مما ينبغي: احصر النطاق في مضيف واحد ومنفذ واحد
يمكن لملف PPP أن يضع عنوان النفق المخصص في قائمة عناوين، ويمكن لسلسلة قفز واحدة أن تسمح بمضيف واحد ومنفذ واحد قبل الإسقاط.
يرتفع النفق، وينجح تسجيل الدخول، ويستجيب كل مضيف على الشبكة. هذا ليس VPN معطلاً؛ بل VPN بلا نموذج أذونات. يصادق RouterOS على الحساب ثم يوجّه حزمه مثل أي حساب آخر، لذا على الجدار الناري أن يوفر الحد. وإضافة هذا الحد دون كسر تسجيل الدخول هي المهمة كلها.
المصادقة تنتهي حيث يبدأ الإذن
بمجرد أن تقوم جلسة PPP، تدخل حزم العميل سلسلة forward مثل حركة المرور من أي واجهة أخرى. إذا كانت سياسة forward في الموجّه متسامحة، فإن المستشار يرث هذا التسامح عند تسجيل الدخول. لم يحمل الحساب نطاقاً قط، لذا لا يوجد شيء على الحساب لتغييره. كُتبت مجموعة القواعد للموظفين وانضمت الجلسة الجديدة إليها ببساطة.
تحقق من المسار الذي يخصه الطلب قبل كتابة أي شيء. حركة المرور إلى المضيفين خلف الموجّه تعبر forward، بينما حركة المرور إلى الموجّه نفسه، بما في ذلك winbox وSSH، تعبر input. النطاق الذي يغطي forward فقط يترك الجهاز مفتوحاً للعميل نفسه.
تحتاج السلسلتان إلى قرار، حتى لو كان القرار إبقاء input مغلقاً. هذا الاختيار ينتمي إلى طلب الوصول، لا إلى فكرة لاحقة.
أرفق الجلسة بقائمة مسماة
يمكن لملف PPP أن يضع العنوان الذي يمنحه في قائمة عناوين مسمّاة عند بدء الجلسة. هذا يحوّل عنوان نفق عابراً إلى شيء يمكن للجدار الناري مطابقته بالاسم، ويختفي الإدخال عند انتهاء الجلسة. ثم يرث الحساب النطاق من ملفه بدلاً من قاعدة تثبّت عنواناً بشكل صلب.
أنشئ الملف أولاً، ثم اربط السر به صراحةً. السر الذي لا يزال يشير إلى الملف الافتراضي يعيد إنتاج المشكلة الأصلية.
سمّ الملف والقائمة بحيث تكون مهامهما واضحة، وعلّق على كليهما بمرجع الطلب. يمكن لملف واحد أن يخدم عدة أشخاص بالنطاق نفسه، بينما لا تزال القائمة تحدد كل جلسة حية. هذا أرخص في المراجعة من قاعدة لكل شخص.
/ppp profile add name=scoped-consultant remote-address=consultant-pool address-list=vpn-scoped-clients
/ppp secret add name=consultant password=... service=ovpn profile=scoped-consultant
سجّل الخدمة المسموح بها في قائمة واحدة
ضع الخادم المسموح به في قائمة عناوين خاصة به بدلاً من تضمين العنوان في قاعدة تصفية. يمكن تدقيق القائمة وتوسيعها والتعليق عليها، ولا تتغير القاعدة التي تستهلكها عندما ينتقل الخادم. يبدو الإدخال الواحد مبالغاً فيه حتى يصل المضيف الثاني، وهو ما يحدث عادةً.
طابق قائمة عندما يكون العنوان ديناميكياً أو موزعاً للحمل، وطابق العنوان مباشرةً عندما يكون محجوزاً ومستقراً. أي اختيار يُقرأ بوضوح إذا ذكر التعليق الخدمة والمالك.
احصر البروتوكول والمنفذ إضافة إلى المضيف. القبول لمضيف بلا تقييد للمنفذ يفتح كل خدمة يشغلها ذلك المضيف، وهو أوسع مما تقصده معظم طلبات الوصول. المنفذ جزء من الإذن، وليس تفصيلاً يُضاف لاحقاً.
/ip firewall address-list add list=vpn-targets address=10.0.0.10 comment="consultant RDP target"
رتّب القفز قبل أي قبول واسع
ترسل قاعدة القفز حركة المرور الممرَّرة من القائمة المحصورة إلى سلسلة خاصة تتسع فيها السياسة كلها في ثلاثة أسطر. تقبل القاعدة الأولى الوجهة والمنفذ المسموح بهما، وتسقط القاعدة الأخيرة كل شيء آخر. يجب أن تقع القفزة فوق أي قبول واسع في forward، لأن القبول الأسبق يعني أن القفزة لا تُنفّذ أبداً. أبقِ قبول established وrelated قبل القفزة حتى تظل حركة العودة تتدفق.
تحقق من أن لا قاعدة fasttrack يمكنها حمل هذه الحركة عبر السلسلة المحصورة. يتجاوز fasttrack بقية مسار التصفية، والجلسة المحصورة التي تُعامَل بـ fasttrack ليست محصورة إطلاقاً.
كرر القرار لسلسلة input إذا كان يجب أن تكون خدمات الموجّه نفسه غير قابلة للوصول. النطاق الذي يحجب الحركة الممرَّرة ويترك winbox مفتوحاً نصف منجز فقط.
/ip firewall filter
add chain=forward action=jump jump-target=scoped-vpn src-address-list=vpn-scoped-clients
add chain=scoped-vpn action=accept protocol=tcp dst-address-list=vpn-targets dst-port=3389
add chain=scoped-vpn action=drop
تحقق باستخدام العدادات وعضوية القائمة
من العميل، اختبر الخدمة المسموح بها وخدمة يجب أن تفشل، ثم اقرأ إحصاءات القواعد على الموجّه. تُظهر عدادات القبول والإسقاط أي مسار سلكته كل حزمة، وهو ما لا يستطيع العميل رؤيته. تأكد أيضاً من ظهور عنوان الجلسة الحية في القائمة المحصورة.
القائمة الفارغة تعني أن الحساب على ملف آخر أو أن الملف فقد إعداد قائمة العناوين. عداد إسقاط متصاعد مع فشل الخدمة المسموح بها يعني أن الوجهة أو المنفذ لا يطابق ما يرسله العميل.
اختبر الخدمة نفسها بالاسم وبالعنوان قبل استنتاج أي شيء. يبدو فشل تحليل الاسم تماماً كمنفذ محجوب من جهة العميل. ثم سجّل الملف والقائمتين والخدمة المسموح بها الواحدة في طلب الوصول حتى تُقارن المراجعة التالية بدلاً من إعادة البناء.
/ip firewall filter print stats where chain=scoped-vpn
/ip firewall address-list print where list=vpn-scoped-clients