اخر تحديث في مايو 27, 2023 بواسطة حمدي بانجار
كيفية استخدام أسماء المضيفين في قواعد جدار الحماية في سيرفر الميكروتك
المشكلة :
كنت ترغب في إنشاء قواعد تصفية لجدار الحماية والتي ستشير إلى أسماء المضيف ( host names ) بدلاً من عناوين IP.
قد يكون سبب هذا ، على سبيل المثال ، أن اسم المضيف ديناميكي مثلا سوف يتم إنشاؤه بواسطة خدمة dyndns.
لعدة أسباب وجيهة جداً ، لا يمكن وضع أسماء المضيفين مباشرة في قواعد جدار الحماية.
على سبيل المثال ، لا يمكن عمل التالي:
/ip firewall filter add chain=ouput dst-address=www.mikrotik.com action=accept
في حين يبدو للوهلة الأولى فكرة جيدة للسماح بهذا التكوين ، وحركة المرور الإضافية والحمل الذي سيتم إنشاؤه إذا كان على الراوتر المعالجة (في هذه الحالة) “www.mikrotik.com” لكل رزمة واحدة تمر عبرة سيظهر في الواقع وببساطة انه غير عملي.
الحل :-
ملاحظة: تنطبق فقط على إصدارات RouterOS حتى الإصدار v6.36.
من الممكن تطبيق قواعد جدار الحماية على أساس اسم المضيف مع تفكير جانبي صغير. إذا اعتبر المرء أن قرارات DNS يتم تخزينها مؤقتًا (من الناحية النظرية لوقت قصير مثل TTL في السجل ، ولكن في الواقع لمقدار الوقت المسموح به من مسؤول النظام المحلل) ، فهناك نقطة قليلة جدًا في حل اسم المضيف لكل حزمة واحدة .
لهذا السبب ، يمكننا بسهولة كتابة برنامج نصي يقوم بحل وتخزين القيم في مكان ما يمكن استخدامها من قبل قواعد التصفية. يمكن تشغيل هذا البرنامج النصي بشكل منتظم كما هو مطلوب.
أفضل مكان لتخزين أسماء المضيفات وعناوين IP المرتبطة بها هو قائمة العناوين لأن هذا يسمح باستخدام هذه العناوين من قواعد التصفية مباشرة.
كما يسمح استخدام قوائم العناوين بدرجة أكبر من المرونة مما هو متاح إذا تم تحديث قواعد المرشح بشكل فردي. تسمح ميزة قائمة العناوين بتخزين ثلاث قيم :- تعليق comment – اسم القائمة list name – عنوان IP addresses .
المثال التالي يفترض استخدام الحقول كما يلي:
comment – اسم المضيف للاستخدام
list name – يبدأ بـ “host_” وينتهي بأي وصف
IP addresses – عنوان IP (إما 0.0.0.0 عند إنشاء الإدخال أو نتيجة الدقة إذا لم يكن كذلك)
السبب في استخدام التعليق لاسم المضيف بدلاً من اسم القائمة هو أن استخدام وصف في اسم القائمة يسمح بسهولة تجميع أسماء المضيفين معاً.
لذلك ، على سبيل المثال ، يمكن إضافة الإدخالات على النحو التالي:
/ip firewall address-list add address=0.0.0.0 comment=www.mikrotik.com list=host_mikrotik /ip firewall address-list add address=0.0.0.0 comment=forum.mikrotik.com list=host_mikrotik /ip firewall address-list add address=0.0.0.0 comment=wiki.mikrotik.com list=host_mikrotik
وقاعدة جدار الحماية firewall rule على النحو التالي:
/ip firewall filter add chain=ouput dst-address-list=host_mikrotik action=accept
هذا يسمح لجميع حركة المرور الصادرة إلى أي من عناوين IP المحددة في قائمة العناوين ‘host_mikrotik’.
كما هو الحال ، لا يمكن تحقيق أي شيء بهذه القاعدة لأن عناوين IP المسموح بها كلها 0.0.0.0. نحتاج إلى كتابة سكربت يوزع جميع إدخالات قائمة العناوين ويحل تلك التي تحتاج إلى حل.
/system script add \ name=resolvehostnames policy=write,read \ source="# define variables\r\ \n:local list\r\ \n:local comment\r\ \n:local newip\r\ \n:local oldip\r\ \n\r\ \n# Loop through each entry in the address list.\r\ \n:foreach i in=[/ip firewall address-list find] do={\r\ \n\r\ \n# Get the first five characters of the list name\r\ \n :set list [:pick [/ip firewall address-list get \$i list] 0 5]\r\ \n\r\ \n# If they're 'host_', then we've got a match - process it\r\ \n :if (\$list = \"host_\") do={\r\ \n\r\ \n# Get the comment for this address list item (this is the host name to u\ se)\r\ \n :set comment [/ip firewall address-list get \$i comment]\r\ \n :set oldip [/ip firewall address-list get \$i address]\r\ \n\r\ \n# Resolve it and set the address list entry accordingly.\r\ \n : if (\$newip != \$oldip) do={:set newip [:resolve \$comment]\r\ \n /ip firewall address-list set \$i address=\$newip}\r\ \n }\r\ \n }"
بمجرد أن يكون السكربت في مكانه ، يمكن جدولة ذلك. جرب كل ساعة لمعرفة ما إذا كان ذلك يمنحك ما تحتاج إليه:
/system scheduler add \ comment="" disabled=no interval=1h name=updatehostnames on-event=resolvehostnames \ start-date=jan/01/1970 start-time=00:00:00
اخلاء مسئولية :
يستخدم السكربت وظيفة RouterOS “resolve”.
لسوء الحظ (كما في 3.25) ، إذا كان اسم المضيف الذي يتم حله غير موجود أو إذا فشل resolvers لأي سبب من الأسباب ، فإن البرنامج النصي يعيد رسالة خطأ ويتوقف على الفور. ليس من الممكن اعتراض رسالة الخطأ هذه إلى التعليمات البرمجية حوله. لذا يجب توخي الحذر الشديد لإدخال أسماء المضيفين بشكل صحيح (ولا تشمل أي مسافات رائدة أو لاحقة).
لاحظ أيضًا أنه لأسباب واضحة ، قد لا يعمل ذلك مع أسماء المضيفين التي يتم حلها إلى عناوين IP متعددة.
أنتهى … استخدام أسماء المضيفين في قواعد جدار الحماية في سيرفر الميكروتك
كيفية استخدام أسماء المضيفين في قواعد جدار الحماية في سيرفر الميكروتك
الى هنا نكون وصلنا الى نهاية موضوعنا اليوم كيفية استخدام أسماء المضيفين في قواعد جدار الحماية في سيرفر الميكروتك والذي نتمنى ان ينال رضاكم واعجابكم والى اللقاء في موضوع جديد شيق ورائع وحتى ذلك الحين لاتنسو الاهتمام بصحتكم وحفظكم الله …
اذا اعجبك الموضوع كيفية استخدام أسماء المضيفين في قواعد جدار الحماية في سيرفر الميكروتك لاتنسى ان تقوم بمشاركتة على مواقع التواصل الاجتماعي ليستفيذ منه الغير,
كما نتمنى اشتراككم في قناة الموقع على اليوتيوب بالضغط هنا وكذلك الاشتراك في مجموعة الفيس بوك بالضغط هنا والتيليقرام بالضغط هنا وكذلك التسجيل بالموقع لتتمكنو من تحميل بعض الملفات الخاصة بالأعضاء
كما يمكنكم رفع ملفاتكم مجانا على مركز ملفات حضرموت التقنية بالضغط هنا ولاتترددو في وضع أي استفسارات للرد عليكم .
دمتم بكل ود والسلام عليكم ورحمة الله وبركاتة … حضرموت التقنية