اذهب إلى المحتوى الرئيسي
الشبكات والميكروتك

حماية البورت 80 وحل مشكلة استنزاف الرصيد في شبكات MikroTik HotSpot

شرح تركيب سكربت لحماية البورت 80 والحد من طلبات HTTP غير المصرح بها الصادرة من مستخدمي HotSpot قبل تسجيل الدخول، مع تحديد عنوان صفحة الدخول ورنج الشبكة وترتيب قواعد Mangle وFirewall Filter بطريقة صحيحة.
حماية البورت 80 وحل مشكلة استنزاف الرصيد في شبكات MikroTik HotSpot
حماية البورت 80 ومنع طلبات HTTP غير المصرح بها في شبكة MikroTik HotSpot

حماية البورت 80 في شبكات MikroTik HotSpot

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

يعتمد هذا الحل على مراقبة طلبات HTTP الصادرة من عملاء HotSpot غير المسجلين، والسماح بطلبات محددة تحتاج إليها الأجهزة وصفحة تسجيل الدخول، ثم تعليم بقية الحزم المستهدفة وإسقاطها داخل Firewall Filter.

تنبيه فني: هذا السكربت لا يغلق البورت 80 بالكامل، ولا يمنع استخدام HTTP للمستخدمين الذين سجلوا الدخول. الحماية تستهدف بصورة أساسية عملاء HotSpot غير المصرح لهم قبل تسجيل الدخول.

متى يمكن استخدام هذه الحماية؟

يمكن تجربة الحماية عند ملاحظة واحد أو أكثر من الأعراض التالية:

  • وجود عدد كبير من الاتصالات على البورت 80 من أجهزة غير مسجلة.
  • استمرار بعض الأجهزة في إرسال طلبات HTTP قبل تسجيل الدخول.
  • زيادة غير طبيعية في الاتصالات الخاصة بصفحة HotSpot.
  • وجود استهلاك أو احتساب غير مفهوم قبل تسجيل المستخدم.
  • عودة المشكلة بعد توصيل عدد كبير من الهواتف بالشبكة.
  • الحاجة إلى تقييد طلبات HTTP غير الضرورية قبل المصادقة.

كيف يعمل السكربت؟

يتكون السكربت من قسمين رئيسيين:

  1. Mangle: لاستثناء الطلبات الضرورية وتعليم بقية حزم البورت 80 المستهدفة.
  2. Firewall Filter: لإسقاط الحزم التي حصلت على العلامة 80port.

تعمل القواعد فقط على حزم HotSpot القادمة من العملاء الذين لم تتم مصادقتهم، باستخدام:

Code
hotspot=from-client,!auth

متطلبات التنفيذ

قبل تركيب السكربت، يجب معرفة البيانات التالية:

  • عنوان IP الخاص بصفحة تسجيل الدخول.
  • رنج عناوين IP المستخدم في شبكتك.
  • مكان قواعد HotSpot داخل Mangle وFirewall Filter.
  • وجود نسخة احتياطية حديثة من إعدادات الراوتر.
  • إمكانية الدخول إلى MikroTik عبر Winbox باستخدام MAC Address.

أخذ نسخة احتياطية قبل التنفيذ

يفضل أخذ نسخة احتياطية وملف تصدير قبل تعديل الجدار الناري.

MikroTik / Terminal
/system backup save name=before-port80-protection

/export file=before-port80-protection

سيظهر الملفان داخل قائمة:

Code
Files

الخطوة الأولى: معرفة IP صفحة تسجيل الدخول

انتقل من Winbox إلى:

Code
IP → DNS → Static

ابحث عن اسم نطاق صفحة الدخول، ثم تحقق من عنوان IP المرتبط به.

يمكن عرض سجلات DNS Static من Terminal باستخدام:

MikroTik / Terminal
/ip dns static print detail

في مثالنا سنفترض أن عنوان صفحة الدخول هو:

Code
172.20.25.1

