- Startseite
- Ursprungsserver
- Integrieren
Integrieren
F5 XC Ursprungsserver-Pool-Integration
Abschnitt betitelt „F5 XC Ursprungsserver-Pool-Integration“Dieser Ursprungsserver ist dafür konzipiert, als Ursprungsserver-Pool-Mitglied hinter einem F5 Distributed Cloud HTTP-Load-Balancer eingesetzt zu werden. Die F5 XC Plattform stellt WAF, Bot-Abwehr, API-Sicherheit und clientseitige Abwehr vor diesem Ursprungsserver bereit.
Architektur
Abschnitt betitelt „Architektur“End User -> F5 XC HTTP LB (WAF/Bot/API/CSD) -> Origin Server VM (nginx -> Docker apps)Ursprungsserver-Pool-Konfiguration
Abschnitt betitelt „Ursprungsserver-Pool-Konfiguration“Erstellen Sie einen F5 XC-Ursprungsserver-Pool, der auf die öffentliche IP dieser VM verweist:
| Einstellung | Wert |
|---|---|
| Ursprungsserver-Typ | Öffentliche IP des Ursprungsservers |
| IP-Adresse | <terraform output public_ip> |
| Port | 80 |
| Health Check | HTTP, Pfad /health |
HTTP-Load-Balancer-Konfiguration
Abschnitt betitelt „HTTP-Load-Balancer-Konfiguration“Erstellen Sie einen HTTP-Load-Balancer mit dem Ursprungsserver-Pool:
| Einstellung | Wert |
|---|---|
| Domains | Ihre Demo-Domain (z. B. demo.example.com) |
| Ursprungsserver-Pool | Der oben erstellte Pool |
| WAF | Fügen Sie Ihre WAF-Richtlinie hinzu |
| Bot-Abwehr | Nach Bedarf aktivieren |
| API Discovery | Für VAmPI-Endpunkte aktivieren |
Pfadbasiertes Routing
Abschnitt betitelt „Pfadbasiertes Routing“Jede Anwendung ist über ihr Pfad-Präfix durch den Load-Balancer erreichbar:
| F5 XC LB URL | Ursprungspfad | Anwendung |
|---|---|---|
https://demo.example.com/juice-shop/ | /juice-shop/ | Juice Shop (4 Instanzen, Cookie-Sticky) |
https://demo.example.com/dvwa/ | /dvwa/ | DVWA (4 Instanzen + MariaDB, Cookie-Sticky) |
https://demo.example.com/vampi/ | /vampi/ | VAmPI (4 Instanzen, ip_hash-Sticky) |
https://demo.example.com/httpbin/ | /httpbin/ | httpbin (4 Instanzen, Round-Robin) |
https://demo.example.com/whoami/ | /whoami/ | Anfrage-Diagnose (4 Instanzen) |
https://demo.example.com/csd-demo/ | /csd-demo/ | CSD Demo (4 Instanzen, ip_hash-Sticky) |
https://demo.example.com/dvga/ | /dvga/ | DVGA (4 Instanzen, ip_hash-Sticky) |
https://demo.example.com/restaurant/ | /restaurant/ | RESTaurant (4 Instanzen, Round-Robin) |
https://demo.example.com/health | /health | Health Check (nginx direkt) |
F5 XC Header-Injektion überprüfen
Abschnitt betitelt „F5 XC Header-Injektion überprüfen“Verwenden Sie den whoami-Endpunkt, um zu überprüfen, welche Header F5 XC in Anfragen injiziert, die den Ursprungsserver erreichen:
LB_DOMAIN="demo.example.com"
curl -sk "https://${LB_DOMAIN}/whoami/"Suchen Sie in der Antwort nach diesen von F5 XC injizierten Headern:
| Header | Bedeutung |
|---|---|
X-Forwarded-For | Client-IP-Kette durch F5 XC |
True-Client-IP | Ursprüngliche Client-IP |
X-Forwarded-Proto | https, wenn TLS bei F5 XC terminiert |
X-Volterra-Bot-Type | Bot-Klassifizierung (wenn Bot-Abwehr aktiviert ist) |
X-Request-ID | F5 XC-Anfrage-Tracking-ID |
WAF-Tests über F5 XC
Abschnitt betitelt „WAF-Tests über F5 XC“Mit einer an den HTTP-Load-Balancer angehängten WAF-Richtlinie können Angriffs-Payloads getestet werden:
LB_DOMAIN="demo.example.com"
# SQL Injection (sollte von WAF blockiert werden)curl -sk "https://${LB_DOMAIN}/dvwa/vulnerabilities/sqli/?id=%27+OR+1%3D1--&Submit=Submit"
# XSS (sollte von WAF blockiert werden)curl -sk "https://${LB_DOMAIN}/juice-shop/rest/products/search?q=<script>alert(1)</script>"
# Command Injection (sollte von WAF blockiert werden)curl -sk "https://${LB_DOMAIN}/dvwa/vulnerabilities/exec/" \ -d "ip=127.0.0.1;cat+/etc/passwd&Submit=Submit"
# Normale Anfrage (sollte durchgehen)curl -sk "https://${LB_DOMAIN}/httpbin/get" | jq .API-Sicherheitstests
Abschnitt betitelt „API-Sicherheitstests“Aktivieren Sie API Discovery auf dem HTTP-Load-Balancer, um die API-Endpunkte von VAmPI zu erfassen:
# Diese Anfragen erstellen das API-Inventar 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-Integration (Port 8888)
Abschnitt betitelt „crAPI-Integration (Port 8888)“crAPI läuft auf einem dedizierten Port (8888), da es sich um eine Single-Page-Anwendung handelt, die ihre API-Pfade fest kodiert und nicht hinter einem Pfad-Präfix betrieben werden kann. Um crAPI mit F5 XC zu integrieren:
| Einstellung | Wert |
|---|---|
| Ursprungsserver-Typ | Öffentliche IP des Ursprungsservers |
| IP-Adresse | <terraform output public_ip> |
| Port | 8888 |
| Health Check | HTTP, Pfad / |
Erstellen Sie einen separaten Ursprungsserver-Pool für crAPI auf Port 8888, oder fügen Sie Ihrem vorhandenen Pool ein zweites Ursprungsserver-Pool-Mitglied mit Port 8888 hinzu und verwenden Sie Routing-Regeln, um den Datenverkehr zu leiten:
# crAPI über F5 XC testen (falls konfiguriert)curl -sk "https://${LB_DOMAIN}:8888/"
# Oder bei Verwendung von Routing-Regeln auf derselben LB-Domain:# Konfigurieren Sie eine F5 XC-Routing-Regel, die den Host-Header oder das Pfad-Präfix# abgleicht, um den Datenverkehr an den crAPI-Ursprungsserver-Pool (Port 8888) weiterzuleitenBewusstsein für Sticky Sessions
Abschnitt betitelt „Bewusstsein für Sticky Sessions“Der Ursprungsserver verwendet intern nginx-Sticky-Sessions, um zustandsbehaftete Anwendungen konsistent an Backend-Container weiterzuleiten. Bei der Konfiguration des F5 XC HTTP-Load-Balancers ist Folgendes zu beachten:
| Anwendung | Sticky-Methode | Grund |
|---|---|---|
| Juice Shop | hash $cookie_token | Node.js-Sitzungsstatus |
| DVWA | hash $cookie_PHPSESSID | PHP-Sitzungsstatus |
| VAmPI | ip_hash | SQLite-Datenbank pro Instanz |
| CSD Demo | ip_hash | In-Memory-Exfil-Log pro Instanz |
| DVGA | ip_hash | SQLite-Datenbank pro Instanz |
| RESTaurant | Round-Robin | Gemeinsames PostgreSQL-Backend |
| crAPI | — (einzelner Port 8888) | 7 Microservices, PostgreSQL + MongoDB |
| httpbin | Round-Robin | Zustandslos |
| whoami | Round-Robin | Zustandslos |
F5 XC muss diese Sticky Sessions nicht replizieren – nginx auf der Ursprungsserver-VM übernimmt das Backend-Routing. F5 XC sollte den Ursprungsserver als einzelnen Endpunkt behandeln (die öffentliche IP der VM auf Port 80).
Multi-Komponenten-Architektur
Abschnitt betitelt „Multi-Komponenten-Architektur“In Kombination mit dem CDN-Simulator ergibt sich die folgende vollständige Lab-Architektur:
End User -> CDN Simulator (nginx cache) -> F5 XC HTTP LB -> Origin Server (this component)Der CDN-Simulator verwendet die F5 XC HTTP-Load-Balancer-VIP als seinen Ursprungsserver, und der F5 XC-Load-Balancer verwendet diesen Ursprungsserver als Backend. Dies schafft eine realistische mehrschichtige Architektur für umfassende Tests.