CLOUDFLARE APPLICATION SERVICES: CASE UITWERKING

Cloudflare-implementatie
voor een e-commercesite

Aanpak en implementatie voor de case, opgebouwd rond drie fases: Health Check, Implementation & Optimization en Watchtower.

JoranTweede gesprek
Origin blijft eigen infraCloudflare als edge-laag
3 fasesHealth Check → Implement → Watchtower
De situatie

Wat de klant vraagt

Een e-commercesite, gehost op eigen servers, moet achter Cloudflare komen, met oog voor security, performance, DNS en beschikbaarheid.

Publiek: de webshop

Wereldwijde klanten

Bezoekers ver van de origin ervaren tragere laadtijden.

Publiek: de webshop

Terugkerende aanvallen

SQL-injection, DDoS en Slowloris tasten de beschikbaarheid aan.

Beperkt: installatievideo's

Toegang installatievideo's

Instructievideo's bij een specifiek product mogen niet publiek toegankelijk zijn.

Randvoorwaarde

Origin blijft eigen infra

Geen migratie: Cloudflare komt ervoor, de website zelf verhuist niet.

De aanpak

Drie fases, één doorlopend traject

De aanpak volgt drie fases: van analyse, via implementatie, naar doorlopend beheer.

01 · eenmalig

Health Check

Infrastructuur, huidige configuratie en prioriteiten in kaart brengen, vóór er iets wijzigt.

02 · eenmalig

Implementation & Optimization

DNS, WAF, performance en toegangsbeheer effectief opzetten en afstellen.

03 · doorlopend

Watchtower

Maandelijkse review, rule-tuning en rapportage, zodat de omgeving blijft mee-evolueren.

Fase 01: Health Check

Eerst kennen, dan pas configureren

Elke keuze verderop in dit voorstel hangt af van antwoorden die we hier ophalen. Voor deze oefening worden op de volgende slide expliciete aannames gemaakt zodat de implementatie hieronder concreet uitgewerkt kan worden.

  • Infrastructuur: één server of meerdere/load balancer? Bepaalt de Tunnel-beslissing in fase 2.
  • Huidige DNS-setup: full of partial, welke records vandaag al bestaan.
  • Bestaande security-instellingen: is er al iets actief, en waar zaten de valse positieven.
  • Oorsprong van de SQLi/DDoS/Slowloris-vaststelling: eigen logs, bestaande tool, of extern gemeld? Bepaalt of het origin-IP al rechtstreeks bereikt is, en dus of IP-rotatie na migratie nodig is.
  • Omvang installatievideo's: bestandsgroottes t.o.v. cache-limieten (512 MB tot 5 GB).
  • Identity-behoeften plaatsers: bestaat er al een lijst/systeem van erkende partners?
Fase 01: Aannames

Op deze aannames bouwt dit voorstel verder

Bevestigd tijdens de effectieve Health Check bij de klant. Waar een aanname niet blijkt te kloppen, wijzigt de aanpak in fase 2.

  • Eén origin-server, geen load balancer: maakt Cloudflare Tunnel eenvoudig te implementeren (één cloudflared-instantie volstaat), dus wordt Tunnel de baseline voor de volledige origin-bescherming, niet enkel voor de installatievideo's.
  • Cloudflare nog niet eerder actief op dit domein: dus een full DNS setup (Cloudflare wordt authoritative), geen partial/CNAME-only migratie.
  • Erkende plaatsers vormen een beperkte, gekende groep: geen self-service registratie nodig, dus Access met One-Time PIN volstaat zonder externe identity provider.
  • Installatievideo's blijven onder de cacheable bestandslimiet: te bevestigen; bij grotere bestanden verschuift het gesprek richting Cloudflare Stream.
  • Cloudflare Business-plan of hoger: nodig voor WAF custom rules, rate limiting rules en Access-seats.
Fase 02: DNS & onboarding

Proxy en firewall-configuratie

Alle relevante records worden proxied (orange-clouded). Pas dan gelden WAF, cache en DDoS-bescherming.

Bezoeker
Cloudflare edge
Origin (eigen server)

Proxied DNS

Origin-IP niet langer publiek zichtbaar in DNS-lookups, de eerste stap tegen alle drie de genoemde aanvalstypes.

Cloudflare Tunnel als baseline

Eén cloudflared-instantie op de origin-server. Outbound-only verbinding, geen inbound firewall-regel nodig voor Cloudflare's IP-ranges.

Fase 02: Security: WAF

Drie lagen tegen SQL-injection

Geen losse maatregel, maar een opbouw: het gekende wordt gevangen door signatures, het onbekende door machine learning.

Laag 1 · primair

Managed Ruleset

Signature-based, door Cloudflare onderhouden. Vangt bekende SQLi-patronen, staat standaard aan.