مهم: لا تستخدم هذا العنوان كما هو إلا إذا كان هو فعلًا عنوان صفحة الدخول في شبكتك. استبدله بعنوان صفحتك الحقيقي.

الخطوة الثانية: معرفة رنج الشبكة

انتقل إلى:

Code
IP → Addresses

أو استخدم الأمر التالي:

MikroTik / Terminal
/ip address print detail

في مثالنا سنستخدم الرنج:

Code
172.16.0.0/12

يجب استبدال هذا الرنج برنج شبكتك الحقيقي قبل تنفيذ السكربت.

أمثلة على رنجات الشبكات

Code
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
192.168.88.0/24

لا تختر رنجًا أوسع من شبكتك دون حاجة، حتى لا يتم استثناء عناوين غير مطلوبة.

القيم التي يجب تعديلها

قبل النسخ، عدّل القيمتين التاليتين:

عنوان صفحة HotSpot

Code
172.20.25.1

رنج الشبكة المحلية

Code
172.16.0.0/12

سكربت حماية البورت 80

بعد تعديل عنوان الصفحة ورنج الشبكة، انسخ السكربت التالي إلى Terminal:

MikroTik / Terminal
/ip firewall mangle

add action=accept chain=prerouting content=samsun dst-port=80 hotspot=from-client,!auth protocol=tcp comment="PORT80-ALLOW-SAMSUNG"

add action=accept chain=prerouting content=apple dst-port=80 hotspot=from-client,!auth protocol=tcp comment="PORT80-ALLOW-APPLE"

add action=accept chain=prerouting content=204 dst-port=80 hotspot=from-client,!auth protocol=tcp comment="PORT80-ALLOW-204"

add action=accept chain=prerouting content=htm dst-port=80 hotspot=from-client,!auth protocol=tcp comment="PORT80-ALLOW-HTML"

add action=accept chain=prerouting content=rom dst-port=80 hotspot=from-client,!auth protocol=tcp comment="PORT80-ALLOW-ROM"

add action=accept chain=prerouting content=txt dst-port=80 hotspot=from-client,!auth protocol=tcp comment="PORT80-ALLOW-TXT"

add action=accept chain=prerouting content=gener dst-port=80 hotspot=from-client,!auth protocol=tcp comment="PORT80-ALLOW-GENERATE"

add action=accept chain=prerouting dst-address=172.20.25.1 dst-port=80 hotspot=from-client,!auth protocol=tcp comment="PORT80-ALLOW-LOGIN-PAGE"

add action=accept chain=prerouting dst-address=172.16.0.0/12 dst-port=80 hotspot=from-client,!auth protocol=tcp comment="PORT80-ALLOW-LOCAL-RANGE"

add action=mark-packet chain=prerouting connection-state=invalid,established,related,untracked dst-port=80 hotspot=from-client,!auth new-packet-mark=80port passthrough=no protocol=tcp comment="PORT80-MARK-UNAUTH"

/ip firewall filter

add action=drop chain=input packet-mark=80port place-before=0 comment="salmandahmash"

شرح قواعد الاستثناء

تحتوي بداية السكربت على عدة قواعد تستخدم:

Code
action=accept

وظيفة هذه القواعد هي استثناء الطلبات المطابقة من الوصول إلى قاعدة تعليم الحزم الموجودة أسفلها داخل Mangle.

تشمل الاستثناءات بعض طلبات اكتشاف الاتصال المستخدمة بواسطة الهواتف والأنظمة، بالإضافة إلى ملفات وطلبات HTTP معينة.

استثناء صفحة تسجيل الدخول

تقوم القاعدة التالية بالسماح بالوصول إلى عنوان صفحة تسجيل الدخول:

Code
add action=accept chain=prerouting dst-address=172.20.25.1 dst-port=80 hotspot=from-client,!auth protocol=tcp comment="PORT80-ALLOW-LOGIN-PAGE"

يجب استبدال:

