Back to projects
Live

Zero Trust Access con Cloudflare

Pubblicazione sicura di servizi self-hosted senza porte aperte su internet

Cloudflare TunnelCloudflare AccessCloudflare Zero TrustNginxmTLSWireGuardPKI interna

Context

Problem and context

Esporre servizi self-hosted su internet tradizionalmente richiede port forwarding, certificati SSL, aggiornamenti costanti e una superficie d'attacco che cresce con ogni servizio aggiunto. Il modello Zero Trust inverte questa logica: nessuna porta aperta, nessuna fiducia implicita, ogni accesso verificato.

Solution

Implemented solution

Cloudflare Zero Trust (Tunnel + Access) come layer di pubblicazione e autenticazione per tutti i servizi interni. Il tunnel stabilisce una connessione uscente cifrata verso Cloudflare — nessuna regola NAT, nessun IP pubblico esposto. Cloudflare Access gestisce chi può accedere e come.

Architettura

Il demone cloudflared gira in un LXC dedicato e mantiene connessioni uscenti verso i PoP Cloudflare più vicini. Il file di configurazione del tunnel mappa ogni hostname a un servizio interno.

Ogni hostname ha una policy Access associata: autenticazione OTP via email, oppure service token per accessi machine-to-machine.

mTLS per servizi critici

Per i servizi che richiedono il massimo livello di sicurezza (API Ollama, management interfaces) viene usato mTLS con certificati client emessi dalla PKI interna. Solo i client con certificato valido possono stabilire la connessione — indipendentemente dall'autenticazione Cloudflare Access.

La CA interna è gestita con cfssl, i certificati client sono distribuiti via policy Intune per i dispositivi aziendali e manualmente per il lab.

Segmentazione rete

Tre livelli di isolamento: VLAN di rete (traffico separato a L2), firewall rules MikroTik (controllo L3/L4), Cloudflare Access (autenticazione applicativa). Un servizio esposto su danplab.com non può raggiungere la VLAN management anche se l'accesso Cloudflare fosse compromesso.

Outcomes

Results

Zero porte aperte verso internet — superficie d'attacco esterna ridotta a zero
Ogni accesso loggato con identità, timestamp e IP — audit trail completo
Rollout di nuovi servizi in minuti anziché ore (nessuna configurazione firewall/NAT)
MFA enforced su tutti i servizi esposti via policy centralizzata