Laag 2 · aanvulling

WAF Attack Score

ML-laag voor varianten en bypasses die signatures missen. Eigen SQLi-deelscore beschikbaar.

Laag 3 · optioneel

OWASP Ruleset

Extra dekking, maar meer false positives, daarom bewust niet als standaard aangeraden.

# Custom rule: blokkeer op basis van attack score cf.waf.score.class eq "attack" → actie: Block
Fase 02: Security, DDoS & Slowloris

DDoS-bescherming en Slowloris-mitigatie

DDoS-bescherming

L3 / L4 / L7 altijd actief op Cloudflare's netwerk. Geen aparte configuratie nodig.

Slowloris

Wordt automatisch onschadelijk gemaakt: Cloudflare's proxy buffert het volledige HTTP-request vóór het naar de origin gaat. Een onvolledig request bereikt de origin nooit.

Aparte configuratiestap: niet automatisch afgeleid van WAF

// Rate limiting rule op checkout & login starts_with(http.request.uri.path, "/checkout") Karakteristiek: per IP · Periode: 60s · Drempel: 10 requests Actie: Managed Challenge
Fase 02: Performance

Drie complementaire lagen

Elke laag vangt op wat de vorige niet kon: het meeste hoeft nooit naar de origin, de rest gaat er zo snel mogelijk naartoe.

Laag 1

CDN + Cache Rules

Statisch standaard gecachet. Dynamisch (cart, checkout) expliciet bypassed: nooit blind "Cache Everything" toepassen.

Laag 2

Tiered Cache

Hiërarchie van datacenters vangt cache-misses op vóór de origin geraakt wordt.

Laag 3

Argo Smart Routing

Snelste realtime pad op Cloudflare's backbone voor wat wél naar de origin moet, relevant voor verre bezoekers.

Fase 02: Toegangsbeheer installatievideo's

Enkel voor erkende plaatsers

Cloudflare Access

Deny-by-default op het specifieke pad. Verificatie via One-Time PIN, geen wachtwoord om te beheren of te lekken.

Cloudflare Tunnel

Outbound-only verbinding: dit deel van de infrastructuur is nooit publiek blootgesteld, zelfs niet via IP-scanning.

// Access policy: Allow Include: email_domain "@erkendplaatser.be" // Sessie na login: ondertekende JWT in CF_Authorization-cookie // exp bepaalt hoe snel een verwijderde plaatser buiten staat
Fase 02: Architecturale keuzes

Tunnel als baseline, niet als uitzondering

Eén origin-server (aanname)Meerdere servers / load balancer
Tunnel-complexiteitLaag: één cloudflared-instantie volstaatHoger: cloudflared per server met Cloudflare Load Balancing, of één instantie naar de interne LB
Aanbevolen aanpakTunnel als baseline, voor webshop én installatievideo'sProxied DNS + firewall-lock als baseline, Tunnel als upgrade-pad in fase 3

Deze keuze hangt rechtstreeks af van de aanname op de vorige slide en wordt bevestigd tijdens de Health Check. Cache + Access blijft in beide gevallen veilig te combineren: Access valideert de sessie vóór de cache-fase, mits de cache-key en Cache-Control correct geconfigureerd zijn.

Fase 03: Watchtower

Doorlopend beheer na oplevering

WAF-regels die vandaag correct staan, kunnen na verloop van tijd achterhaald raken door nieuwe aanvalspatronen. Deze fase houdt de configuratie actueel.

  • Maandelijkse review: security- en configuratiestatus.
  • WAF- en rule-tuning: bijstellen op basis van reëel verkeer.
  • False-positive-analyse: legitieme klanten blijven ongehinderd.
  • Rapportage: security events, helder voor niet-technisch publiek.
Fase 03: Vooruitblik

Optionele volgende stappen

Cloudflare Stream

Adaptive bitrate streaming voor de installatievideo's, buiten de huidige scope, maar een logische optimalisatie later.

API-gestuurd partnerbeheer

Erkende plaatsers beheerd in de eigen applicatie van de klant, automatisch gesynchroniseerd naar de Access-policy via de Cloudflare API.

Samenvattend

Probleem → oplossing → fase

Probleem uit de caseOplossingFase
Trage laadtijden wereldwijdCDN, Tiered Cache, Argo Smart Routing02
SQL-injectionManaged Ruleset + WAF Attack Score02
DDoS & SlowlorisAltijd-actieve DDoS-bescherming + request buffering02
Beveiligde installatievideo'sCloudflare Access (OTP) + Tunnel02
Blijvend actuele beschermingMaandelijkse tuning & rapportage03
Afsluiting

Vragen?

Health Check → Implementation & Optimization → Watchtower.