O singură mașină rulează site-ul și serverul OpenVPN, iar tentația este să îndrepți un singur nume de gazdă spre ea și să lași norul portocaliu să rezolve traficul. Proxy-ul rezolvă HTTP și HTTPS. Nu rezolvă o sesiune OpenVPN, indiferent de portul folosit de acea sesiune. Două nume, unul direct și unul prin proxy, nu costă nimic și elimină toată această clasă de confuzie.

Două nume, două transporturi

Dă site-ului o înregistrare proxiată, ca traficul său HTTP și HTTPS să treacă prin Cloudflare. Dă VPN-ului o înregistrare doar DNS care se rezolvă direct la intrarea publică a VPN-ului, și lasă clientul să folosească portul UDP sau TCP pentru care este configurat.

Ambele nume pot ajunge pe aceeași mașină de origine. Diferența este ce se întâmplă între client și acea mașină, iar această diferență este sensul separării.

Referința pentru porturile de rețea a Cloudflare enumeră porturile pe care le acceptă proxy-ul web obișnuit. Acea listă privește HTTP și HTTPS pe acele porturi, nu protocoale arbitrare care împart din întâmplare un număr.

Portul nu este protocolul

Mutarea OpenVPN pe TCP 443 nu îl transformă în HTTPS. Proxy-ul așteaptă în continuare o cerere HTTP la începutul conexiunii, iar un client OpenVPN trimite în schimb un mesaj de control binar. Conexiunea eșuează într-un mod care arată ca o blocare de rețea pentru că nimic util nu ajunge într-un jurnal.

Dacă cerința este într-adevăr să pui un produs Cloudflare pe calea datelor VPN-ului, evaluează unul care documentează suport pentru protocolul de care ai nevoie. Nu presupune că norul portocaliu este un tunel TCP sau UDP generic, pentru că este un proxy invers pentru trafic web cu o sarcină anume.

O înregistrare doar DNS este răspunsul plictisitor care funcționează, și este primul la care trebuie să apelezi.

O mașină are în continuare nevoie de doi ascultători

Numele separate nu permit două procese să lege aceeași adresă, port și transport în același timp. Dacă serverul web deține deja TCP 443 pe toate adresele, o instanță OpenVPN nu îl poate lua și ea fără o înțelegere deliberată.

Leagă ascultătorul VPN de un alt port, sau de o altă adresă, sau pune în față un multiplexor documentat și acceptă costul operațional care vine cu el. Fiecare dintre aceste alegeri ar trebui să fie vizibilă în regulile firewall-ului, pentru că un ascultător pe care nimeni nu l-a documentat este cel care se omite în timpul unui incident. Scrie legarea aleasă în același runbook care descrie tunelul. Astfel următoarea persoană nu îl redescoperă la două noaptea. Astfel următoarea persoană nu îl redescoperă la două noaptea.

Certificatele urmează conexiunea pe care o protejează

Conexiunea TLS a browserului către Cloudflare și conexiunea Cloudflare către originea ta sunt două relații separate cu două certificate separate. Browserul vede un certificat de margine. Originea îi prezintă Cloudflare propriul certificat, iar un certificat Cloudflare Origin CA este destinat exact acelei a doua relații.

Acest certificat de origine este de încredere pentru Cloudflare în modul Full (strict) și nu este un certificat de browser de încredere generală. Dacă cineva vizitează direct numele de gazdă doar DNS și primește un avertisment, aceasta este consecința așteptată a unei căi de încredere schimbate, nu dovada că criptarea s-a oprit.

Prin urmare, un site vizitat direct are nevoie de un lanț de certificate în care au încredere browserele sale. Acesta poate coexista cu un site prin proxy a cărui origine nu este deloc destinată vizitării.

OpenVPN poartă propria identitate de server și autentificare a clientului, cu propria autoritate de certificare și propria protecție a canalului de control. Un lacăt pe site nu oferă nimic din toate acestea, iar cele două procese de pregătire ar trebui să rămână separate.

Expunerea urmează numele

O înregistrare VPN doar DNS publică adresa către care indică. Dacă acea adresă este și originea web, originea nu este ascunsă, iar descrierea ei ca ascunsă pentru că celălalt nume este prin proxy este o greșeală care durează până când cineva o scanează.

Decide ce cereri web pot ajunge direct la origine și aplică asta la origine, apoi permite ascultătorul VPN în propriile condiții. Paginile de administrare, descărcările de profiluri și ascultătorul de date pot avea trei cerințe de expunere diferite chiar și atunci când un singur pachet le oferă pe toate trei.

Păstrează linkurile generate pe numele web public și pe schema HTTPS, și păstrează profilurile de client pe numele VPN cu protocolul și portul reale. Niciunul dintre servicii nu ar trebui să depindă de inversarea setării de proxy a celuilalt în funcționarea normală.

Ordinea lucrului: nume prin proxy pentru site, nume doar DNS pentru VPN, ascultători distincți, certificat pentru fiecare relație, apoi un test care dovedește că fiecare nume ajunge doar la serviciul la care trebuie.

Articole similare