ProxyTracer: مانع VPN والوكلاء

:information_source: الملخص كشف وحظر حركة مرور VPN و Tor والوكلاء أثناء تسجيل المستخدمين، وتسجيل الدخول، أو بشكل عام باستخدام واجهة برمجة تطبيقات ProxyTracer.
:hammer_and_wrench: رابط المستودع https://github.com/ProxyTracer/discourse-proxytracer
:open_book: دليل التثبيت كيفية تثبيت الإضافات في Discourse

تستخدم هذه الإضافة واجهة برمجة تطبيقات ProxyTracer لكشف وحظر حركة مرور VPN و Tor والوكلاء في Discourse.

الميزات

  • تمنحك تحكمًا دقيقًا في حظر مستخدمي VPN و Tor والوكلاء أثناء تسجيل مستخدمين جدد، أو مصادقة مستخدمين حاليين، أو بشكل عام لجميع زوار الموقع. إذا كنت مرتاحًا لوجود مستخدمين من VPN و Tor والوكلاء لديهم صلاحية قراءة في منتداك، فيمكنك توفير طلبات الـ API وتمكين الميزة فقط أثناء تسجيل المستخدمين والمصادقة.
  • تستخدم التخزين المؤقت لتخزين تقييمات عناوين IP الحديثة، مما يوفر طلبات إلى الـ API ويقلل من زمن الاستجابة. يمكنك التحكم في المدة التي يتم فيها تذكر تقييم عنوان IP من خلال الإعدادات.
  • في حالة حدوث مهلة زمنية للـ API أو فشل في الشبكة، تعطي الإضافة الأولوية لوصول المستخدم لمنع الحجب الواسع النطاق. يمكن تغيير هذا السلوك عبر الخيارات.
  • دعم مدمج لإدراج عناوين IP محددة ونطاقات CIDR في القائمة البيضاء.

الإعداد

  1. احصل على مفتاح API قياسي من لوحة تحكم ProxyTracer.
  2. انتقل إلى لوحة إدارة Discourse: Admin → Plugins → ProxyTracer للعثور على إعدادات ProxyTracer.
  3. أدخل مفتاح الـ API الخاص بك في حقل ProxyTracer API Key.
  4. فعّل معايير الحماية عن طريق التبديل بين Enabled during Signup، Enabled during Login و/أو Enabled for All Visitors.
  5. أضف أي عناوين IP موثوقة أو نطاقات CIDR إلى قائمة Whitelisted IPs.
  6. (اختياري) اضبط مهلة الـ API ووقت انتهاء صلاحية التخزين المؤقت في Redis ليتناسب مع متطلبات حركة المرور الخاصة بخادمك.
  7. (اختياري) قم بتخصيص رسالة الحظر التي تظهر للمستخدمين المحظورين. على سبيل المثال، يمكنك إضافة تعليمات للتواصل مع إدارة الموقع في حال اعتقدوا أن الحظر غير مبرر وأنهم لا يصلون إلى الموقع عبر وكيل أو Tor أو VPN.

الإعدادات

جدول الإعدادات ووصف كل إعداد:

الاسم الوصف
API Timeout (ms) المدة الزمنية للانتظار قبل انتهاء مهلة استجابة الـ API.
Cache Duration (hours) المدة الزمنية لتذكر عنوان IP قبل التحقق من الـ API مرة أخرى.
Fail Open on Error في حال تعطل الـ API أو انتهاء مهلته، اسمح للمستخدم بالتسجيل أو تسجيل الدخول على أي حال لمنع حجب الجميع.
Enabled during Signup حظر الوكلاء و VPN عند محاولة مستخدم جديد التسجيل.
Enabled during Login حظر الوكلاء و VPN عند محاولة مستخدم حالي تسجيل الدخول.
Enabled for All Visitors حظر الوكلاء و VPN من الوصول أو عرض أي صفحة في المنتدى. (تحذير: هذا يفحص كل زائر ويستخدم حصتك من الـ API بشكل مكثف).
Block Message رسالة الخطأ الدقيقة التي تظهر للمستخدم عند حظره.
Whitelisted IPs عناوين IP أو نطاقات CIDR (مثل 192.168.1.0/24) مسموح لها بتجاوز الحظر بشكل صارم.

إعداد الشبكة: Cloudflare & الوكلاء العكسيون

:warning: لكي تعمل ProxyTracer بشكل فعال، يجب أن تتلقى تطبيق Discourse عنوان IP الفعلي للعميل.

لضمان التوجيه الصحيح لعنوان IP، يمكنك اتباع هذه التعليمات التفصيلية.

الوصول الطارئ

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


إذا كنت ترغب في اختبار الأمور، يمكنك التسجيل في ProxyTracer والحصول على بعض اعتمادات الـ API المجانية للاختبار.

4 إعجابات

هل تتجدد الرصيد في بداية كل شهر؟

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

ألا يؤدي هذا إلى إبطال الغرض الكامل من الإضافة؟ يمكن لأي شخص استخدام وضع الأمان.

إعجاب واحد (1)

يعتمد الأمر على الإعدادات. يوجد إعداد في الموقع يسمح لك بتعطيل الوضع الآمن، وهو مفيد لمكون المواضيع المقيدة ومكونات/إضافات أخرى لا ينبغي للمستخدمين تعطيلها بسهولة (مثل الإعلانات، بوابة الضيوف، وما إلى ذلك). لكن في الوقت الذي تكون فيه غير مسجل الدخول، قد يجعل ذلك استخدام الوضع الآمن أكثر صعوبة للمسؤولين. أعتقد أنهم ما زالوا يستطيعون تفعيله باستخدام تسجيل الدخول كمشرف.

بالنسبة لهذه الإضافة، أشك في أن الوضع الآمن يساعد. الوضع الآمن يعطل فقط الجزء الأمامي من الإضافات، وهذه الإضافة مكتوبة بالكامل بلغة Ruby. لذا لا أعتقد أن تعطيل تخصيصات JavaScript مفيد. هذه الحقيقة تجعلني متشككًا قليلاً تجاه الإضافة، تمامًا مثل حقيقة أنها تتضمن ملف about.json وكأنها مكون سمة. لكن في النهاية، كل شخص مسؤول عن الكود الذي يثبته في منتداه.

إعجابَين (2)

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

cd /var/discourse
./launcher enter app
rails c
SiteSetting.proxytracer_enabled = false
exit
exit

يمكنني تأكيد أن الوضع الآمن غير متاح عندما تكون إعدادة “مفعلة لجميع الزوار” مفعلة، ويحاول شخص ما الدخول إلى الوضع الآمن أثناء الاتصال عبر شبكة VPN/وكيل.

في الواقع، ملف about.json غير ضروري للإضافات القياسية، لذا قمت بإزالته من المستودع.

شكرًا لك على كل ملاحظاتك @Moin. إذا كان لديك أي ملاحظات أو اقتراحات أخرى، فلا تتردد في تركها هنا. الكود مفتوح المصدر بالكامل، وأي مساهمة موضع ترحيب: GitHub - ProxyTracer/discourse-proxytracer.

@ProxyTracer عندما أحاول تسجيل الدخول عبر Cloudflare Warp، تظهر لي رسالة “خطأ غير معروف” بدلاً من رسالة الحظر.

ملاحظة ممتازة! يجب أن يكون هذا قد تم إصلاحه في الإصدار 0.1.1. هل يمكنك تأكيد ما إذا كان الترقية يحل المشكلة بالنسبة لك؟

إعجاب واحد (1)