Code
172.20.25.1

بعنوان IP الحقيقي الخاص بصفحة تسجيل الدخول لديك.

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

استثناء رنج الشبكة المحلية

تقوم القاعدة التالية باستثناء الاتصالات المتجهة إلى رنج الشبكة:

Code
add action=accept chain=prerouting dst-address=172.16.0.0/12 dst-port=80 hotspot=from-client,!auth protocol=tcp comment="PORT80-ALLOW-LOCAL-RANGE"

استبدل:

Code
172.16.0.0/12

برنج شبكتك الحقيقي.

تعليم حزم البورت 80

تقوم القاعدة التالية بمنح الحزم المستهدفة علامة باسم:

Code
80port

القاعدة:

Code
add action=mark-packet chain=prerouting connection-state=invalid,established,related,untracked dst-port=80 hotspot=from-client,!auth new-packet-mark=80port passthrough=no protocol=tcp comment="PORT80-MARK-UNAUTH"

تستهدف القاعدة اتصالات TCP على البورت 80، الصادرة من عملاء HotSpot غير المسجلين، بعد استثناء الطلبات السابقة.

إسقاط الحزم داخل Firewall Filter

تقوم القاعدة التالية بإسقاط الحزم التي تحمل العلامة 80port:

Code
add action=drop chain=input packet-mark=80port place-before=0 comment="salmandahmash"

تم استخدام:

Code
place-before=0

حتى تتم إضافة قاعدة الحماية في أعلى قائمة Firewall Filter.

التأكد من مكان قاعدة Filter

انتقل إلى:

Code
IP → Firewall → Filter Rules

وتأكد من وجود القاعدة التي تحمل التعليق:

Code
salmandahmash

في أعلى قائمة Filter Rules.

يمكن التأكد من Terminal باستخدام:

MikroTik / Terminal
/ip firewall filter print detail where comment="salmandahmash"

ويمكن نقلها إلى أعلى القائمة بالأمر التالي:

MikroTik / Terminal
/ip firewall filter move [find where comment="salmandahmash"] 0

ترتيب قواعد Mangle

يجب أن تكون قواعد الاستثناء أولًا، ثم قاعدة تعليم الحزم في آخر مجموعة الحماية.

الترتيب الصحيح هو:

  1. استثناء طلبات الأجهزة والملفات الضرورية.
  2. استثناء عنوان صفحة HotSpot.
  3. استثناء رنج الشبكة المحلية.
  4. قاعدة تعليم الحزم باسم 80port.
  5. قاعدة الإسقاط داخل Firewall Filter.

انتقل إلى:

Code
IP → Firewall → Mangle

وتأكد من أن قواعد الحماية موجودة قبل أي قواعد أخرى قد تقبل الحزم أو تغير مسار معالجتها.

فحص عدادات الحماية

بعد تشغيل الحماية، يمكن مراقبة عدادات القواعد للتأكد من مرور الحزم عليها.

فحص قواعد Mangle

MikroTik / Terminal
/ip firewall mangle print stats where comment~"PORT80-"

فحص قاعدة الإسقاط

MikroTik / Terminal
/ip firewall filter print stats where comment="salmandahmash"

إذا بدأت أعداد Packets وBytes في الارتفاع، فهذا يعني أن القواعد تستقبل حزمًا مطابقة.

اختبار صفحة HotSpot بعد التركيب

بعد تركيب الحماية، نفّذ الاختبارات التالية:

  1. افصل هاتفًا تجريبيًا من HotSpot.
  2. احذف Cookie أو تسجيل الدخول السابق.
  3. أعد الاتصال بالشبكة.
  4. افتح موقعًا يعمل عبر HTTP أو افتح صفحة الشبكة مباشرة.
  5. تأكد من ظهور صفحة تسجيل الدخول.
  6. سجل الدخول باستخدام كرت تجريبي.
  7. تأكد من عمل التصفح بعد المصادقة.
  8. راقب عدادات Mangle وFilter.

