Usmjeravati OpenVPN klijente kroz Cloudflare? Prvo provjerite ulogu
Klijent na uređaju nije usmjerivač. Potvrdite da uloga Cloudflarea prosljeđuje pakete drugih hostova, pa zadržite vlastiti tunel poslužitelja na staroj putanji.
Imate ispravan OpenVPN server i host koji također pokreće Cloudflareov softver za uređaje, a očigledan sljedeći korak izgleda kao usmjeravanje klijentskog saobraćaja prema njemu. Dvije ispravne veze na jednom stroju ne čine tranzitni gateway. Ono što nedostaje jest uloga dokumentirana za prosljeđivanje paketa koji pripadaju nekome drugom, i politika koja te pakete klasificira kada stignu.
Prije svakog pravila dolaze četiri pitanja: koji saobraćaj ulazi, kuda ide dalje, kako odgovori pronalaze put natrag i šta dizajn radi kada ta druga putanja zakaže. Prva dva su pitanja sposobnosti.
Dvije usluge na jednom hostu nisu tranzitna putanja
Klijent na uređaju napravljen je da obrađuje saobraćaj koji nastaje na stroju na kojem radi. Presreće razrješavanje imena ili odabrani saobraćaj aplikacija i šalje ga kroz vlastiti tunel, a njegova politika napisana je za korisnika tog uređaja i procese tog uređaja. Paket proslijeđen s OpenVPN klijenta nije lokalni izlaz, pa ga ista pravila ne klasificiraju. To nije detalj konfiguracije koji možete prekriti širim pravilom, jer upravo on odlučuje da li softver uopće vidi paket.
Zato je pitanje dizajna pitanje sposobnosti. Ili instalirani proizvod ima dokumentiranu ulogu koja prosljeđuje saobraćaj za druge mreže, ili tranzitna funkcija pripada sasvim drugom mjestu.
Koja Cloudflareova uloga smije prosljeđivati
Cloudflareov klijent za uređaje nudi režime koji se razlikuju po obuhvatu: samo razrješavanje imena, saobraćaj s uređaja i ponekad oboje. Nijedan od tih režima ne pretvara host u ruter za privatni raspon koji dolazi kroz drugi tunel. Namjenska uloga usmjeravanja zaseban je proizvod sa svojim konektorom, registracijom i mrežnim modelom.
| Question | What has to answer it |
|---|---|
| Does the installed product forward packets from other hosts? | A documented routing or connector role, not a device mode |
| Which prefixes does the connector advertise? | Its own configuration and status output |
| Does the server's own transport still take the old path? | ip route get for the endpoint, before and after |
| Do replies return through the same path? | Connection tracking counters on the forward rule |
Provjerite instaliranu ulogu prije nego što dizajnirate rute oko nje. Pročitajte koje sučelje konektor stvara, oglašava li određene prefikse ili zadanu rutu i primjenjuje li se lokalna politika na proslijeđene pakete kao i na lokalne. Ako se obrađuje samo lokalni saobraćaj, OpenVPN server ne može biti tranzitna točka bez obzira na to kako je napisano pravilo prevođenja.
Ovdje se i zahtjev za javni izlaz mora precizno formulirati. Izlaz koji Cloudflare pruža za proslijeđeni klijentski saobraćaj poseban je slučaj upotrebe i treba ga potvrditi prema usluzi koju stvarno imate.
Držite vanjski tunel neovisnim od nove rute
U trenutku kada dodate zadanu rutu prema novom sučelju, vlastiti odlazni saobraćaj servera počinje se natjecati za nju, a to uključuje odgovore OpenVPN klijentima i vašu SSH sesiju prema kutiji. Uobičajen simptom je tunel koji se uspostavi i zatim umre, ili administrator zaključan izvana dok se čini da je promjena uspjela. Uporedite ip route get za krajnju točku prije i poslije i upotrijebite usmjeravanje po politici ili rutu do hosta da zadržite vlastiti transport servera tamo gdje je bio. Pokrenite tu usporedbu s same kutije, jer je vlastiti pogled servera na njegovu rutu onaj koji je važan.
Iznimka za javnu adresu servera nije sama po sebi dovoljna, jer je povratna putanja svakog udaljenog administratora različit tok. Odlučite koji od tih tokova moraju preživjeti promjenu, pa provjerite svaki umjesto da pretpostavite da prvi pokriva ostale.
Ograničite prosljeđivanje i prevođenje na jedan tok
Primljeni paketi slijede putanju prosljeđivanja, a ne putanju lokalnog izlaza, pa pravilo koje je važno živi u forward kuki. Gdje sljedećem sučelju treba prevođenje, ograničite izvor na klijentski pool, odredište na dopušteno i izlaz na to jedno sučelje. Pravilo masquerade vezano samo za sučelje samo po sebi ne bira rutu i ne dopušta prosljeđivanje mimo bilo kojeg drugog filtra.
Unaprijed odlučite ponašanje pri zatvaranju, pa ga testirajte. Zaustavite sljedeću putanju i potvrdite da klijenti gube predviđeni izlaz umjesto da se tiho vrate na uobičajeni uzlazni kanal, jer to je ishod koji nitko ne primijeti dok saobraćaj ne počne izlaziti na pogrešna vrata. Ponovite provjeru za razrješavanje imena i za IPv6, jer skup pravila samo za v4 ostavlja putanju v6 otvorenom.
Zapišite četiri odgovora na kojima ste se zaustavili i zapažanje koje svaki od njih pokazuje. Tranzitna putanja koju možete opisati jest ona koju možete braniti na sljedećem pregledu incidenata.