Prečo proxy Cloudflare nemôže prenášať OpenVPN na jednom mene
Proxovaný záznam obsluhuje HTTP a HTTPS. Rozdeľte mená, ponechajte dva poslucháče a dajte každému spojeniu certifikát, ktorému jeho protistrana skutočne dôveruje.
Jeden stroj prevádzkuje web aj server OpenVPN a pokušenie je nasmerovať naň jediné meno hostiteľa a nechať oranžový oblak, aby sa postaral o prevádzku. Proxy sa postará o HTTP a HTTPS. Nepostará sa však o reláciu OpenVPN, nech už tá relácia používa akýkoľvek port. Dve mená, jedno priame a jedno proxované, nič nestoja a odstraňujú celú triedu zmätku.
Dve mená, dva prenosy
Dajte webu proxovaný záznam, aby jeho prevádzka HTTP a HTTPS prechádzala cez Cloudflare. Dajte VPN záznam iba s DNS, ktorý sa prekladá priamo na verejný vstup VPN, a nechajte klienta používať port UDP alebo TCP, na ktorý je nastavený.
Obe mená môžu skončiť na tom istom zdrojovom stroji. Rozdiel je v tom, čo sa deje medzi klientom a týmto strojom, a práve tento rozdiel je zmyslom rozdelenia.
Prehľad sieťových portov Cloudflare uvádza, ktoré porty bežná webová proxy prijíma. Ten zoznam sa týka HTTP a HTTPS na týchto portoch, nie ľubovoľných protokolov, ktoré náhodou zdieľajú jedno číslo.
Port nie je protokol
Presun OpenVPN na TCP 443 z neho nerobí HTTPS. Proxy stále očakáva HTTP požiadavku na začiatku spojenia, zatiaľ čo klient OpenVPN posiela namiesto toho binárnu riadiacu správu. Spojenie zlyhá spôsobom, ktorý vyzerá ako sieťové blokovanie, pretože do logu sa nedostane nič užitočné.
Ak je požiadavka naozaj umiestniť produkt Cloudflare do dátovej cesty VPN, vyhodnoťte taký, ktorý dokumentuje podporu protokolu, ktorý potrebujete. Nepredpokladajte, že oranžový oblak je univerzálny tunel TCP alebo UDP, pretože je to reverzná proxy pre webovú prevádzku s konkrétnou úlohou.
Záznam iba s DNS je nudná odpoveď, ktorá funguje, a je to tá, po ktorej treba siahnuť najskôr.
Jeden stroj stále potrebuje dva poslucháče
Oddelené mená neumožňujú dvom procesom viazať tú istú adresu, port a prenos súčasne. Ak webový server už drží TCP 443 na všetkých adresách, inštancia OpenVPN ho nemôže tiež prevziať bez úmyselnej dohody.
Naväžte poslucháč VPN na iný port, alebo na inú adresu, alebo pred neho postavte zdokumentovaný multiplexor a prijmite prevádzkové náklady, ktoré to prináša. Každá z týchto volieb by mala byť viditeľná v pravidlách firewallu, pretože poslucháč, ktorý nikto nezdokumentoval, je ten, ktorý sa pri incidente prehliadne. Zapíšte zvolené naviazanie do toho istého runbooku, ktorý opisuje tunel. Potom ho ďalší človek nebude o druhej ráno znovu objavovať.
Certifikáty sledujú spojenie, ktoré chránia
TLS spojenie prehliadača s Cloudflare a spojenie Cloudflare s vaším zdrojom sú dva oddelené vzťahy s dvoma oddelenými certifikátmi. Prehliadač vidí hraničný certifikát. Zdroj predkladá Cloudflare svoj vlastný certifikát a certifikát Cloudflare Origin CA je určený presne pre tento druhý vzťah.
Tomuto zdrojovému certifikátu Cloudflare dôveruje v režime Full (strict) a nie je to všeobecne dôveryhodný certifikát prehliadača. Ak niekto navštívi meno hostiteľa iba s DNS priamo a dostane upozornenie, je to očakávaný dôsledok zmenenej cesty dôvery, nie dôkaz, že šifrovanie prestalo.
Web, ktorý sa navštevuje priamo, preto potrebuje reťaz certifikátov, ktorému jeho prehliadače dôverujú. To môže existovať popri proxovanom webe, ktorého zdroj sa vôbec nemá navštevovať.
OpenVPN nesie vlastnú identitu servera a autentizáciu klienta, s vlastnou certifikačnou autoritou a vlastnou ochranou riadiaceho kanála. Zámok na webe nič z toho neposkytuje a oba procesy zabezpečenia majú zostať oddelené.
Expozícia sleduje meno
Záznam VPN iba s DNS zverejňuje adresu, na ktorú ukazuje. Ak je táto adresa aj webovým zdrojom, zdroj nie je skrytý, a opisovať ho ako skrytý preto, že druhé meno je proxované, je chyba, ktorá pretrvá, kým ho niekto nenaskenuje.
Rozhodnite, ktoré webové požiadavky smú dosiahnuť zdroj priamo, a presaďte to na zdroji, potom povoľte poslucháč VPN za jeho vlastných podmienok. Stránky správy, sťahovanie profilov a dátový poslucháč môžu mať tri rôzne požiadavky na expozíciu, aj keď jeden balík poskytuje všetky tri.
Držte generované odkazy na verejnom webovom mene a schéme HTTPS a klientske profily na mene VPN so skutočným protokolom a portom. Ani jedna služba by pri bežnej prevádzke nemala závisieť od prepínania nastavenia proxy tej druhej.
Poradie práce: proxované meno pre web, meno iba s DNS pre VPN, oddelené poslucháče, certifikát pre každý vzťah, potom jeden test, ktorý dokáže, že každé meno dosiahne iba službu, na ktorú má.