Zašto Cloudflare proxy ne može nositi OpenVPN na jednom imenu
Proksiran zapis obrađuje HTTP i HTTPS. Razdvojite imena, zadržite dva listenera i dajte svakoj vezi certifikat kojem njen sagovornik zaista vjeruje.
Jedna mašina pokreće web-stranicu i OpenVPN server, a iskušenje je uputiti jedno ime hosta na nju i pustiti narandžasti oblak da raščisti saobraćaj. Proxy raščišćava HTTP i HTTPS. On ne raščišćava OpenVPN sesiju, bez obzira na koji port ta sesija ide. Dva imena, jedno direktno i jedno proksirano, ne koštaju ništa i uklanjaju cijelu klasu zabune.
Dva imena, dva transporta
Dajte web-stranici proksiran zapis tako da njen HTTP i HTTPS saobraćaj ide kroz Cloudflare. Dajte VPN-u zapis samo s DNS-om koji se razrješava pravo na javni VPN ulaz, i pustite klijenta da koristi UDP ili TCP port za koji je konfigurisan.
Oba imena mogu završiti na istoj mašini-izvoru. Razlika je u tome šta se dešava između klijenta i te mašine, i ta razlika je smisao podjele.
Cloudflareov pregled mrežnih portova navodi koje portove prihvata obični web proxy. Taj spisak se odnosi na HTTP i HTTPS na tim portovima, a ne na proizvoljne protokole koji slučajno dijele isti broj.
Port nije protokol
Premještanje OpenVPN na TCP 443 ne pretvara ga u HTTPS. Proxy i dalje očekuje HTTP zahtjev na početku veze, a OpenVPN klijent umjesto toga šalje binarnu kontrolnu poruku. Veza pada na način koji izgleda kao mrežna blokada, jer ništa korisno ne stiže do loga.
Ako je zahtjev zaista da stavite Cloudflare proizvod u VPN putanju podataka, procijenite onaj koji dokumentuje podršku za protokol koji vam treba. Ne pretpostavljajte da je narandžasti oblak opći TCP ili UDP tunel, jer je on obrnuti proxy za web saobraćaj sa konkretnim zadatkom.
Zapis samo s DNS-om je dosadan odgovor koji radi, i prvi je kome treba posegnuti.
Jedna mašina i dalje treba dva listenera
Odvojena imena ne dozvoljavaju dvama procesima da istovremeno vežu istu adresu, port i transport. Ako web server već drži TCP 443 na svim adresama, OpenVPN instanca ga ne može također uzeti bez namjernog dogovora.
Vežite VPN listener na drugi port, ili na drugu adresu, ili stavite dokumentovani multiplekser naprijed i prihvatite operativni trošak koji s tim ide. Svaki od tih izbora treba biti vidljiv u pravilima firewall-a, jer listener koji niko nije dokumentovao je onaj koji se propusti tokom incidenta. Upišite izabrano vezivanje u isti runbook koji opisuje tunel. Tada ga sljedeća osoba neće ponovo otkriti u dva sata ujutro.
Certifikati slijede vezu koju štite
TLS veza browsera prema Cloudflareu i veza Cloudflarea prema vašem izvoru dva su odvojena odnosa s dva odvojena certifikata. Browser vidi certifikat ruba. Izvor predstavlja svoj certifikat Cloudflareu, a Cloudflare Origin CA certifikat namijenjen je upravo tom drugom odnosu.
Taj certifikat izvora Cloudflare prihvata u režimu Full (strict) i on nije općeprihvaćen browser certifikat. Ako neko posjeti ime hosta samo s DNS-om direktno i dobije upozorenje, to je očekivana posljedica promijenjene putanje povjerenja, a ne dokaz da je šifriranje prestalo.
Web-stranica kojoj se pristupa direktno zato treba lanac certifikata kojem njeni browseri vjeruju. To može postojati uz proksiranu stranicu čiji izvor uopće nije predviđen za posjetu.
OpenVPN nosi vlastiti identitet servera i autentifikaciju klijenta, sa svojim certifikacijskim tijelom i vlastitom zaštitom kontrolnog kanala. Katanac na web-stranici ne osigurava ništa od toga, i dva procesa osiguravanja treba da ostanu odvojena.
Izloženost slijedi ime
VPN zapis samo s DNS-om objavljuje adresu na koju pokazuje. Ako je ta adresa i web-izvor, izvor nije skriven, a opisivati ga kao skriven zato što je drugo ime proksirano greška je koja traje dok ga neko ne skenira.
Odlučite koji web zahtjevi smiju direktno dosegnuti izvor i to provedite na izvoru, a zatim dozvolite VPN listeneru pod njegovim uslovima. Stranice za upravljanje, preuzimanja profila i listener podataka mogu imati tri različita zahtjeva za izloženost čak i kada jedan paket pruža sva tri.
Držite generisane linkove na javnom web imenu i HTTPS šemi, a klijentske profile na VPN imenu sa stvarnim protokolom i portom. Nijedna usluga ne treba zavisiti od prebacivanja proxy postavke druge tokom normalnog rada.
Redoslijed rada: proksirano ime za stranicu, ime samo s DNS-om za VPN, odvojeni listeneri, certifikat po odnosu, pa jedan test koji dokazuje da svako ime doseže samo uslugu koju treba.