Kodėl Cloudflare tarpinis serveris negali perduoti OpenVPN vienu vardu
Tarpinio serverio įrašas tvarko HTTP ir HTTPS. Atskirkite vardus, palikite du klausytojus ir kiekvienam ryšiui duokite sertifikatą, kuriuo jo partneris tikrai pasitiki.
Viena mašina paleidžia svetainę ir OpenVPN serverį, ir pagunda yra nukreipti į ją vieną kompiuterio vardą ir leisti oranžiniam debesiui sutvarkyti srautą. Tarpinis serveris sutvarko HTTP ir HTTPS. Jis nesutvarko OpenVPN sesijos, kad ir kokį prievadą ta sesija naudotų. Du vardai, vienas tiesioginis ir vienas per tarpinį serverį, nieko nekainuoja ir pašalina visą šią painiavos klasę.
Du vardai, du transportai
Duokite svetainei tarpinio serverio įrašą, kad jos HTTP ir HTTPS srautas eitų per Cloudflare. Duokite VPN įrašą tik su DNS, kuris sprendžiamas tiesiai į viešą VPN įėjimą, ir leiskite klientui naudoti UDP arba TCP prievadą, kuriam jis sukonfigūruotas.
Abu vardai gali atsidurti toje pačioje šaltinio mašinoje. Skirtumas yra tai, kas vyksta tarp kliento ir tos mašinos, ir tas skirtumas yra atskyrimo esmė.
Cloudflare tinklo prievadų apžvalga išvardija, kuriuos prievadus priima įprastas žiniatinklio tarpinis serveris. Tas sąrašas apie HTTP ir HTTPS tuose prievaduose, o ne apie savavališkus protokolus, kurie atsitiktinai dalijasi numeriu.
Prievadas nėra protokolas
Perkėlus OpenVPN į TCP 443, jis netampa HTTPS. Tarpinis serveris vis dar tikisi HTTP užklausos ryšio pradžioje, o OpenVPN klientas vietoj to siunčia dvejetainį valdymo pranešimą. Ryšys nepavyksta taip, kad atrodo kaip tinklo blokavimas, nes nieko naudingo nepasiekia žurnalas.
Jei reikalavimas tikrai yra įdėti Cloudflare produktą į VPN duomenų kelią, įvertinkite tokį, kuris dokumentuoja reikiamo protokolo palaikymą. Nemanykite, kad oranžinis debesis yra bendras TCP ar UDP tunelis, nes tai atvirkštinis tarpinis serveris žiniatinklio srautui su konkrečia užduotimi.
Įrašas tik su DNS yra nuobodus atsakymas, kuris veikia, ir jo pirmiausia reikėtų griebtis.
Vienai mašinai vis dar reikia dviejų klausytojų
Atskiri vardai neleidžia dviem procesams vienu metu susieti to paties adreso, prievado ir transporto. Jei žiniatinklio serveris jau užima TCP 443 visuose adresuose, OpenVPN egzempliorius jo negali paimti irgi be sąmoningo susitarimo.
Susiekite VPN klausytoją su kitu prievadu, arba kitu adresu, arba pastatykite priekyje dokumentuotą multiplekserį ir priimkite su tuo susijusias eksploatacines išlaidas. Kiekvienas iš šių pasirinkimų turėtų būti matomas užkardos taisyklėse, nes klausytojas, kurio niekas nedokumentavo, yra tas, kuris praleidžiamas per incidentą. Įrašykite pasirinktą susiejimą į tą patį vadovą, kuris aprašo tunelį. Tuomet kitas žmogus nebeatras jo iš naujo antrą valandą nakties.
Sertifikatai seka ryšį, kurį saugo
Naršyklės TLS ryšys su Cloudflare ir Cloudflare ryšys su jūsų šaltiniu yra du atskiri santykiai su dviem atskirais sertifikatais. Naršyklė mato krašto sertifikatą. Šaltinis pateikia Cloudflare savo sertifikatą, o Cloudflare Origin CA sertifikatas skirtas būtent antrajam santykiui.
Cloudflare pasitiki šiuo šaltinio sertifikatu Full (strict) režimu, ir tai nėra visuotinai patikimas naršyklės sertifikatas. Jei kas nors tiesiogiai apsilanko tik DNS kompiuterio varde ir gauna įspėjimą, tai laukiama pasikeitusio pasitikėjimo kelio pasekmė, o ne įrodymas, kad šifravimas sustojo.
Todėl tiesiogiai lankoma svetainė turi turėti sertifikatų grandinę, kuria pasitiki jos naršyklės. Tai gali egzistuoti kartu su svetaine per tarpinį serverį, kurios šaltinio visai neketinama lankyti.
OpenVPN turi savo serverio tapatybę ir kliento autentifikavimą, su savo sertifikatų agentūra ir savo valdymo kanalo apsauga. Spyna svetainėje nieko iš to nesuteikia, ir du parengimo procesai turėtų likti atskiri.
Poveikis seka vardą
VPN įrašas tik su DNS paskelbia adresą, į kurį rodo. Jei tas adresas yra ir žiniatinklio šaltinis, šaltinis nėra paslėptas, ir aprašyti jį kaip paslėptą todėl, kad kitas vardas yra per tarpinį serverį, yra klaida, kuri išlieka, kol kas nors jo nesuranda skenuodamas.
Nuspręskite, kurios žiniatinklio užklausos gali pasiekti šaltinį tiesiogiai, ir įgyvendinkite tai šaltinyje, tada leiskite VPN klausytojui jo paties sąlygomis. Administravimo puslapiai, profilių atsisiuntimai ir duomenų klausytojas gali turėti tris skirtingus poveikio reikalavimus, net kai vienas paketas teikia visus tris.
Laikykite generuotas nuorodas viešame žiniatinklio varde ir HTTPS schemoje, o klientų profilius VPN varde su tikru protokolu ir prievadu. Nė viena paslauga neturėtų priklausyti nuo kitos tarpinio serverio nustatymo perjungimo įprasto veikimo metu.
Darbo tvarka: vardas per tarpinį serverį svetainei, vardas tik su DNS VPN, atskiri klausytojai, sertifikatas kiekvienam santykiui, tada vienas testas, įrodantis, kad kiekvienas vardas pasiekia tik tą paslaugą, kurią turi.