Flarum
التكامل الرسمي لـ ProxyTracer مع منصة Flarum. يضيف هذا الامتداد استخبارات IP المؤسسية لمجتمعك، ويكتشف تلقائياً شبكات VPN والبروكسيات ومراكز البيانات وعقد Tor المعروفة، ويمنحك خيار منعهم من التسجيل، أو تسجيل الدخول، أو عرض منتدى Flarum بالكامل.
يمكن العثور على الكود المصدري الكامل على Github. يتم توزيع الامتداد عبر Packagist.
الميزات
- تحكم دقيق يسمح للمشرفين بفرض التحقق من IP أثناء تسجيل المستخدمين الجدد، أو مصادقة المستخدمين الحاليين، أو عالمياً لجميع زوار الموقع.
- تخزين مؤقت مدمج باستخدام واجهة Laravel Cache الأصلية في Flarum يخزن تقييمات عناوين IP الحديثة، مما يقلل استدعاءات API الخارجية ويضمن صفر زمن تأخير.
- في حال انقضاء مهلة API أو انقطاع الشبكة، يمنح الامتداد الأولوية لوصول المستخدم (fail-open) لمنع حالات الحظر واسعة النطاق. يمكن تبديل هذا السلوك في الإعدادات.
-
دعم مدمج للقائمة البيضاء لعناوين IP المحددة ونطاقات شبكات CIDR (مثل
192.168.1.0/24).
التثبيت
-
اتصل بخادمك عبر SSH وتوجه إلى مجلد جذر Flarum (حيث يوجد ملف
composer.json):cd /var/www/flarum -
ثبت الامتداد عبر Composer:
composer require proxytracer/flarum-proxytracer -
امسح الذاكرة المؤقتة لـ Flarum لتجميع أصول الواجهة الأمامية الجديدة:
php flarum cache:clear
التكوين:
- احصل على مفتاح API قياسي من لوحة تحكم ProxyTracer.
- انتقل إلى لوحة إدارة Flarum: الإدارة ← الميزات ← ProxyTracer لفتح نافذة الإعدادات.
-
أدخل مفتاح API الخاص بك في حقل
API Key. -
قم بتفعيل معلمات الحماية بتبديل
Block SignupsوBlock Loginsو/أوBlock All Site Access. -
أضف أي عناوين IP أو نطاقات CIDR موثوقة إلى
IP Whitelist(سطر لكل عنوان). - (اختياري) اضبط مهلة API وحدود انتهاء صلاحية التخزين المؤقت بما يناسب متطلبات حركة المرور لديك.
- (اختياري) خصص رسالة الحظر التي تظهر للمستخدمين المحظورين. على سبيل المثال، يمكنك إضافة إرشادات للتواصل مع إدارة الموقع في حال اعتقدوا أن الحظر غير مبرر.

تكوين الشبكة: Cloudflare والبروكسيات العكسية
يرجى اتباع إرشادات التكوين أدناه المطابقة لبنية خادمك لضمان التمرير الدقيق لـ IP.
التكامل المباشر مع Cloudflare (التثبيت القياسي)
إذا كان خادم Flarum الخاص بك يتصل مباشرة بالإنترنت ويستخدم Cloudflare حصرياً لـ DNS والبروكسي الحافي، يمكنك استخدام تجاوز Cloudflare المدمج في الامتداد.
داخل إعدادات ProxyTracer في Flarum، ما عليك سوى تفعيل خيار Extract IPs from Cloudflare Headers.
سيستخرج ProxyTracer تلقائياً عنوان IP الحقيقي للعميل من ترويسة CF-Connecting-IP الخاصة بـ Cloudflare. ملاحظة: قم بتفعيل هذا الإعداد فقط إذا كان خادمك يواجه Cloudflare مباشرة. قد يسمح تفعيل هذا في إعداد لا يستخدم Cloudflare للمستخدمين الخبثاء بتجاوز القيود بتزييف ترويسات IP.
بنية البروكسي متعددة الطبقات (Cloudflare + بروكسي عكسي محلي)
ينطبق هذا إذا كان مثيل Flarum موجهاً عبر لوحة إدارة خادم محلية أو بروكسي عكسي (مثل Nginx Proxy Manager أو CloudPanel أو Traefik أو Plesk) موجود خلف Cloudflare. في بنية البروكسي العكسي متعددة الطبقات (أو المزدوجة)، لا يكفي التبديل البسيط لأن حركة المرور تسلم لـ Flarum بواسطة واجهة شبكتك المحلية وليس مباشرة من Cloudflare.
يجب عليك تكوين البروكسي العكسي المحلي لاستخراج IP الحقيقي للعميل من ترويسة CF-Connecting-IP، ولكن فقط لحركة المرور القادمة من عناوين IP الموثوقة لـ Cloudflare. تمرير هذه الترويسة دون التحقق من المصدر يسمح للمستخدمين الخبثاء بتجاوز الحدود والحظر بتزييف عنوان IP الخاص بهم.
# عناوين IPv4 لـ Cloudflare، راجع [https://www.cloudflare.com/ips/](https://www.cloudflare.com/ips/)
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;
# عناوين IPv6 لـ Cloudflare
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;
real_ip_header CF-Connecting-IP;بعد ذلك، حدد تعليمة location /. بفضل التكوين أعلاه، سيحل Nginx الآن $remote_addr بأمان إلى عنوان IP الحقيقي للعميل فقط إذا مر الطلب بالفعل عبر Cloudflare. عدل ترويسات تمرير IP كالتالي:
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
...
}احفظ التكوين وأعد تحميل خدمة Nginx (systemctl reload nginx).
الوصول في حالات الطوارئ
cd /var/www/flarum
php flarum extension:disable proxytracer-proxytracer
php flarum cache:clearsettings، وحدد مفتاح proxytracer.block_all، وغيّر قيمته إلى 0، ثم شغّل php flarum cache:clear.الترخيص
هذا البرنامج مرخص بموجب رخصة جنو أفيرو العمومية الإصدار 3.0 (AGPLv3). راجع ملف LICENSE للتفاصيل الكاملة.