Orice persoană tehnică care se respectă are sau rulează anumite servicii acasă pe care le folosește în interes propriu sau al familiei. Și nu numai, cu avansul automatizărilor și al produselor smart home, chiar și persoane care nu au cunoștințe tehnice avansate pot avea nevoie să își acceseze o automatizare gen HomeAutomation din internet pentru a putea accesa și controla device-urile smart. Aceste servicii pot fi by design dezvoltate ca să poată fi accesate atât din interiorul locuinței personale, adică din rețeaua proprie, cât și din afara locuinței prin internet. Însă nu toate au aceste funcționalități, unele dintre ele necesită componente sau configurări adiționale pentru a putea fi accesate prin internet din afara locuinței.
Opțiuni clasice ( dar și riscante)
Opțiunile de a accesa o aplicație care rulează în interiorul locuinței sunt de la cele mai banale și, în general, nesigure, cum ar fi un port forwarding în router cuplat cu un dynamic DNS pe care unii provideri, cum ar fi Digi, îl oferă gratuit, până la un VPN rulat în locuința proprie. Nu o să dezbatem acum motivele de securitate pentru care nu e bine să expunem direct rețeaua printr-un port forwarding din locuință sau ce presupune rularea unui server de VPN propriu în locuință, despre care am discutat pe larg în articolul acesta.
Ce propun în locul lor
Ceea ce o să vă propun în articolul de față depășește cu mult, la toate capitolele, aceste soluții triviale de acces pomenite mai sus. Vorbim deja de enterprise grade, SSO, OIDC, WAF, SSL, soluții avansate pe care sunt sigur că, companii mici sau chiar anumite companii mijlocii din România sunt străine de ele și nu le au implementate în rețeaua proprie.
Desigur că atunci când vorbim de produse și configurări enterprise ne-am aștepta ca și bugetul necesar pentru a le implementa să fie substanțial. Însă nu este cazul de față: cu sub 10$ anual (50 lei), în cazul meu a fost vorba de 7,2$ anual, vă puteți publica aplicațiile pentru a le putea accesa prin internet în cele mai bune condiții de siguranță și funcționalitate.
Pentru că eu cred că soluțiile de smart home sunt din ce în ce mai populare, o să luăm ca exemplu pe cineva care rulează câteva automatizări în Home Assistant și care vrea să le poată accesa de oriunde prin internet. Cele implementate de mine acasă sunt mai avansate și nu sunt încă pregătit să le fac publice :), cu altă ocazie.
Cum putem obține toate astea? Cu Cloudflare Zero Trust
Cloudflare oferă o soluție elegantă prin Zero Trust + Tunnels, iar vestea bună e că totul merge chiar și pe planul gratuit.
Cine e Cloudflare și de ce să ai încredere
Cloudflare este o companie americană fondată în 2009, cunoscută mai ales pentru serviciile sale de CDN (Content Delivery Network) și protecție împotriva atacurilor DDoS. Azi, gestionează o mare parte din traficul global al internetului și are o rețea distribuită pe toate continentele. Practic, ceea ce tu poți configura pe contul tău rulează pe aceeași infrastructură folosită și de companii mari.
Pe scurt:
- Zero Trust Access = sistem prin care aplicațiile tale sunt accesibile după autentificare.
- Cloudflare Tunnel (Argo Tunnel) = agentul cloudflared care se instalează în rețeaua ta proprie și care face legătura securizată între rețeaua ta locală și Cloudflare, fără să expui porturi.
- Firewall și bot protection = chiar și pe planul gratuit, ai controale care blochează roboții, crawlerele și alte tipuri de accese neautorizate.
Planul Free – ce primești și ce condiții există
Planul gratuit Cloudflare Zero Trust oferă, printre altele:
- 50 de utilizatori incluși (suficient pentru uz personal, familie sau prieteni).
- Aplicații protejate (Home Assistant + un NAS + un dashboard web etc.)
- Integrare cu un IDP sau login prin email cu cod PIN. Asta o să folosim pentru a avea SSO cu conturile pe care le avem deja.
- Tunnels nelimitate – poți face câte conexiuni vrei către serverele tale locale.
- Politici de acces – prin care poți seta cine și în ce condiții are acces la aplicația ta.
- Certificat SSL pentru aplicațiile noastre.
⚠️ Important: deși este gratuit, ca să activezi Zero Trust trebuie să adaugi o metodă de plată (card sau PayPal). Nu te taxează nimeni dacă rămâi în zona free, dar Cloudflare cere asta ca măsură de verificare a identității.
Domeniul propriu – piesa lipsă
Păi dacă există acest plan gratuit atât de grozav la dispoziția noastră, pentru ce trebuie să mai plătim cei câțiva dolari anual? O întrebare logică de altfel.
Ca să accesezi aplicațiile tale printr-un URL (gen casa.numeproiect.work), îți trebuie un domeniu. Cloudflare are nevoie de un domeniu, pentru a putea mapa serviciile sau aplicațiile tale. Este nevoie de un domeniu unic în toată regula, nu putem folosi un subdomeniu al unui domeniu pe care îl avem și nici un domeniu de tip dinamic DNS. Dacă aveți deja un domeniu cumpărat pe care vreți să-l folosiți, acesta trebuie mutat la Cloudflare pentru a funcționa, însă pentru că e vorba de o aplicație privată cel mai facil este să cumpărăm direct un domeniu, unul cât mai ieftin și obscur, nu ne interesează nimic ce ține de SEO și indexarea în internet, din contră.
Cel mai simplu e să-l cumperi direct de la Cloudflare Registrar:
- costuri aproape de prețul real (fără adaosuri comerciale).
- pentru domeniile .work, .xyz, .info sau similare plătești cam 10 dolari/an sau sub.
- avantaj este că domeniul intră automat în contul tău Cloudflare, nu trebuie să configurezi manual nameservere. Este gata de folosit în câteva minute.

