- الرئيسية
- خادم المصدر
- التكامل
التكامل
تكامل مجموعة مصدر F5 XC
Section titled “تكامل مجموعة مصدر F5 XC”تم تصميم خادم المصدر هذا ليُستخدم كـ عضو في مجموعة المصدر خلف موازن تحميل HTTP لـ F5 Distributed Cloud. توفر منصة F5 XC جدار حماية تطبيقات الويب (WAF) ودفاع Bot وأمان API والدفاع من جهة العميل أمام هذا المصدر.
البنية المعمارية
Section titled “البنية المعمارية”End User -> F5 XC HTTP LB (WAF/Bot/API/CSD) -> Origin Server VM (nginx -> Docker apps)تكوين مجموعة المصدر
Section titled “تكوين مجموعة المصدر”أنشئ مجموعة مصدر F5 XC تشير إلى عنوان IP العام للجهاز الافتراضي:
| الإعداد | القيمة |
|---|---|
| نوع خادم المصدر | عنوان IP العام لخادم المصدر |
| عنوان IP | <terraform output public_ip> |
| المنفذ | 80 |
| فحص الصحة | HTTP، المسار /health |
تكوين موازن تحميل HTTP
Section titled “تكوين موازن تحميل HTTP”أنشئ موازن تحميل HTTP مع مجموعة المصدر:
| الإعداد | القيمة |
|---|---|
| النطاقات | نطاق العرض التوضيحي الخاص بك (مثل demo.example.com) |
| مجموعة المصدر | المجموعة التي تم إنشاؤها أعلاه |
| جدار الحماية WAF | أرفق سياسة جدار الحماية WAF الخاصة بك |
| دفاع Bot | فعّله حسب الحاجة |
| اكتشاف API | فعّله لنقاط نهاية VAmPI |
التوجيه المستند إلى المسار
Section titled “التوجيه المستند إلى المسار”كل تطبيق متاح عبر بادئة مساره من خلال موازن التحميل:
| رابط F5 XC LB | مسار المصدر | التطبيق |
|---|---|---|
https://demo.example.com/juice-shop/ | /juice-shop/ | Juice Shop (4 نسخ، جلسة مثبّتة بالكوكي) |
https://demo.example.com/dvwa/ | /dvwa/ | DVWA (4 نسخ + MariaDB، جلسة مثبّتة بالكوكي) |
https://demo.example.com/vampi/ | /vampi/ | VAmPI (4 نسخ، جلسة مثبّتة بـ ip_hash) |
https://demo.example.com/httpbin/ | /httpbin/ | httpbin (4 نسخ، round-robin) |
https://demo.example.com/whoami/ | /whoami/ | تشخيصات الطلبات (4 نسخ) |
https://demo.example.com/csd-demo/ | /csd-demo/ | عرض توضيحي CSD (4 نسخ، جلسة مثبّتة بـ ip_hash) |
https://demo.example.com/dvga/ | /dvga/ | DVGA (4 نسخ، جلسة مثبّتة بـ ip_hash) |
https://demo.example.com/restaurant/ | /restaurant/ | RESTaurant (4 نسخ، round-robin) |
https://demo.example.com/health | /health | فحص الصحة (nginx مباشر) |
التحقق من حقن ترويسات F5 XC
Section titled “التحقق من حقن ترويسات F5 XC”استخدم نقطة نهاية whoami للتحقق من الترويسات التي تحقنها F5 XC في الطلبات الواصلة إلى المصدر:
LB_DOMAIN="demo.example.com"
curl -sk "https://${LB_DOMAIN}/whoami/"ابحث عن ترويسات F5 XC المحقونة هذه في الاستجابة:
| الترويسة | المعنى |
|---|---|
X-Forwarded-For | سلسلة عناوين IP الخاصة بالعميل عبر F5 XC |
True-Client-IP | عنوان IP الأصلي للعميل |
X-Forwarded-Proto | https إذا انتهى TLS عند F5 XC |
X-Volterra-Bot-Type | تصنيف Bot (عند تفعيل دفاع Bot) |
X-Request-ID | معرّف تتبع الطلب الخاص بـ F5 XC |
اختبار جدار الحماية WAF عبر F5 XC
Section titled “اختبار جدار الحماية WAF عبر F5 XC”مع إرفاق سياسة جدار حماية WAF بموازن تحميل HTTP، اختبر حمولات الهجوم:
LB_DOMAIN="demo.example.com"
# SQL Injection (should be blocked by WAF)curl -sk "https://${LB_DOMAIN}/dvwa/vulnerabilities/sqli/?id=%27+OR+1%3D1--&Submit=Submit"
# XSS (should be blocked by WAF)curl -sk "https://${LB_DOMAIN}/juice-shop/rest/products/search?q=<script>alert(1)</script>"
# Command Injection (should be blocked by WAF)curl -sk "https://${LB_DOMAIN}/dvwa/vulnerabilities/exec/" \ -d "ip=127.0.0.1;cat+/etc/passwd&Submit=Submit"
# Normal request (should pass through)curl -sk "https://${LB_DOMAIN}/httpbin/get" | jq .اختبار أمان API
Section titled “اختبار أمان API”فعّل اكتشاف API على موازن تحميل HTTP لرسم خريطة نقاط نهاية API الخاصة بـ VAmPI:
# These requests build the API inventory in F5 XCcurl -sk "https://${LB_DOMAIN}/vampi/users/v1"curl -sk -X POST "https://${LB_DOMAIN}/vampi/users/v1/register" \ -H "Content-Type: application/json" \ -d '{"username":"apitest","password":"test123","email":"api@test.com"}'curl -sk -X POST "https://${LB_DOMAIN}/vampi/users/v1/login" \ -H "Content-Type: application/json" \ -d '{"username":"apitest","password":"test123"}'تكامل crAPI (المنفذ 8888)
Section titled “تكامل crAPI (المنفذ 8888)”يعمل crAPI على منفذ مخصص (8888) لأنه تطبيق أحادي الصفحة يُضمّن مسارات API الخاصة به بشكل ثابت ولا يمكن تقديمه خلف بادئة مسار. لتكامل crAPI مع F5 XC:
| الإعداد | القيمة |
|---|---|
| نوع خادم المصدر | عنوان IP العام لخادم المصدر |
| عنوان IP | <terraform output public_ip> |
| المنفذ | 8888 |
| فحص الصحة | HTTP، المسار / |
أنشئ مجموعة مصدر منفصلة لـ crAPI على المنفذ 8888، أو أضف عضوًا ثانيًا في مجموعة المصدر الحالية بالمنفذ 8888 واستخدم قواعد التوجيه لتوجيه حركة المرور:
# Test crAPI through F5 XC (if configured)curl -sk "https://${LB_DOMAIN}:8888/"
# Or if using route rules on the same LB domain:# Configure an F5 XC route rule matching Host header or path prefix# to forward to the crAPI origin pool (port 8888)الوعي بالجلسات المثبّتة
Section titled “الوعي بالجلسات المثبّتة”يستخدم خادم المصدر جلسات nginx المثبّتة داخليًا لتوجيه التطبيقات ذات الحالة إلى حاويات الخلفية الثابتة. عند تكوين موازن تحميل HTTP لـ F5 XC، كن على دراية بما يلي:
| التطبيق | طريقة التثبيت | السبب |
|---|---|---|
| Juice Shop | hash $cookie_token | حالة جلسة Node.js |
| DVWA | hash $cookie_PHPSESSID | حالة جلسة PHP |
| VAmPI | ip_hash | قاعدة بيانات SQLite لكل نسخة |
| CSD Demo | ip_hash | سجل تسريب في الذاكرة لكل نسخة |
| DVGA | ip_hash | قاعدة بيانات SQLite لكل نسخة |
| RESTaurant | Round-robin | خلفية PostgreSQL مشتركة |
| crAPI | — (منفذ واحد 8888) | 7 خدمات مصغّرة، PostgreSQL + MongoDB |
| httpbin | Round-robin | عديم الحالة |
| whoami | Round-robin | عديم الحالة |
لا تحتاج F5 XC إلى تكرار هذه الجلسات المثبّتة — يتولى nginx على الجهاز الافتراضي للمصدر إدارة توجيه الخلفية. يجب أن تتعامل F5 XC مع المصدر كنقطة نهاية واحدة (عنوان IP العام للجهاز الافتراضي على المنفذ 80).
البنية متعددة المكونات
Section titled “البنية متعددة المكونات”عند دمجه مع محاكي CDN، تكون البنية الكاملة للمختبر كما يلي:
End User -> CDN Simulator (nginx cache) -> F5 XC HTTP LB -> Origin Server (this component)يستخدم محاكي CDN عنوان VIP الخاص بموازن تحميل HTTP لـ F5 XC كمصدره، ويستخدم موازن تحميل F5 XC خادم المصدر هذا كخلفية له. يُنشئ هذا بنية واقعية متعددة الطبقات لاختبار شامل.