إنتقل إلى المحتوى الرئيسي

إعداد الوكيل

إذا كان WHMCS خلف وكيل عكسي أو موزع حمل، فقد يكون عنوان الطرف المباشر الذي يراه PHP هو عنوان الوكيل، وليس عنوان الزائر الأصلي.

يمكن لـ Extendy GeoShield استخدام X-Forwarded-For فقط عندما يكون مسار الوكيل موثوقاً بشكل صريح. يمنع هذا العملاء من تزوير رأس X-Forwarded-For والتحكم في عنوان IP المستخدم لبحث GeoIP.

متى تستخدم وضع X-Forwarded-For

استخدم وضع X-Forwarded-For فقط عندما:

  • يكون WHMCS خلف وكيل عكسي معروف، أو موزع حمل، أو طبقة طرفية;
  • يرسل ذلك الوكيل X-Forwarded-For بشكل موثوق;
  • يمكن مطابقة عنوان الطرف المباشر الذي يراه PHP مع عنوان IP أو نطاق CIDR لوكيل موثوق مكوّن;
  • يكون الوصول المباشر من العملاء إلى خادم WHMCS الأصلي مقيداً حيثما أمكن.

لا تستخدم هذا الوضع لمجرد أن رأس X-Forwarded-For يظهر في الطلبات. الرؤوس القادمة من عملاء غير موثوقين ليست آمنة.

خطوات التكوين

في صفحة إعدادات Extendy GeoShield:

  1. اضبط Client IP Source على:

    X-Forwarded-For
  2. أدخل عناوين الوكلاء المباشرين الموثوقين أو نطاقات CIDR في Trusted Proxy IPs / CIDRs.

    أدخل عنوان IPv4 واحداً، أو عنوان IPv6 واحداً، أو نطاق CIDR واحداً في كل سطر.

    أمثلة:

    192.0.2.10/32
    2001:db8:1234::/48
  3. احفظ الإعدادات.

  4. نفّذ تسجيل دخول مضبوطاً لعميل وراجع سجل أحداث تسجيل الدخول.

تستخدم الأمثلة أعلاه نطاقات عناوين مخصصة للتوثيق. استبدلها بعناوين الوكلاء الحقيقية لديك.

نطاقات الوكلاء الموثوقين

يجب أن تصف نطاقات الوكلاء الموثوقين بنية الوكلاء التي تمرر الطلبات مباشرة أو بشكل مشروع إلى WHMCS فقط.

نطاقات الوكلاء الخاصة مسموحة للشبكات الداخلية، لكن النطاقات الواسعة خطرة.

تجنب الوثوق بما يلي:

  • 0.0.0.0/0;
  • ::/0;
  • شبكة استضافة كاملة عندما يجب الوثوق بموزع حمل واحد فقط;
  • الشبكات التي يمكن للعملاء الوصول إليها;
  • النطاقات التي لا تتحكم بها.

يتحقق Extendy GeoShield من قائمة الوكلاء الموثوقين ويرفض الإدخالات المشوهة أو التي تثق بالإنترنت بالكامل.

كيف يتم تحليل X-Forwarded-For

عند تفعيل وضع X-Forwarded-For، يتبع Extendy GeoShield هذا النموذج:

  1. يتحقق من REMOTE_ADDR.
  2. يستمر فقط إذا كان REMOTE_ADDR يطابق نطاق وكيل موثوق مكوّن.
  3. يقرأ رأس X-Forwarded-For.
  4. يقسم الرأس إلى قفزات.
  5. يحلل السلسلة من اليمين إلى اليسار.
  6. يزيل قفزات الوكلاء الموثوقين من الجهة اليمنى.
  7. يختار أول عنوان IP عام صالح ليس وكيلاً موثوقاً.

إذا كان الرأس مفقوداً، أو مشوهاً، أو طويلاً جداً، أو يحتوي على عدد كبير جداً من القفزات، أو يحتوي على عناوين عميل خاصة أو محجوزة، أو يحتوي فقط على قفزات وكلاء موثوقين، يرجع Extendy GeoShield بأمان إلى REMOTE_ADDR.

إذا لم يكن عنوان الرجوع الاحتياطي عنوان IP عاماً صالحاً للعميل، فقد يتم تسجيل الحدث دون عنوان IP وقد يفشل اكتشاف الدولة.

دعم IPv4 وIPv6 وCIDR

تدعم إدخالات الوكلاء الموثوقين:

  • عناوين IPv4;
  • عناوين IPv6;
  • نطاقات IPv4 بصيغة CIDR;
  • نطاقات IPv6 بصيغة CIDR.

يقوم Extendy GeoShield بتطبيع الإدخالات والتحقق منها قبل استخدامها.

الظهور في سجل أحداث تسجيل الدخول

يمكن أن يساعد سجل أحداث تسجيل الدخول في التأكد مما إذا كان تكوين الوكيل يعمل.

تشمل الحقول ذات الصلة:

  • IP Address — عنوان IP العام المحدد للعميل عند توفره.
  • IP Source Used — المصدر/الرأس الذي استُخدم فعلياً.
  • IP Source Verified — ما إذا كان المصدر/الرأس المكوّن قد تم التحقق من أنه مقبول للاستخدام.

يخزن سجل الحدث أيضاً بيانات إضافية عن تحليل عنوان IP لأغراض تشخيص المسؤولين.

النتائج الشائعة

النتيجةالمعنى المحتمل
IP Source Used هو X-Forwarded-For وIP Source Verified هو yesالطرف المباشر طابق وكيلاً موثوقاً وانتهى الرأس إلى عنوان IP عام صالح للعميل
IP Source Used هو REMOTE_ADDR وIP Source Verified هو noلم يتم قبول مصدر الوكيل/الرأس المكوّن واستخدم المحلل الرجوع الاحتياطي الآمن
IP Address فارغلم يتوفر عنوان IP عام صالح للعميل، وغالباً لأن البيئة تستخدم عناوين خاصة/محلية

ملاحظات أمنية

ثق فقط بالوكلاء الذين يشكلون جزءاً من بنيتك التحتية الخاضعة للتحكم.

إذا كان بإمكان العملاء الوصول إلى WHMCS مباشرة، فقد يتمكنون من إرسال رؤوس تمرير مزورة. سيتجاهل Extendy GeoShield رأس X-Forwarded-For ما لم يطابق REMOTE_ADDR تكوين الوكيل الموثوق لديك، لكن الوصول المباشر إلى الخادم الأصلي قد يظل ينتج سياق IP غير مكتمل أو مضللاً.

تؤثر هذه الميزة في سياق حدث تسجيل الدخول وقرارات التنبيه. وهي لا تمنع تسجيلات الدخول.