Eu am ales un domeniu .work, unu pentru că e foarte ieftin 7.20 $ anual și doi pentru că e mai obscur, nu e foarte folosit, exact ceea ce am nevoie pentru o aplicație privată.
Care sunt pașii de urmat
Am făcut contul Cloudflare Zero Trust, am cumpărat domeniul de la Cloudflare Registrar. Următorii pași sunt:
Pasul 1 — Crearea și instalarea tunelului
Spuneam mai sus în descrierea pachetului gratuit că, printre multitudinea de funcții incluse, primim și funcționalitatea de a crea un tunel între rețeaua de acasă și internet prin intermediul serviciilor Cloudflare. Acesta este următorul pas: crearea unui tunel.
Tunelul la Cloudflare este agent based, adică trebuie să îl instalăm pe un device la noi în rețeaua proprie. Instalarea agentului cloudflared (așa se numește agentul) se poate face practic pe aproape orice device de la voi din locuință, pentru că suportă majoritatea platformelor populare, Windows, macOS, Linux, ARM, x86-32 x86-64, Docker. Dacă rămânem la exemplul nostru inițial cu o automatizare acasă prin Home Automation, îl putem instala cel mai probabil exact acolo unde rulează instanța de Home Automation.

Acum, că avem tunelul instalat, avem o conexiune între rețeaua noastră și Cloudflare/Internet.
Pasul 2 — Configurarea tunelului (mapare domeniu/subdomeniu → aplicație internă) și publicarea aplicației
Dar până la publicarea aplicației, mai este un pas de făcut: să configurăm tunelul astfel încât să știe cum să ajungă la aplicația noastră de acasă când vrem să o accesăm prin internet.
Cum facem asta? Păi aici intră în joc domeniul pe care am spus mai sus că e bine să-l cumpărăm direct de la Cloudflare, pentru a-l avea la dispoziție. Pentru aplicația noastră putem folosi direct domeniul, sau Cloudflare ne permite să definim subdomenii la domeniul nostru dacă avem mai multe aplicații pe care vrem să le expunem în internet, sub nume diferite.
În acest fel putem face o mapare între domeniu/subdomeniu și orice aplicație internă accesibilă prin cea mai trivială metodă, IP, HTTP, hostname local, nu contează. Prin această mapare Cloudflare o va transforma în extern într-o resursă accesibilă prin cea mai sigură metodă HTTPS, SSL.

Modalitățile de a configura maparea între aplicația internă și domeniu/subdomeniu sunt variate. Fie definiți un subdomeniu pentru fiecare aplicație, fie folosiți același domeniu/subdomeniu pentru toate dar folosiți opțiunea Path pentru a redirecționa la fiecare aplicație internă. Asta dacă aplicația voastră suportă acest lucru.
Important: ce vă sfătuiesc eu e să alegeți un subdomeniu obscur, având în vedere că vrem să păstrăm aplicația privată pentru noi.
După ce am făcut maparea între linkul intern și domeniul/subdomeniul din Cloudflare, putem trece la publicarea aplicației.
Acest lucru se face din meniul Access și Applications prin selectarea unei aplicații Self Hosted. Aplicației îi puteți da orice nume doriți, iar la configurare selectați subdomeniul sau domeniul corespunzător de la pasul precedent. La autentificare (Login Methods) păstrați doar One-time PIN, iar restul configurărilor le păstrați pe cele standard.