إذا توقفت صفحة الدخول

إذا لم تظهر صفحة HotSpot بعد تركيب السكربت، تحقق من الآتي:

  • صحة عنوان IP الخاص بصفحة الدخول.
  • صحة رنج الشبكة المحلية.
  • ترتيب قواعد Mangle.
  • عدم وجود قاعدة Drop أخرى أعلى الاستثناءات.
  • عمل DNS الخاص بالشبكة.
  • إعداد DNS Name داخل HotSpot Profile.
  • وجود قواعد HotSpot الديناميكية وعدم تعطيلها.

يمكن تعطيل قاعدة Filter مؤقتًا للاختبار:

MikroTik / Terminal
/ip firewall filter disable [find where comment="salmandahmash"]

ولإعادة تشغيلها:

MikroTik / Terminal
/ip firewall filter enable [find where comment="salmandahmash"]

إزالة الحماية بالكامل

لإزالة القواعد التي أضيفت بواسطة هذا الشرح:

MikroTik / Terminal
/ip firewall mangle remove [find where comment~"PORT80-"]

/ip firewall filter remove [find where comment="salmandahmash"]

تنبيهات مهمة

  • لا تنفذ السكربت قبل تعديل عنوان صفحة الدخول ورنج الشبكة.
  • احتفظ بنسخة احتياطية قبل تعديل Firewall.
  • اختبر الحماية على جهاز واحد قبل اعتمادها على جميع المستخدمين.
  • قد تختلف النتيجة حسب إصدار RouterOS وطريقة إعداد HotSpot.
  • لا تعتبر الحماية بديلًا عن فحص نظام المحاسبة وإعدادات User Manager أو RADIUS.
  • لا تثبت أن كل مشكلة استنزاف رصيد سببها البورت 80.
  • افحص الجلسات والـ Accounting والـ Shared Users والـ Keepalive Timeout إذا استمرت المشكلة.
  • استخدام كلمات عامة داخل Content Matcher قد يطابق طلبات غير متوقعة، لذلك يجب مراقبة العدادات والنتائج.

في حال استمرار استنزاف الرصيد

إذا استمرت المشكلة بعد تركيب الحماية، افحص العناصر التالية:

  • إعدادات HotSpot User Profiles.
  • طريقة احتساب الوقت والحجم.
  • RADIUS Accounting وInterim Update.
  • إعداد Shared Users.
  • بقاء جلسات المستخدمين القديمة.
  • Cookies وMAC Cookies.
  • قواعد NAT وFirewall الديناميكية.
  • وجود أجهزة تستخدم نفس اسم المستخدم.
  • التحميلات والتحديثات التلقائية بعد تسجيل الدخول.
  • تزامن الوقت والتاريخ في الراوتر ونظام المحاسبة.

الخلاصة

يساعد هذا السكربت في تنظيم طلبات HTTP على البورت 80 الصادرة من عملاء MikroTik HotSpot غير المسجلين، من خلال استثناء صفحة الدخول والطلبات الضرورية، ثم تعليم بقية الحزم المستهدفة وإسقاطها عبر Firewall Filter.

نجاح الحماية يعتمد على إدخال عنوان صفحة HotSpot ورنج الشبكة بصورة صحيحة، ووضع القواعد في الترتيب المناسب، ثم اختبار صفحة الدخول والتصفح ومراقبة عدادات الجدار الناري.

المصدر: إعداد وتحرير: منصة هايبر إكس

الوسوم:

#MikroTik #Hotspot #Firewall #RouterOS #مايكروتك #البورت 80 #Port 80 #Mangle #استنزاف الرصيد #حماية الشبكات #صفحة الهوتسبوت #Packet Mark #شبكات الإنترنت

التعليقات

0 تعليق منشور. التعليقات الجديدة تمر بالمراجعة للحماية من السبام.

لا توجد تعليقات منشورة بعد.