Dacă totul este configurat corect, în momentul acesta aplicația de la voi de acasă ar trebui să fie accesibilă prin subdomeniu/domeniul Cloudflare configurat.
Politici de acces
Cu aplicația configurată, următorul pas este să ne ocupăm de partea de securitate, și anume cine și în ce condiții are voie să acceseze aplicația.
Pentru acest lucru avem nevoie să creăm o politică de acces. Aceasta o să definească ce fel de permisiuni are persoana care accesează și cum își poate verifica identitatea pentru a avea acces.
Tot în meniul Access avem submeniul Policies, unde putem defini condițiile de accesare a aplicației. Sfatul meu este să folosiți adrese de email pentru acces, de preferabil adrese de Gmail. O să vedem mai jos de ce.

Cloudflare suportă multiple metode de autentificare, dar foarte multe dintre ele presupun integrări cu diferiți alți provideri, ale căror servicii nu sunt neapărat gratuite. Din fericire, avem la îndemână standard în Cloudflare o metodă destul de comodă și sigură de acces, cea configurată la publicarea aplicației mai sus, One-time PIN. Asta înseamnă că o să primim un PIN pe adresa de email setată în Politica de acces pe care tocmai am configurat-o. Dacă vreți ca mai multe persoane să aibă acces la aceeași aplicație, este suficient să adăugați adrese de email adiționale la politica de acces a fiecărei aplicații.
După ce politica de acces a fost configurată trebuie să fie atașată aplicației pentru care a fost definită.

În acest moment, avem aplicația publicată și o putem accesa pe baza emailului configurat în politica de acces, prin intermediul PIN-ului pe care-l primim. Acest layer de autentificare este pus de către serviciul Cloudflare în fața aplicației noastre; dacă aplicația mai are o altă metodă de autentificare internă, aceasta trebuie de asemenea satisfăcută, după ce vă logați prin portalul Cloudflare.
Google SSO – autentificare gratuită, dar cere un mic setup
La începutul articolului am promis nivel enterprise și putem spune că avem deja: autentificare solidă prin intermediul Cloudflare, control acces prin politici, HTTPS/SSL cu certificat valid pentru o aplicație banală din rețeaua proprie.
Totuși, cum ar fi să adăugăm un tip de autentificare foarte popular în mediul enterprise, și anume SSO, pe lângă cel oferit de Cloudflare standard?
Cu puțină muncă se poate obține acest lucru, prin intermediul unei integrări între Cloudflare și Google. Și nici asta nu costă nimic dacă este făcută cum trebuie.
Asta înseamnă că te vei putea autentifica în aplicația ta de acasă prin internet, prin intermediul Cloudflare, cu contul tău Google (acum se explică de ce am spus mai sus că ar fi de preferat un email de Google) prin metoda folosită uzual de tine, 2FA, passkey, parolă etc.
Pentru asta ai nevoie de:
- Un cont Google Cloud (GCP) – și acesta are plan gratuit, dar trebuie activat.
- În GCP → APIs & Services → Credentials, creezi un OAuth Consent Screen și o aplicație nouă.
- Definești Client ID și Client Secret pentru Cloudflare.
- Le introduci în panoul Cloudflare Access → Authentication → Add new → Google.
Pași detaliați despre cum să creați integrarea între Cloudflare și Google o să-i găsiți direct în set-up-ul Cloudflare unde puteți configura modalități noi de autentificare. Settings -> Login methods

Rezultatul: la accesarea aplicației, Cloudflare îți afișează login Google. La autentificare, Cloudflare trimite un request către Google care va verifica adresa voastră de Google și procesul de autentificare; dacă este confirmat, trimite înapoi spre Cloudflare, prin intermediul API, un token de autorizare, iar pe baza acelui token de autorizare, Cloudflare îți permite să accesezi aplicația.

Și mai este ceva, prin intermediul acestei integrări puteți da acces și altor persoane cu contul lor Google la aceeași aplicație, iar acele persoane se vor autentifica cu propriul lor cont Google. Pretty cool, cum s-ar spune pe engleză (chatgpt există expresie echivalentă în română?)
Bineînțeles, o cerință prealabilă este ca adresa lor de Google să fie permisă în Access Policy al aplicației în Cloudflare.
Și partea și mai bună: toată această integrare Google OAuth este gratuită, fără costuri ascunse.
Tip: sfatul meu este să păstrați atât One-time-PIN pe email, cât și autentificare prin Google; astfel puteți alege cum să vă autentificați din cele două metode disponibile. Le puteți seta pe ambele în configurarea fiecărei aplicații:

Cum blochezi boții și indexarea
Ok, ai aplicația expusă și accesibilă sub un domeniu frumos, dar este o aplicație privată, și deși nu facem nimic să o promovăm SEO, nu vrem ca mâine să apară indexată în Google sau cine știe ce index web. Aici intră în joc partea de Security Rules din Cloudflare.
Două reguli simple:
- Known Bots = Block (Cloudflare are propria listă de roboți cunoscuți, de la scrapers la spam).
- Verified Bot Categories = Block (poți bloca direct categoria „Search Engine Crawler”, astfel încât Google, Bing, Baidu și restul să nu-ți bage site-ul în index).
Unde? În Cloudflare Account Home, selectați domeniul vostru și navigați la Security și security rules

Rezultatul: aplicațiile tale nu vor fi accesibile public printr-o simplă căutare, pentru că indexarea lor o să fie blocată de către Cloudflare.
Exemplu practic: Home Assistant
Să zicem că ai Home Assistant pe portul 8123.
- Instalezi cloudflared și creezi un tunel către http://localhost:8123.
- În Cloudflare, configurezi un hostname: casa.numeproiect.work care o să fie mapat către calea de mai sus
- Publici aplicația
- Configurezi integrarea cu Google
- Creezi o politică de acces unde specifici emailul Google
- În Access, setezi autentificare doar prin Google.
- În Security Rules, blochezi boții.
De acum, oriunde ești, scrii în browser casa.numeproiect.work, te loghezi cu Google și ai acces la dashboard-ul casei.
Costuri totale
- Domeniu Cloudflare Registrar: 7.20 dolari/an.
- Cloudflare Zero Trust plan free: 0 dolari.
- Google OAuth: 0 dolari.
- Cloudflare Tunnel: 0 dolari.
Deci, cu sub 50 lei/an ai acces securizat, criptat și controlat la aplicațiile tale personale, fără VPN, fără port forwarding și fără să riști expunerea publică.
Tip: Putem merge și mai departe cu nivelul enterprise pe care îl putem obține, util dacă ai mai multe aplicații pe care vrei să le expui. Folosirea App Launcher din Cloudflare.
Probabil la publicarea aplicației ați observat o setare care se numea Show application in App Launcher. Acesta este un portal web unde vă puteți publica toate aplicațiile voastre de acasă și, printr-o singură autentificare în acest portal, o să le aveți pe toate la dispoziție să le accesați direct. Vă puteți seta logo-uri proprii pentru aplicații, exact cum au marile companii aplicațiile interne publicate.
App Launcher nu este disponibil în mod standard direct, ci trebuie să configurați după ce adăugați aplicațiile cine și în ce condiții are acces. Pentru asta trebuie să aplicați pașii de creare a unei Access Policy ca în cazul aplicațiilor și să alegeți o metodă de autentificare. Pentru confort alegeți aceleași setări ca și în cazul aplicațiilor.

Concluzie
E incredibil cât de mult poți obține gratuit, dacă știi să combini corect serviciile Cloudflare și Google. Tot ce plătești este un domeniu anual, restul e acoperit de planurile gratuite.
Pentru cine rulează aplicații gen Home Assistant, Nextcloud sau orice alt serviciu self-hosted, soluția asta e simplă, securizată și cu costuri minime.
E o variantă „enterprise-grade” pentru utilizatori casnici. Dar da, până la Dumnezeu te mănâncă sfinții, tutorialul e lung, e greu de urmărit, noțiuni complexe, nu e ușor de configurat sau de înțeles. Și e bine să fie așa, dacă ar fi ușor ar știi toată lumea să facă :).
Dacă vă apucați de configurat și întâmpinați probleme, scrieți în zona de comentarii și o să încerc să vă ajut.
Dacă după acest articol vreți mai mult de la Cloudflare, vedeți și cu ce vă poate ajuta aplicația 1.1.1.1 .